IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZToJU0FTCiIgTWFpbnRhaW5lcjoJSmFtZXMgS2lkZCA8amFtZXMua2lkZEBjb3ZhbmNlLmNvbT4KIiBMYXN0IENoYW5nZTogIDIwMTIgQXByIDIwCiIgICAgICAgICAgICAgICBDb3JyZWN0ZWQgYnVnIGNhdXNpbmcgc29tZSBrZXl3b3JkcyB0byBhcHBlYXIgYXMgc3RyaW5ncyBpbnN0ZWFkCiIgICAgICAgICAgICAgICAxOCBKdWwgMjAwOCBieSBQYXVsbyBUYW5pbW90byA8cHRhbmltb3RvQGdtYWlsLmNvbT4KIiAgICAgICAgICAgICAgIEZpeGVkIGNvbW1lbnRzIHdpdGggKiB0YWtpbmcgbXVsdGlwbGUgbGluZXMuCiIgICAgICAgICAgICAgICBGaXhlZCBoaWdobGlnaHRpbmcgb2YgbWFjcm8ga2V5d29yZHMuCiIgICAgICAgICAgICAgICBBZGRlZCB3b3JkcyB0byBjYXNlcyB0aGF0IGRpZG4ndCBmaXQgYW55d2hlcmUuCiIgICAgICAgICAgICAgCTAyIEp1biAyMDAzCiIJCUFkZGVkIGhpZ2hsaWdodGluZyBmb3IgYWRkaXRpb25hbCBrZXl3b3JkcyBhbmQgc3VjaDsKIgkJQXR0ZW1wdGVkIHRvIG1hdGNoIFNBUyBkZWZhdWx0IHN5bnRheCBjb2xvcnM7CiIJCUNoYW5nZWQgc3luY2luZyBzbyBpdCBkb2Vzbid0IGxvc2UgY29sb3JzIG9uIGxhcmdlIGJsb2NrczsKIgkJTXVjaCB0aGFua3MgdG8gQm9iIEhlY2tlbCBmb3Iga25vd2xlZGdlYWJsZSB0d2Vha2luZy4KIiAgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiIgIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCmlmIHZlcnNpb24gPCA2MDAKICAgc3ludGF4IGNsZWFyCmVsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQogICBmaW5pc2gKZW5kaWYKCnN5biBjYXNlIGlnbm9yZQoKc3luIHJlZ2lvbiBzYXNTdHJpbmcJc3RhcnQ9KyIrICBza2lwPStcXFxcXHxcXCIrICBlbmQ9KyIrCnN5biByZWdpb24gc2FzU3RyaW5nCXN0YXJ0PSsnKyAgc2tpcD0rXFxcXFx8XFwiKyAgZW5kPSsnKwoKIiBXYW50IHJlZ2lvbiBmcm9tICdjYXJkczsnIHRvICc7JyB0byBiZSBjYXB0dXJlZCAoQm9iIEhlY2tlbCkKc3luIHJlZ2lvbiBzYXNDYXJkcwlzdGFydD0iXlxzKkNBUkRTLioiIGVuZD0iXlxzKjtccyokIgpzeW4gcmVnaW9uIHNhc0NhcmRzCXN0YXJ0PSJeXHMqREFUQUxJTkVTLioiIGVuZD0iXlxzKjtccyokIgoKc3luIG1hdGNoIHNhc051bWJlcgkiLVw9XDxcZCpcLlw9WzAtOV9dXD4iCgoiIEJsb2NrIGNvbW1lbnQKc3luIHJlZ2lvbiBzYXNDb21tZW50CXN0YXJ0PSIvXCoiICBlbmQ9IlwqLyIgY29udGFpbnM9c2FzVG9kbwoKIiBJZ25vcmUgbWlzbGVhZGluZyAvL0pDTCBTWU5UQVguLi4gKEJvYiBIZWNrZWwpCnN5biByZWdpb24gc2FzQ29tbWVudAlzdGFydD0iW14vXVteL10vXCoiICBlbmQ9IlwqLyIgY29udGFpbnM9c2FzVG9kbwoKIiBQcmV2aW91cyBjb2RlIGZvciBjb21tZW50cyB3YXMgd3JpdHRlbiBieSBCb2IgSGVja2VsCiIgQ29tbWVudHMgd2l0aCAqIG1heSB0YWtlIG11bHRpcGxlIGxpbmVzIChQYXVsbyBUYW5pbW90bykKc3luIHJlZ2lvbiBzYXNDb21tZW50IHN0YXJ0PSI7XHMqXCoiaHM9cysxIGVuZD0iOyIgY29udGFpbnM9c2FzVG9kbwoKIiBDb21tZW50cyB3aXRoICogc3RhcnRpbmcgYWZ0ZXIgYSBzZW1pY29sb24gKFBhdWxvIFRhbmltb3RvKQpzeW4gcmVnaW9uIHNhc0NvbW1lbnQgc3RhcnQ9Il5ccypcKiIgZW5kPSI7IiBjb250YWlucz1zYXNUb2RvCgoiIFRoaXMgbGluZSBkZWZpbmVzIG1hY3JvIHZhcmlhYmxlcyBpbiBjb2RlLiAgSGlMaW5rIGF0IGVuZCBvZiBmaWxlCiIgZGVmaW5lcyB0aGUgY29sb3Igc2NoZW1lLiBCZWdpbiByZWdpb24gd2l0aCBhbXBlcnNhbmQgYW5kIGVuZCB3aXRoCiIgYW55IG5vbi13b3JkIGNoYXJhY3RlciBvZmZzZXQgYnkgLTE7IHB1dCBhbXBlcnNhbmQgaW4gdGhlIHNraXAgbGlzdAoiIGp1c3QgaW4gY2FzZSBpdCBpcyB1c2VkIHRvIGNvbmNhdGVuYXRlIG1hY3JvIHZhcmlhYmxlIHZhbHVlcy4KCiIgVGhhbmtzIHRvIHJvbmFsZCBo9mxsd2FydGggZm9yIHRoaXMgZml4IHRvIGFuIGludHJhLXZlcnNpb25pbmcKIiBwcm9ibGVtIHdpdGggdGhpcyBsaXR0bGUgZmVhdHVyZQoKaWYgdmVyc2lvbiA8IDYwMAogICBzeW4gcmVnaW9uIHNhc01hY3JvVmFyCXN0YXJ0PSJcJiIgc2tpcD0iW18mXSIgZW5kPSJcVyJoZT1lLTEKZWxzZQkJICIgZm9yIHRoZSBvbGRlciBWaW0ncyBqdXN0IGRvIGl0IHRoZWlyIHdheSAuLi4KICAgc3luIHJlZ2lvbiBzYXNNYWNyb1ZhcglzdGFydD0iJiIgc2tpcD0iW18mXSIgZW5kPSJcVyJoZT1lLTEKZW5kaWYKCgoiIEkgZG9udCB0aGluayBzcGVjaWZpYyBQUk9DcyBuZWVkIHRvIGJlIGxpc3RlZCBpZiB1c2UgdGhpcyBsaW5lIChCb2IgSGVja2VsKS4Kc3luIG1hdGNoIHNhc1Byb2MJCSJeXHMqUFJPQyBcd1wrIgpzeW4ga2V5d29yZCBzYXNTdGVwCQlSVU4gUVVJVCBEQVRBCgoKIiBCYXNlIFNBUyBQcm9jcyAtIHZlcnNpb24gOC4xCgpzeW4ga2V5d29yZCBzYXNDb25kaXRpb25hbAlETyBFTFNFIEVORCBJRiBUSEVOIFVOVElMIFdISUxFCgpzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJQUJPUlQgQVJSQVkgQVRUUklCIEJZIENBTEwgQ0FSRFMgQ0FSRFM0IENBVE5BTUUKc3luIGtleXdvcmQgc2FzU3RhdGVtZW50CUNPTlRJTlVFIERBVEFMSU5FUyBEQVRBTElORVM0IERFTEVURSBESVNQTEFZCnN5biBrZXl3b3JkIHNhc1N0YXRlbWVudAlETSBEUk9QIEVORFNBUyBFUlJPUiBGSUxFIEZJTEVOQU1FIEZPT1ROT1RFCnN5biBrZXl3b3JkIHNhc1N0YXRlbWVudAlGT1JNQVQgR09UTyBJTkZJTEUgSU5GT1JNQVQgSU5QVVQgS0VFUApzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJTEFCRUwgTEVBVkUgTEVOR1RIIExJQk5BTUUgTElOSyBMSVNUIExPU1RDQVJECnN5biBrZXl3b3JkIHNhc1N0YXRlbWVudAlNRVJHRSBNSVNTSU5HIE1PRElGWSBPUFRJT05TIE9VVFBVVCBQQUdFCnN5biBrZXl3b3JkIHNhc1N0YXRlbWVudAlQVVQgUkVESVJFQ1QgUkVNT1ZFIFJFTkFNRSBSRVBMQUNFIFJFVEFJTgpzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJUkVUVVJOIFNFTEVDVCBTRVQgU0tJUCBTVEFSVFNBUyBTVE9QIFRJVExFCnN5biBrZXl3b3JkIHNhc1N0YXRlbWVudAlVUERBVEUgV0FJVFNBUyBXSEVSRSBXSU5ET1cgWCBTWVNUQVNLCgoiIEtleXdvcmRzIHRoYXQgYXJlIHVzZWQgaW4gUHJvYyBTUUwKIiBJIGxlZnQgdGhlbSBhcyBzdGF0ZW1lbnRzIGJlY2F1c2UgU0FTJ3MgZW5oYW5jZWQgZWRpdG9yIGhpZ2hsaWdodHMKIiB0aGVtIHRoZSBzYW1lIGFzIG5vcm1hbCBzdGF0ZW1lbnRzIHVzZWQgaW4gZGF0YSBzdGVwcyAoSmltIEtpZGQpCgpzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJQUREIEFORCBBTFRFUiBBUyBDQVNDQURFIENIRUNLIENSRUFURQpzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJREVMRVRFIERFU0NSSUJFIERJU1RJTkNUIERST1AgRk9SRUlHTgpzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJRlJPTSBHUk9VUCBIQVZJTkcgSU5ERVggSU5TRVJUIElOVE8gSU4Kc3luIGtleXdvcmQgc2FzU3RhdGVtZW50CUtFWSBMSUtFIE1FU1NBR0UgTU9ESUZZIE1TR1RZUEUgTk9UCnN5biBrZXl3b3JkIHNhc1N0YXRlbWVudAlOVUxMIE9OIE9SIE9SREVSIFBSSU1BUlkgUkVGRVJFTkNFUwpzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJUkVTRVQgUkVTVFJJQ1QgU0VMRUNUIFNFVCBUQUJMRQpzeW4ga2V5d29yZCBzYXNTdGF0ZW1lbnQJVU5JUVVFIFVQREFURSBWQUxJREFURSBWSUVXIFdIRVJFCgoiIE1hdGNoIGRlY2xhcmF0aW9ucyBoYXZlIHRvIGFwcGVhciBvbmUgcGVyIGxpbmUgKFBhdWxvIFRhbmltb3RvKQpzeW4gbWF0Y2ggc2FzU3RhdGVtZW50CSJGT09UTk9URVxkIgpzeW4gbWF0Y2ggc2FzU3RhdGVtZW50CSJUSVRMRVxkIgoKIiBNYXRjaCBkZWNsYXJhdGlvbnMgaGF2ZSB0byBhcHBlYXIgb25lIHBlciBsaW5lIChQYXVsbyBUYW5pbW90bykKc3luIG1hdGNoIHNhc01hY3JvICIlQlFVT1RFIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVOUkJRVU9URSIKc3luIG1hdGNoIHNhc01hY3JvICIlQ01QUkVTIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVRQ01QUkVTIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVDT01QU1RPUiIKc3luIG1hdGNoIHNhc01hY3JvICIlREFUQVRZUCIKc3luIG1hdGNoIHNhc01hY3JvICIlRElTUExBWSIKc3luIG1hdGNoIHNhc01hY3JvICIlRE8iCnN5biBtYXRjaCBzYXNNYWNybyAiJUVMU0UiCnN5biBtYXRjaCBzYXNNYWNybyAiJUVORCIKc3luIG1hdGNoIHNhc01hY3JvICIlRVZBTCIKc3luIG1hdGNoIHNhc01hY3JvICIlR0xPQkFMIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVHT1RPIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVJRiIKc3luIG1hdGNoIHNhc01hY3JvICIlSU5ERVgiCnN5biBtYXRjaCBzYXNNYWNybyAiJUlOUFVUIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVLRVlERUYiCnN5biBtYXRjaCBzYXNNYWNybyAiJUxBQkVMIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVMRUZUIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVMRU5HVEgiCnN5biBtYXRjaCBzYXNNYWNybyAiJUxFVCIKc3luIG1hdGNoIHNhc01hY3JvICIlTE9DQUwiCnN5biBtYXRjaCBzYXNNYWNybyAiJUxPV0NBU0UiCnN5biBtYXRjaCBzYXNNYWNybyAiJU1BQ1JPIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVNRU5EIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVOUkJRVU9URSIKc3luIG1hdGNoIHNhc01hY3JvICIlTlJRVU9URSIKc3luIG1hdGNoIHNhc01hY3JvICIlTlJTVFIiCnN5biBtYXRjaCBzYXNNYWNybyAiJVBVVCIKc3luIG1hdGNoIHNhc01hY3JvICIlUUNNUFJFUyIKc3luIG1hdGNoIHNhc01hY3JvICIlUUxFRlQiCnN5biBtYXRjaCBzYXNNYWNybyAiJVFMT1dDQVNFIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVRU0NBTiIKc3luIG1hdGNoIHNhc01hY3JvICIlUVNVQlNUUiIKc3luIG1hdGNoIHNhc01hY3JvICIlUVNZU0ZVTkMiCnN5biBtYXRjaCBzYXNNYWNybyAiJVFUUklNIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVRVU9URSIKc3luIG1hdGNoIHNhc01hY3JvICIlUVVQQ0FTRSIKc3luIG1hdGNoIHNhc01hY3JvICIlU0NBTiIKc3luIG1hdGNoIHNhc01hY3JvICIlU1RSIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVTVUJTVFIiCnN5biBtYXRjaCBzYXNNYWNybyAiJVNVUEVSUSIKc3luIG1hdGNoIHNhc01hY3JvICIlU1lTQ0FMTCIKc3luIG1hdGNoIHNhc01hY3JvICIlU1lTRVZBTEYiCnN5biBtYXRjaCBzYXNNYWNybyAiJVNZU0VYRUMiCnN5biBtYXRjaCBzYXNNYWNybyAiJVNZU0ZVTkMiCnN5biBtYXRjaCBzYXNNYWNybyAiJVNZU0dFVCIKc3luIG1hdGNoIHNhc01hY3JvICIlU1lTTFBVVCIKc3luIG1hdGNoIHNhc01hY3JvICIlU1lTUFJPRCIKc3luIG1hdGNoIHNhc01hY3JvICIlU1lTUkMiCnN5biBtYXRjaCBzYXNNYWNybyAiJVNZU1JQVVQiCnN5biBtYXRjaCBzYXNNYWNybyAiJVRIRU4iCnN5biBtYXRjaCBzYXNNYWNybyAiJVRPIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVUUklNIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVVTlFVT1RFIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVVTlRJTCIKc3luIG1hdGNoIHNhc01hY3JvICIlVVBDQVNFIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVWRVJJRlkiCnN5biBtYXRjaCBzYXNNYWNybyAiJVdISUxFIgpzeW4gbWF0Y2ggc2FzTWFjcm8gIiVXSU5ET1ciCgoiIFNBUyBGdW5jdGlvbnMKCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCUFCUyBBRERSIEFJUlkgQVJDT1MgQVJTSU4gQVRBTiBBVFRSQyBBVFRSTgpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglCQU5EIEJFVEFJTlYgQkxTSElGVCBCTk9UIEJPUiBCUlNISUZUIEJYT1IKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JQllURSBDREYgQ0VJTCBDRVhJU1QgQ0lOViBDTE9TRSBDTk9OQ1QgQ09MTEFURQpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglDT01QQkwgQ09NUE9VTkQgQ09NUFJFU1MgQ09TIENPU0ggQ1NTIENVUk9CUwpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglDViBEQUNDREIgREFDQ0RCU0wgREFDQ1NMIERBQ0NTWUQgREFDQ1RBQgpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglEQUlSWSBEQVRFIERBVEVKVUwgREFURVBBUlQgREFURVRJTUUgREFZCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCURDTE9TRSBERVBEQiBERVBEQlNMIERFUERCU0wgREVQU0wgREVQU0wKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JREVQU1lEIERFUFNZRCBERVBUQUIgREVQVEFCIERFUVVPVEUgREhNUwpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglESUYgRElHQU1NQSBESU0gRElORk8gRE5VTSBET1BFTiBET1BUTkFNRQpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglET1BUTlVNIERSRUFEIERST1BOT1RFIERTTkFNRSBFUkYgRVJGQyBFWElTVApzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglFWFAgRkFQUEVORCBGQ0xPU0UgRkNPTCBGREVMRVRFIEZFVENIIEZFVENIT0JTCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCUZFWElTVCBGR0VUIEZJTEVFWElTVCBGSUxFTkFNRSBGSUxFUkVGIEZJTkZPCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCUZJTlYgRklQTkFNRSBGSVBOQU1FTCBGSVBTVEFURSBGTE9PUiBGTk9OQ1QKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JRk5PVEUgRk9QRU4gRk9QVE5BTUUgRk9QVE5VTSBGUE9JTlQgRlBPUwpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglGUFVUIEZSRUFEIEZSRVdJTkQgRlJMRU4gRlNFUCBGVVpaIEZXUklURQpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglHQU1JTlYgR0FNTUEgR0VUT1BUSU9OIEdFVFZBUkMgR0VUVkFSTiBIQk9VTkQKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JSE1TIEhPU1RIRUxQIEhPVVIgSUJFU1NFTCBJTkRFWCBJTkRFWEMKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JSU5ERVhXIElOUFVUIElOUFVUQyBJTlBVVE4gSU5UIElOVENLIElOVE5YCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCUlOVFJSIElSUiBKQkVTU0VMIEpVTERBVEUgS1VSVE9TSVMgTEFHIExCT1VORApzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglMRUZUIExFTkdUSCBMR0FNTUEgTElCTkFNRSBMSUJSRUYgTE9HIExPRzEwCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCUxPRzIgTE9HUERGIExPR1BNRiBMT0dTREYgTE9XQ0FTRSBNQVggTURZCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCU1FQU4gTUlOIE1JTlVURSBNT0QgTU9OVEggTU9QRU4gTU9SVCBOCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCU5FVFBWIE5NSVNTIE5PUk1BTCBOT1RFIE5QViBPUEVOIE9SRElOQUwKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JUEFUSE5BTUUgUERGIFBFRUsgUEVFS0MgUE1GIFBPSU5UIFBPSVNTT04gUE9LRQpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglQUk9CQkVUQSBQUk9CQk5NTCBQUk9CQ0hJIFBST0JGIFBST0JHQU0Kc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JUFJPQkhZUFIgUFJPQklUIFBST0JORUdCIFBST0JOT1JNIFBST0JUIFBVVApzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglQVVRDIFBVVE4gUVRSIFFVT1RFIFJBTkJJTiBSQU5DQVUgUkFORVhQCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCVJBTkdBTSBSQU5HRSBSQU5LIFJBTk5PUiBSQU5QT0kgUkFOVEJMIFJBTlRSSQpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglSQU5VTkkgUkVQRUFUIFJFU09MVkUgUkVWRVJTRSBSRVdJTkQgUklHSFQKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JUk9VTkQgU0FWSU5HIFNDQU4gU0RGIFNFQ09ORCBTSUdOIFNJTiBTSU5ICnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCVNLRVdORVNTIFNPVU5ERVggU1BFRElTIFNRUlQgU1REIFNUREVSUiBTVEZJUFMKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JU1ROQU1FIFNUTkFNRUwgU1VCU1RSIFNVTSBTWU1HRVQgU1lTR0VUIFNZU01TRwpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglTWVNQUk9EIFNZU1JDIFNZU1RFTSBUQU4gVEFOSCBUSU1FIFRJTUVQQVJUCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCVRJTlYgVE5PTkNUIFRPREFZIFRSQU5TTEFURSBUUkFOV1JEIFRSSUdBTU1BCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCVRSSU0gVFJJTU4gVFJVTkMgVU5JRk9STSBVUENBU0UgVVNTIFZBUgpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglWQVJGTVQgVkFSSU5GTVQgVkFSTEFCRUwgVkFSTEVOIFZBUk5BTUUKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JVkFSTlVNIFZBUlJBWSBWQVJSQVlYIFZBUlRZUEUgVkVSSUZZIFZGT1JNQVQKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JVkZPUk1BVEQgVkZPUk1BVERYIFZGT1JNQVROIFZGT1JNQVROWCBWRk9STUFUVwpzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglWRk9STUFUV1ggVkZPUk1BVFggVklOQVJSQVkgVklOQVJSQVlYIFZJTkZPUk1BVApzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglWSU5GT1JNQVREIFZJTkZPUk1BVERYIFZJTkZPUk1BVE4gVklORk9STUFUTlgKc3luIGtleXdvcmQgc2FzRnVuY3Rpb24JVklORk9STUFUVyBWSU5GT1JNQVRXWCBWSU5GT1JNQVRYIFZMQUJFTApzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglWTEFCRUxYIFZMRU5HVEggVkxFTkdUSFggVk5BTUUgVk5BTUVYIFZUWVBFCnN5biBrZXl3b3JkIHNhc0Z1bmN0aW9uCVZUWVBFWCBXRUVLREFZIFlFQVIgWVlRIFpJUEZJUFMgWklQTkFNRSBaSVBOQU1FTApzeW4ga2V5d29yZCBzYXNGdW5jdGlvbglaSVBTVEFURQoKIiBIYW5keSBzZXR0aW5ncyBmb3IgdXNpbmcgdmltIHdpdGggbG9nIGZpbGVzCnN5biBrZXl3b3JkIHNhc0xvZ01zZwlOT1RFCnN5biBrZXl3b3JkIHNhc1dhcm5Nc2cJV0FSTklORwpzeW4ga2V5d29yZCBzYXNFcnJNc2cJRVJST1IKCiIgQWx3YXlzIGNvbnRhaW5lZCBpbiBhIGNvbW1lbnQgKEJvYiBIZWNrZWwpCnN5biBrZXl3b3JkIHNhc1RvZG8JVE9ETyBUQkQgRklYTUUgY29udGFpbmVkCgoiIFRoZXNlIGRvbid0IGZpdCBhbnl3aGVyZSBlbHNlIChCb2IgSGVja2VsKS4KIiBBZGRlZCBvdGhlcnMgdGhhdCB3ZXJlIG1pc3NpbmcuCnN5biBrZXl3b3JkIHNhc1VuZGVyc2NvcmUJX0FMTF8gX0FVVE9NQVRJQ18gX0NIQVJBQ1RFUl8gX0lORklMRV8gX05fIF9OQU1FXyBfTlVMTF8gX05VTUVSSUNfIF9VU0VSXyBfV0VCT1VUXwoKIiBFbmQgb2YgU0FTIEZ1bmN0aW9ucwoKIiAgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KIiAgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQoiICBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAoKaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX3Nhc19zeW50YXhfaW5pdHMiKQogICBpZiB2ZXJzaW9uIDwgNTA4CiAgICAgIGxldCBkaWRfc2FzX3N5bnRheF9pbml0cyA9IDEKICAgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KICAgZWxzZQogICAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KICAgZW5kaWYKCiAgICIgRGVmYXVsdCBzYXMgZW5oYW5jZWQgZWRpdG9yIGNvbG9yIHN5bnRheAoJaGkgc0NvbW1lbnQJdGVybT1ib2xkIGN0ZXJtPU5PTkUgY3Rlcm1mZz1HcmVlbiBjdGVybWJnPUJsYWNrIGd1aT1OT05FIGd1aWZnPURhcmtHcmVlbiBndWliZz1XaGl0ZQoJaGkgc0NhcmQJdGVybT1ib2xkIGN0ZXJtPU5PTkUgY3Rlcm1mZz1CbGFjayBjdGVybWJnPVllbGxvdyBndWk9Tk9ORSBndWlmZz1CbGFjayBndWliZz1MaWdodFllbGxvdwoJaGkgc0RhdGVfVGltZQl0ZXJtPU5PTkUgY3Rlcm09Ym9sZCBjdGVybWZnPUdyZWVuIGN0ZXJtYmc9QmxhY2sgZ3VpPWJvbGQgZ3VpZmc9U2VhR3JlZW4gZ3VpYmc9V2hpdGUKCWhpIHNLZXl3b3JkCXRlcm09Tk9ORSBjdGVybT1OT05FIGN0ZXJtZmc9Qmx1ZSAgY3Rlcm1iZz1CbGFjayBndWk9Tk9ORSBndWlmZz1CbHVlIGd1aWJnPVdoaXRlCgloaSBzRm10SW5mbXQJdGVybT1OT05FIGN0ZXJtPU5PTkUgY3Rlcm1mZz1MaWdodEdyZWVuIGN0ZXJtYmc9QmxhY2sgZ3VpPU5PTkUgZ3VpZmc9U2VhR3JlZW4gZ3VpYmc9V2hpdGUKCWhpIHNTdHJpbmcJdGVybT1OT05FIGN0ZXJtPU5PTkUgY3Rlcm1mZz1NYWdlbnRhIGN0ZXJtYmc9QmxhY2sgZ3VpPU5PTkUgZ3VpZmc9UHVycGxlIGd1aWJnPVdoaXRlCgloaSBzVGV4dAl0ZXJtPU5PTkUgY3Rlcm09Tk9ORSBjdGVybWZnPVdoaXRlIGN0ZXJtYmc9QmxhY2sgZ3VpPWJvbGQgZ3VpZmc9QmxhY2sgZ3VpYmc9V2hpdGUKCWhpIHNOdW1iZXIJdGVybT1OT05FIGN0ZXJtPWJvbGQgY3Rlcm1mZz1HcmVlbiBjdGVybWJnPUJsYWNrIGd1aT1ib2xkIGd1aWZnPVNlYUdyZWVuIGd1aWJnPVdoaXRlCgloaSBzUHJvYwl0ZXJtPU5PTkUgY3Rlcm09Ym9sZCBjdGVybWZnPUJsdWUgY3Rlcm1iZz1CbGFjayBndWk9Ym9sZCBndWlmZz1OYXZ5IGd1aWJnPVdoaXRlCgloaSBzU2VjdGlvbgl0ZXJtPU5PTkUgY3Rlcm09Ym9sZCBjdGVybWZnPUJsdWUgY3Rlcm1iZz1CbGFjayBndWk9Ym9sZCBndWlmZz1OYXZ5IGd1aWJnPVdoaXRlCgloaSBtRGVmaW5lCXRlcm09Tk9ORSBjdGVybT1ib2xkIGN0ZXJtZmc9V2hpdGUgY3Rlcm1iZz1CbGFjayBndWk9Ym9sZCBndWlmZz1CbGFjayBndWliZz1XaGl0ZQoJaGkgbUtleXdvcmQJdGVybT1OT05FIGN0ZXJtPU5PTkUgY3Rlcm1mZz1CbHVlIGN0ZXJtYmc9QmxhY2sgZ3VpPU5PTkUgZ3VpZmc9Qmx1ZSBndWliZz1XaGl0ZQoJaGkgbVJlZmVyZW5jZQl0ZXJtPU5PTkUgY3Rlcm09Ym9sZCBjdGVybWZnPVdoaXRlIGN0ZXJtYmc9QmxhY2sgZ3VpPWJvbGQgZ3VpZmc9Qmx1ZSBndWliZz1XaGl0ZQoJaGkgbVNlY3Rpb24JdGVybT1OT05FIGN0ZXJtPU5PTkUgY3Rlcm1mZz1CbHVlIGN0ZXJtYmc9QmxhY2sgZ3VpPWJvbGQgZ3VpZmc9TmF2eSBndWliZz1XaGl0ZQoJaGkgbVRleHQJdGVybT1OT05FIGN0ZXJtPU5PTkUgY3Rlcm1mZz1XaGl0ZSBjdGVybWJnPUJsYWNrIGd1aT1ib2xkIGd1aWZnPUJsYWNrIGd1aWJnPVdoaXRlCgoiIENvbG9ycyB0aGF0IGNsb3NlbHkgbWF0Y2ggU0FTIGxvZyBjb2xvcnMgZm9yIGRlZmF1bHQgY29sb3Igc2NoZW1lCgloaSBsRXJyb3IJdGVybT1OT05FIGN0ZXJtPU5PTkUgY3Rlcm1mZz1SZWQgY3Rlcm1iZz1CbGFjayBndWk9bm9uZSBndWlmZz1SZWQgZ3VpYmc9V2hpdGUKCWhpIGxXYXJuaW5nCXRlcm09Tk9ORSBjdGVybT1OT05FIGN0ZXJtZmc9R3JlZW4gY3Rlcm1iZz1CbGFjayBndWk9bm9uZSBndWlmZz1HcmVlbiBndWliZz1XaGl0ZQoJaGkgbE5vdGUJdGVybT1OT05FIGN0ZXJtPU5PTkUgY3Rlcm1mZz1DeWFuIGN0ZXJtYmc9QmxhY2sgZ3VpPW5vbmUgZ3VpZmc9Qmx1ZSBndWliZz1XaGl0ZQoKCiAgICIgU3BlY2lhbCBoaWxpZ2h0aW5nIGZvciB0aGUgU0FTIHByb2Mgc2VjdGlvbgoKCUhpTGluawlzYXNDb21tZW50CXNDb21tZW50CglIaUxpbmsJc2FzQ29uZGl0aW9uYWwJc0tleXdvcmQKCUhpTGluawlzYXNTdGVwCQlzU2VjdGlvbgoJSGlMaW5rCXNhc0Z1bmN0aW9uCXNLZXl3b3JkCglIaUxpbmsJc2FzTWFjcm8JbUtleXdvcmQKCUhpTGluawlzYXNNYWNyb1ZhcglOb25UZXh0CglIaUxpbmsJc2FzTnVtYmVyCXNOdW1iZXIKCUhpTGluawlzYXNTdGF0ZW1lbnQJc0tleXdvcmQKCUhpTGluawlzYXNTdHJpbmcJc1N0cmluZwoJSGlMaW5rCXNhc1Byb2MJCXNQcm9jCiAgICIgKEJvYiBIZWNrZWwpCglIaUxpbmsJc2FzVG9kbwkJVG9kbwoJSGlMaW5rCXNhc0Vyck1zZwlsRXJyb3IKCUhpTGluawlzYXNXYXJuTXNnCWxXYXJuaW5nCglIaUxpbmsJc2FzTG9nTXNnCWxOb3RlCglIaUxpbmsJc2FzQ2FyZHMJc0NhcmQKICAiIChCb2IgSGVja2VsKQoJSGlMaW5rCXNhc1VuZGVyc2NvcmUJUHJlUHJvYwoJZGVsY29tbWFuZCBIaUxpbmsKZW5kaWYKCiIgU3luY3Jvbml6ZSBmcm9tIGJlZ2lubmluZyB0byBrZWVwIGxhcmdlIGJsb2NrcyBmcm9tIGxvc2luZwoiIHN5bnRheCBjb2xvcmluZyB3aGlsZSBtb3ZpbmcgdGhyb3VnaCBjb2RlLgpzeW4gc3luYyBmcm9tc3RhcnQKCmxldCBiOmN1cnJlbnRfc3ludGF4ID0gInNhcyIKCiIgdmltOiB0cz04Cg==