{"schemaVersion":1,"threadId":"019f86fd-a7f7-7762-8326-2b09c89baeab","checkpoints":[{"id":"cp-1784710136128-ed4b8f02","turnId":"019f86fd-f99e-7ca1-a124-d5b2951c0dd7","createdAt":"2026-07-22T08:48:56.128Z","changedFiles":19,"files":[{"relativePath":"lliria-properties-scraper\\DEPLOY.md","beforeExisted":true,"beforeHash":"0d3d63efde2aa49e0fe8f075dba8c9bd97d7463a72bb72f84c1ee7b2675d2d28","beforeContent":"IyBHdcOtYSBkZSBEZXNwbGllZ3VlIC0gTGxpcmlhIFByb3BlcnRpZXMNCg0KIyMgT3BjaW9uZXMgZGUgZGVzcGxpZWd1ZQ0KDQotLS0NCg0KIyMg8J+WpSBPUENJw5NOIDE6IFZQUyBVYnVudHUvRGViaWFuIGNvbiBQTTIgKyBOZ2lueCAoUkVDT01FTkRBRE8pDQoNCiMjIyAxLiBSZXF1aXNpdG9zIGVuIGVsIHNlcnZpZG9yDQoNCmBgYGJhc2gNCiMgTm9kZS5qcyAyMCsNCmN1cmwgLWZzU0wgaHR0cHM6Ly9kZWIubm9kZXNvdXJjZS5jb20vc2V0dXBfMjAueCB8IHN1ZG8gLUUgYmFzaCAtDQpzdWRvIGFwdC1nZXQgaW5zdGFsbCAteSBub2RlanMNCg0KIyBNeVNRTCA4DQpzdWRvIGFwdCBpbnN0YWxsIG15c3FsLXNlcnZlciAteQ0Kc3VkbyBteXNxbF9zZWN1cmVfaW5zdGFsbGF0aW9uDQoNCiMgUE0yIChnZXN0b3IgZGUgcHJvY2Vzb3MpDQpzdWRvIG5wbSBpbnN0YWxsIC1nIHBtMg0KDQojIE5naW54DQpzdWRvIGFwdCBpbnN0YWxsIG5naW54IC15DQpgYGANCg0KIyMjIDIuIFN1YmlyIGVsIHByb3llY3RvDQoNCmBgYGJhc2gNCiMgT3BjacOzbiBBOiBHaXQNCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vdHUtdXN1YXJpby9sbGlyaWEtcHJvcGVydGllcy1zY3JhcGVyLmdpdCAvdmFyL3d3dy9sbGlyaWENCmNkIC92YXIvd3d3L2xsaXJpYQ0KDQojIE9wY2nDs24gQjogU0NQIGRlc2RlIHR1IFBDIGxvY2FsDQojIERlc2RlIFdpbmRvd3M6IHNjcCAtciBsbGlyaWEtcHJvcGVydGllcy1zY3JhcGVyIHVzdWFyaW9ASVBfU0VSVklET1I6L3Zhci93d3cvbGxpcmlhDQpgYGANCg0KIyMjIDMuIENvbmZpZ3VyYXIgdmFyaWFibGVzIGRlIGVudG9ybm8NCg0KYGBgYmFzaA0KY2QgL3Zhci93d3cvbGxpcmlhDQpjcCAuZW52LmV4YW1wbGUgLmVudg0KbmFubyAuZW52ICAgIyBFZGl0YXIgY29uIGxvcyBkYXRvcyByZWFsZXMgZGVsIHNlcnZpZG9yDQpgYGANCg0KKipWYXJpYWJsZXMgaW1wb3J0YW50ZXMgcGFyYSBwcm9kdWNjacOzbjoqKg0KYGBgZW52DQpOT0RFX0VOVj1wcm9kdWN0aW9uDQpQT1JUPTMwMDANCkRCX0hPU1Q9bG9jYWxob3N0DQpEQl9QT1JUPTMzMDYNCkRCX1VTRVI9bGxpcmlhX3VzZXINCkRCX1BBU1NXT1JEPVRVX1BBU1NXT1JEX1NFR1VSQQ0KREJfTkFNRT1sbGlyaWFfcHJvcGVydGllcw0KU0VTU0lPTl9TRUNSRVQ9Q0FERU5BX0FMRUFUT1JJQV9MQVJHQV8zMkNIQVJTDQpFTUFJTF9IT1NUPXNtdHAuZ21haWwuY29tDQpFTUFJTF9QT1JUPTU4Nw0KRU1BSUxfU0VDVVJFPWZhbHNlDQpFTUFJTF9VU0VSPXR1QGdtYWlsLmNvbQ0KRU1BSUxfUEFTUz1hcHBfcGFzc3dvcmRfZ21haWwNCkVNQUlMX0ZST009TGxpcmlhIFByb3BlcnRpZXMgPHR1QGdtYWlsLmNvbT4NCkVNQUlMX1RPPXR1QGdtYWlsLmNvbQ0KU0NSQVBJTkdfSU5URVJWQUxfTUlOVVRFUz0xMjANCmBgYA0KDQojIyMgNC4gQ3JlYXIgYmFzZSBkZSBkYXRvcyBNeVNRTA0KDQpgYGBiYXNoDQpzdWRvIG15c3FsIC11IHJvb3QgLXANCmBgYA0KYGBgc3FsDQpDUkVBVEUgVVNFUiAnbGxpcmlhX3VzZXInQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgJ1RVX1BBU1NXT1JEX1NFR1VSQSc7DQpDUkVBVEUgREFUQUJBU0UgbGxpcmlhX3Byb3BlcnRpZXMgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF91bmljb2RlX2NpOw0KR1JBTlQgQUxMIFBSSVZJTEVHRVMgT04gbGxpcmlhX3Byb3BlcnRpZXMuKiBUTyAnbGxpcmlhX3VzZXInQCdsb2NhbGhvc3QnOw0KRkxVU0ggUFJJVklMRUdFUzsNCkVYSVQ7DQpgYGANCg0KIyMjIDUuIEluc3RhbGFyIGRlcGVuZGVuY2lhcyBlIGluaWNpYWxpemFyIEJEDQoNCmBgYGJhc2gNCmNkIC92YXIvd3d3L2xsaXJpYQ0KbnBtIGluc3RhbGwNCm5weCB0cy1ub2RlIHNyYy9jb25maWcvaW5pdERiLnRzDQpgYGANCg0KIyMjIDYuIEFycmFuY2FyIGNvbiBQTTINCg0KYGBgYmFzaA0KcG0yIHN0YXJ0IGVjb3N5c3RlbS5jb25maWcuanMgLS1lbnYgcHJvZHVjdGlvbg0KcG0yIHNhdmUNCnBtMiBzdGFydHVwICAgIyBDb3BpYXIgeSBlamVjdXRhciBlbCBjb21hbmRvIHF1ZSBkZXZ1ZWx2ZQ0KYGBgDQoNCioqQ29tYW5kb3MgUE0yIMO6dGlsZXM6KioNCmBgYGJhc2gNCnBtMiBzdGF0dXMgICAgICAgICAgIyBWZXIgZXN0YWRvDQpwbTIgbG9ncyBsbGlyaWEtcHJvcGVydGllcyAgIyBWZXIgbG9ncyBlbiB0aWVtcG8gcmVhbA0KcG0yIHJlc3RhcnQgbGxpcmlhLXByb3BlcnRpZXMNCnBtMiBzdG9wIGxsaXJpYS1wcm9wZXJ0aWVzDQpgYGANCg0KIyMjIDcuIENvbmZpZ3VyYXIgTmdpbngNCg0KYGBgYmFzaA0KIyBDb3BpYXIgbGEgY29uZmlnIChlZGl0YXIgY29uIHR1IGRvbWluaW8pDQpzdWRvIGNwIC92YXIvd3d3L2xsaXJpYS9uZ2lueC5jb25mIC9ldGMvbmdpbngvc2l0ZXMtYXZhaWxhYmxlL2xsaXJpYQ0Kc3VkbyBuYW5vIC9ldGMvbmdpbngvc2l0ZXMtYXZhaWxhYmxlL2xsaXJpYSAgIyBDYW1iaWFyICd0dS1kb21pbmlvLmNvbScNCnN1ZG8gbG4gLXMgL2V0Yy9uZ2lueC9zaXRlcy1hdmFpbGFibGUvbGxpcmlhIC9ldGMvbmdpbngvc2l0ZXMtZW5hYmxlZC8NCnN1ZG8gbmdpbnggLXQNCnN1ZG8gc3lzdGVtY3RsIHJlbG9hZCBuZ2lueA0KYGBgDQoNCiMjIyA4LiBTU0wgZ3JhdHVpdG8gY29uIExldCdzIEVuY3J5cHQNCg0KYGBgYmFzaA0Kc3VkbyBhcHQgaW5zdGFsbCBjZXJ0Ym90IHB5dGhvbjMtY2VydGJvdC1uZ2lueCAteQ0Kc3VkbyBjZXJ0Ym90IC0tbmdpbnggLWQgdHUtZG9taW5pby5jb20gLWQgd3d3LnR1LWRvbWluaW8uY29tDQpgYGANCg0KLS0tDQoNCiMjIOKYge+4jyBPUENJw5NOIDI6IFJhaWx3YXkgKG3DoXMgc2VuY2lsbG8sIGdyYXRpcyBoYXN0YSBjaWVydG8gbMOtbWl0ZSkNCg0KMS4gQ3JlYXIgY3VlbnRhIGVuIFtyYWlsd2F5LmFwcF0oaHR0cHM6Ly9yYWlsd2F5LmFwcCkNCjIuIENyZWFyIG51ZXZvIHByb3llY3RvIOKGkiAiRGVwbG95IGZyb20gR2l0SHViIHJlcG8iDQozLiBTZWxlY2Npb25hciBlbCByZXBvc2l0b3Jpbw0KNC4gQcOxYWRpciBzZXJ2aWNpbyBNeVNRTCBkZXNkZSBlbCBtYXJrZXRwbGFjZSBkZSBSYWlsd2F5DQo1LiBDb25maWd1cmFyIHZhcmlhYmxlcyBkZSBlbnRvcm5vIChTZXR0aW5ncyDihpIgVmFyaWFibGVzKQ0KNi4gRW4gU2V0dGluZ3Mg4oaSIE5ldHdvcmtpbmcg4oaSIEdlbmVyYXRlIERvbWFpbg0KDQotLS0NCg0KIyMg4piB77iPIE9QQ0nDk04gMzogUmVuZGVyLmNvbSAoYWx0ZXJuYXRpdmEgZ3JhdHVpdGEpDQoNCjEuIENyZWFyIGN1ZW50YSBlbiBbcmVuZGVyLmNvbV0oaHR0cHM6Ly9yZW5kZXIuY29tKQ0KMi4gTmV3IOKGkiBXZWIgU2VydmljZSDihpIgY29uZWN0YXIgR2l0SHViDQozLiAqKkJ1aWxkIENvbW1hbmQ6KiogYG5wbSBpbnN0YWxsYA0KNC4gKipTdGFydCBDb21tYW5kOioqIGBucHggdHMtbm9kZSAtLXRyYW5zcGlsZS1vbmx5IHNyYy9hcHAudHNgDQo1LiBBw7FhZGlyIGJhc2UgZGUgZGF0b3MgTXlTUUwgZXh0ZXJuYSAocG9yIGVqZW1wbG8sIFtQbGFuZXRTY2FsZV0oaHR0cHM6Ly9wbGFuZXRzY2FsZS5jb20pIG8gW0ZyZWVTUUxEYXRhYmFzZV0oaHR0cHM6Ly93d3cuZnJlZXNxbGRhdGFiYXNlLmNvbSkpDQo2LiBDb25maWd1cmFyIEVudmlyb25tZW50IFZhcmlhYmxlcw0KDQotLS0NCg0KIyMg8J+PoCBPUENJw5NOIDQ6IE1pc21vIHNlcnZpZG9yIHF1ZSBYQU1QUCAoQWNjZXNvIGxvY2FsL3JlZCkNCg0KU2kgcXVpZXJlcyBlamVjdXRhcmxvIGVuIGVsIG1pc21vIFBDIGNvbiBYQU1QUCB5YSBjb25maWd1cmFkbzoNCg0KIyMjIE9wY2nDs24gNEE6IERpcmVjdG8gZW4gV2luZG93cyBjb24gUE0yDQoNCmBgYHBvd2Vyc2hlbGwNCiMgSW5zdGFsYXIgUE0yIGdsb2JhbG1lbnRlDQpucG0gaW5zdGFsbCAtZyBwbTINCg0KIyBJbmljaWFyIGxhIGFwcA0KY2QgQzpceGFtcHBcaHRkb2NzXGNhcHRhamF1c1xsbGlyaWEtcHJvcGVydGllcy1zY3JhcGVyDQpwbTIgc3RhcnQgZWNvc3lzdGVtLmNvbmZpZy5qcw0KcG0yIHNhdmUNCmBgYA0KDQpQYXJhIGFjY2VzbyBkZXNkZSBmdWVyYSBkZSBsYSByZWQgbG9jYWwsIG5lY2VzaXRhczoNCi0gUm91dGVyOiBhYnJpciBwdWVydG8gMzAwMCAobyA4MCBjb24gcHJveHkpDQotIEROUyBkaW7DoW1pY286IE5vLUlQLCBEdWNrRE5TIG8gc2ltaWxhcg0KDQojIyMgT3BjacOzbiA0QjogQXBhY2hlIGNvbW8gcHJveHkgaW52ZXJzbw0KDQpBw7FhZGlyIGEgYEM6XHhhbXBwXGFwYWNoZVxjb25mXGV4dHJhXGh0dHBkLXZob3N0cy5jb25mYDoNCg0KYGBgYXBhY2hlDQpMb2FkTW9kdWxlIHByb3h5X21vZHVsZSBtb2R1bGVzL21vZF9wcm94eS5zbw0KTG9hZE1vZHVsZSBwcm94eV9odHRwX21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9odHRwLnNvDQoNCjxWaXJ0dWFsSG9zdCAqOjgwPg0KICAgIFNlcnZlck5hbWUgbGxpcmlhLnR1LWRvbWluaW8uY29tDQogICAgUHJveHlQcmVzZXJ2ZUhvc3QgT24NCiAgICBQcm94eVBhc3MgLyBodHRwOi8vbG9jYWxob3N0OjMwMDAvDQogICAgUHJveHlQYXNzUmV2ZXJzZSAvIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC8NCjwvVmlydHVhbEhvc3Q+DQpgYGANCg0KLS0tDQoNCiMjIPCflJIgU2VndXJpZGFkIGVuIHByb2R1Y2Npw7NuDQoNCiMjIyBDYW1iaWFyIGNyZWRlbmNpYWxlcyBwb3IgZGVmZWN0bw0KDQpFbiBgc3JjL2NvbnRyb2xsZXJzL2F1dGhDb250cm9sbGVyLnRzYCwgbGFzIGNyZWRlbmNpYWxlcyBlc3TDoXRpY2FzIHNvbiBgR2VvcmdlLzQyMTNgLg0KUGFyYSBwcm9kdWNjacOzbiwgY3JlYXIgdW4gdXN1YXJpbyByZWFsIGVuIGxhIHRhYmxhIGB1c2Vyc2A6DQoNCmBgYGJhc2gNCiMgR2VuZXJhciBoYXNoIGJjcnlwdCBkZSBsYSBudWV2YSBjb250cmFzZcOxYQ0Kbm9kZSAtZSAiY29uc3QgYj1yZXF1aXJlKCdiY3J5cHRqcycpO2IuaGFzaCgnVFVfTlVFVkFfUEFTU1dPUkQnLDEwKS50aGVuKGg9PmNvbnNvbGUubG9nKGgpKSINCmBgYA0KDQpgYGBzcWwNCklOU0VSVCBJTlRPIHVzZXJzICh1c2VybmFtZSwgcGFzc3dvcmQsIGVtYWlsKQ0KVkFMVUVTICgnR2VvcmdlJywgJyQyYiQxMCRIQVNIX0dFTkVSQURPX0FRVUknLCAndHVAZW1haWwuY29tJyk7DQpgYGANCg0KIyMjIFZhcmlhYmxlcyBkZSBzZXNpw7NuDQoNCkNhbWJpYXIgYFNFU1NJT05fU0VDUkVUYCBwb3IgdW5hIGNhZGVuYSBhbGVhdG9yaWEgbGFyZ2E6DQpgYGBiYXNoDQpub2RlIC1lICJjb25zb2xlLmxvZyhyZXF1aXJlKCdjcnlwdG8nKS5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpKSINCmBgYA0KDQotLS0NCg0KIyMg8J+TpyBDb25maWd1cmFyIEdtYWlsIHBhcmEgYWxlcnRhcyBkZSBlbWFpbA0KDQoxLiBHbWFpbCDihpIgQ3VlbnRhIOKGkiBTZWd1cmlkYWQg4oaSIFZlcmlmaWNhY2nDs24gZW4gZG9zIHBhc29zIChhY3RpdmFyKQ0KMi4gR21haWwg4oaSIEN1ZW50YSDihpIgU2VndXJpZGFkIOKGkiBDb250cmFzZcOxYXMgZGUgYXBsaWNhY2lvbmVzDQozLiBHZW5lcmFyIGNvbnRyYXNlw7FhIHBhcmEgIk90cmEgYXBsaWNhY2nDs24iIOKGkiBjb3BpYXIgZW4gYEVNQUlMX1BBU1NgDQoNCmBgYGVudg0KRU1BSUxfSE9TVD1zbXRwLmdtYWlsLmNvbQ0KRU1BSUxfUE9SVD01ODcNCkVNQUlMX1NFQ1VSRT1mYWxzZQ0KRU1BSUxfVVNFUj10dS5jb3JyZW9AZ21haWwuY29tDQpFTUFJTF9QQVNTPXh4eHggeHh4eCB4eHh4IHh4eHggICAjIDE2IGNhcmFjdGVyZXMgc2luIGVzcGFjaW9zDQpgYGANCg0KLS0tDQoNCiMjIPCfk4sgQ2hlY2tsaXN0IGZpbmFsIGRlIGRlc3BsaWVndWUNCg0KLSBbIF0gVmFyaWFibGVzIGRlIGVudG9ybm8gY29uZmlndXJhZGFzIChgLmVudmApDQotIFsgXSBgTk9ERV9FTlY9cHJvZHVjdGlvbmAgZXN0YWJsZWNpZG8NCi0gWyBdIEJEIGluaWNpYWxpemFkYSAoYG5weCB0cy1ub2RlIHNyYy9jb25maWcvaW5pdERiLnRzYCkNCi0gWyBdIENvbnRyYXNlw7FhIGRlIEdlb3JnZSBjYW1iaWFkYQ0KLSBbIF0gU0VTU0lPTl9TRUNSRVQgY2FtYmlhZG8NCi0gWyBdIFBNMiBhcnJhbmNhZG8geSBjb25maWd1cmFkbyBwYXJhIGluaWNpbyBhdXRvbcOhdGljbw0KLSBbIF0gTmdpbnggY29uZmlndXJhZG8geSBmdW5jaW9uYW5kbw0KLSBbIF0gU1NMIGFjdGl2YWRvIChMZXQncyBFbmNyeXB0KQ0KLSBbIF0gRW1haWwgY29uZmlndXJhZG8geSBwcm9iYWRvDQotIFsgXSBGaXJld2FsbDogc29sbyBwdWVydG9zIDgwLCA0NDMsIDIyIGFiaWVydG9zDQoNCi0tLQ0KDQojIyDwn5CbIFNvbHVjacOzbiBkZSBwcm9ibGVtYXMNCg0KfCBQcm9ibGVtYSAgICAgICAgICAgICAgICAgIHwgU29sdWNpw7NuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfA0KfCBgQ2Fubm90IGNvbm5lY3QgdG8gTXlTUUxgIHwgVmVyaWZpY2FyIERCX0hPU1QsIERCX1VTRVIsIERCX1BBU1NXT1JEIGVuIC5lbnYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCnwgYEVBRERSSU5VU0UgcG9ydCAzMDAwYCAgICB8IGBwbTIgc3RvcCBhbGxgIG8gY2FtYmlhciBQT1JUIGVuIC5lbnYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQp8IGBDYW5ub3QgZmluZCBtb2R1bGVgICAgICAgfCBgbnBtIGluc3RhbGxgIGVuIGVsIGRpcmVjdG9yaW8gZGVsIHByb3llY3RvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KfCBFbWFpbCBubyBsbGVnYSAgICAgICAgICAgIHwgVmVyaWZpY2FyIGNvbnRyYXNlw7FhIGRlIGFwbGljYWNpw7NuIEdtYWlsLCByZXZpc2FyIGNhcnBldGEgc3BhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KfCBTY3JhcGluZyBsZW50byAgICAgICAgICAgIHwgTm9ybWFsLCBsb3MgcG9ydGFsZXMgdGllbmVuIHJhdGUgbGltaXRpbmc7IFNDUkFQSU5HX0lOVEVSVkFMX01JTlVURVM9MTIwIGVzIGxvIHJlY29tZW5kYWRvIHwNCg==","afterExisted":true,"afterHash":"b2d767f693f2bce4d970b76598fda6bfab6cd92b0009d9460cc0525c48ff12ca","afterContent":"IyBHdcOtYSBkZSBEZXNwbGllZ3VlIC0gTGxpcmlhIFByb3BlcnRpZXMNCg0KIyMgT3BjaW9uZXMgZGUgZGVzcGxpZWd1ZQ0KDQotLS0NCg0KIyMg8J+WpSBPUENJw5NOIDE6IFZQUyBVYnVudHUvRGViaWFuIGNvbiBQTTIgKyBOZ2lueCAoUkVDT01FTkRBRE8pDQoNCiMjIyAxLiBSZXF1aXNpdG9zIGVuIGVsIHNlcnZpZG9yDQoNCmBgYGJhc2gNCiMgTm9kZS5qcyAyMCsNCmN1cmwgLWZzU0wgaHR0cHM6Ly9kZWIubm9kZXNvdXJjZS5jb20vc2V0dXBfMjAueCB8IHN1ZG8gLUUgYmFzaCAtDQpzdWRvIGFwdC1nZXQgaW5zdGFsbCAteSBub2RlanMNCg0KIyBNeVNRTCA4DQpzdWRvIGFwdCBpbnN0YWxsIG15c3FsLXNlcnZlciAteQ0Kc3VkbyBteXNxbF9zZWN1cmVfaW5zdGFsbGF0aW9uDQoNCiMgUE0yIChnZXN0b3IgZGUgcHJvY2Vzb3MpDQpzdWRvIG5wbSBpbnN0YWxsIC1nIHBtMg0KDQojIE5naW54DQpzdWRvIGFwdCBpbnN0YWxsIG5naW54IC15DQpgYGANCg0KIyMjIDIuIFN1YmlyIGVsIHByb3llY3RvDQoNCmBgYGJhc2gNCiMgT3BjacOzbiBBOiBHaXQNCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vdHUtdXN1YXJpby9sbGlyaWEtcHJvcGVydGllcy1zY3JhcGVyLmdpdCAvdmFyL3d3dy9sbGlyaWENCmNkIC92YXIvd3d3L2xsaXJpYQ0KDQojIE9wY2nDs24gQjogU0NQIGRlc2RlIHR1IFBDIGxvY2FsDQojIERlc2RlIFdpbmRvd3M6IHNjcCAtciBsbGlyaWEtcHJvcGVydGllcy1zY3JhcGVyIHVzdWFyaW9ASVBfU0VSVklET1I6L3Zhci93d3cvbGxpcmlhDQpgYGANCg0KIyMjIDMuIENvbmZpZ3VyYXIgdmFyaWFibGVzIGRlIGVudG9ybm8NCg0KYGBgYmFzaA0KY2QgL3Zhci93d3cvbGxpcmlhDQpjcCAuZW52LmV4YW1wbGUgLmVudg0KbmFubyAuZW52ICAgIyBFZGl0YXIgY29uIGxvcyBkYXRvcyByZWFsZXMgZGVsIHNlcnZpZG9yDQpgYGANCg0KKipWYXJpYWJsZXMgaW1wb3J0YW50ZXMgcGFyYSBwcm9kdWNjacOzbjoqKg0KYGBgZW52DQpOT0RFX0VOVj1wcm9kdWN0aW9uDQpQT1JUPTMwMDANCkRCX0hPU1Q9bG9jYWxob3N0DQpEQl9QT1JUPTMzMDYNCkRCX1VTRVI9bGxpcmlhX3VzZXINCkRCX1BBU1NXT1JEPVRVX1BBU1NXT1JEX1NFR1VSQQ0KREJfTkFNRT1sbGlyaWFfcHJvcGVydGllcw0KU0VTU0lPTl9TRUNSRVQ9Q0FERU5BX0FMRUFUT1JJQV9MQVJHQV8zMkNIQVJTDQpFTUFJTF9IT1NUPXNtdHAuZ21haWwuY29tDQpFTUFJTF9QT1JUPTU4Nw0KRU1BSUxfU0VDVVJFPWZhbHNlDQpFTUFJTF9VU0VSPXR1QGdtYWlsLmNvbQ0KRU1BSUxfUEFTUz1hcHBfcGFzc3dvcmRfZ21haWwNCkVNQUlMX0ZST009TGxpcmlhIFByb3BlcnRpZXMgPHR1QGdtYWlsLmNvbT4NCkVNQUlMX1RPPXR1QGdtYWlsLmNvbQ0KU0NSQVBJTkdfSU5URVJWQUxfTUlOVVRFUz0xMjAKU0NSQVBJTkdfT1BFUkFUSU9OUz1yZW50LHNhbGUKYGBgCg0KIyMjIDQuIENyZWFyIGJhc2UgZGUgZGF0b3MgTXlTUUwNCg0KYGBgYmFzaA0Kc3VkbyBteXNxbCAtdSByb290IC1wDQpgYGANCmBgYHNxbA0KQ1JFQVRFIFVTRVIgJ2xsaXJpYV91c2VyJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZICdUVV9QQVNTV09SRF9TRUdVUkEnOw0KQ1JFQVRFIERBVEFCQVNFIGxsaXJpYV9wcm9wZXJ0aWVzIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfdW5pY29kZV9jaTsNCkdSQU5UIEFMTCBQUklWSUxFR0VTIE9OIGxsaXJpYV9wcm9wZXJ0aWVzLiogVE8gJ2xsaXJpYV91c2VyJ0AnbG9jYWxob3N0JzsNCkZMVVNIIFBSSVZJTEVHRVM7DQpFWElUOw0KYGBgDQoNCiMjIyA1LiBJbnN0YWxhciBkZXBlbmRlbmNpYXMgZSBpbmljaWFsaXphciBCRA0KDQpgYGBiYXNoDQpjZCAvdmFyL3d3dy9sbGlyaWENCm5wbSBpbnN0YWxsDQpucHggdHMtbm9kZSBzcmMvY29uZmlnL2luaXREYi50cw0KYGBgDQoNCiMjIyA2LiBBcnJhbmNhciBjb24gUE0yDQoNCmBgYGJhc2gNCnBtMiBzdGFydCBlY29zeXN0ZW0uY29uZmlnLmpzIC0tZW52IHByb2R1Y3Rpb24NCnBtMiBzYXZlDQpwbTIgc3RhcnR1cCAgICMgQ29waWFyIHkgZWplY3V0YXIgZWwgY29tYW5kbyBxdWUgZGV2dWVsdmUNCmBgYA0KDQoqKkNvbWFuZG9zIFBNMiDDunRpbGVzOioqDQpgYGBiYXNoDQpwbTIgc3RhdHVzICAgICAgICAgICMgVmVyIGVzdGFkbw0KcG0yIGxvZ3MgbGxpcmlhLXByb3BlcnRpZXMgICMgVmVyIGxvZ3MgZW4gdGllbXBvIHJlYWwNCnBtMiByZXN0YXJ0IGxsaXJpYS1wcm9wZXJ0aWVzDQpwbTIgc3RvcCBsbGlyaWEtcHJvcGVydGllcw0KYGBgDQoNCiMjIyA3LiBDb25maWd1cmFyIE5naW54DQoNCmBgYGJhc2gNCiMgQ29waWFyIGxhIGNvbmZpZyAoZWRpdGFyIGNvbiB0dSBkb21pbmlvKQ0Kc3VkbyBjcCAvdmFyL3d3dy9sbGlyaWEvbmdpbnguY29uZiAvZXRjL25naW54L3NpdGVzLWF2YWlsYWJsZS9sbGlyaWENCnN1ZG8gbmFubyAvZXRjL25naW54L3NpdGVzLWF2YWlsYWJsZS9sbGlyaWEgICMgQ2FtYmlhciAndHUtZG9taW5pby5jb20nDQpzdWRvIGxuIC1zIC9ldGMvbmdpbngvc2l0ZXMtYXZhaWxhYmxlL2xsaXJpYSAvZXRjL25naW54L3NpdGVzLWVuYWJsZWQvDQpzdWRvIG5naW54IC10DQpzdWRvIHN5c3RlbWN0bCByZWxvYWQgbmdpbngNCmBgYA0KDQojIyMgOC4gU1NMIGdyYXR1aXRvIGNvbiBMZXQncyBFbmNyeXB0DQoNCmBgYGJhc2gNCnN1ZG8gYXB0IGluc3RhbGwgY2VydGJvdCBweXRob24zLWNlcnRib3QtbmdpbnggLXkNCnN1ZG8gY2VydGJvdCAtLW5naW54IC1kIHR1LWRvbWluaW8uY29tIC1kIHd3dy50dS1kb21pbmlvLmNvbQ0KYGBgDQoNCi0tLQ0KDQojIyDimIHvuI8gT1BDScOTTiAyOiBSYWlsd2F5IChtw6FzIHNlbmNpbGxvLCBncmF0aXMgaGFzdGEgY2llcnRvIGzDrW1pdGUpDQoNCjEuIENyZWFyIGN1ZW50YSBlbiBbcmFpbHdheS5hcHBdKGh0dHBzOi8vcmFpbHdheS5hcHApDQoyLiBDcmVhciBudWV2byBwcm95ZWN0byDihpIgIkRlcGxveSBmcm9tIEdpdEh1YiByZXBvIg0KMy4gU2VsZWNjaW9uYXIgZWwgcmVwb3NpdG9yaW8NCjQuIEHDsWFkaXIgc2VydmljaW8gTXlTUUwgZGVzZGUgZWwgbWFya2V0cGxhY2UgZGUgUmFpbHdheQ0KNS4gQ29uZmlndXJhciB2YXJpYWJsZXMgZGUgZW50b3JubyAoU2V0dGluZ3Mg4oaSIFZhcmlhYmxlcykNCjYuIEVuIFNldHRpbmdzIOKGkiBOZXR3b3JraW5nIOKGkiBHZW5lcmF0ZSBEb21haW4NCg0KLS0tDQoNCiMjIOKYge+4jyBPUENJw5NOIDM6IFJlbmRlci5jb20gKGFsdGVybmF0aXZhIGdyYXR1aXRhKQ0KDQoxLiBDcmVhciBjdWVudGEgZW4gW3JlbmRlci5jb21dKGh0dHBzOi8vcmVuZGVyLmNvbSkNCjIuIE5ldyDihpIgV2ViIFNlcnZpY2Ug4oaSIGNvbmVjdGFyIEdpdEh1Yg0KMy4gKipCdWlsZCBDb21tYW5kOioqIGBucG0gaW5zdGFsbGANCjQuICoqU3RhcnQgQ29tbWFuZDoqKiBgbnB4IHRzLW5vZGUgLS10cmFuc3BpbGUtb25seSBzcmMvYXBwLnRzYA0KNS4gQcOxYWRpciBiYXNlIGRlIGRhdG9zIE15U1FMIGV4dGVybmEgKHBvciBlamVtcGxvLCBbUGxhbmV0U2NhbGVdKGh0dHBzOi8vcGxhbmV0c2NhbGUuY29tKSBvIFtGcmVlU1FMRGF0YWJhc2VdKGh0dHBzOi8vd3d3LmZyZWVzcWxkYXRhYmFzZS5jb20pKQ0KNi4gQ29uZmlndXJhciBFbnZpcm9ubWVudCBWYXJpYWJsZXMNCg0KLS0tDQoNCiMjIPCfj6AgT1BDScOTTiA0OiBNaXNtbyBzZXJ2aWRvciBxdWUgWEFNUFAgKEFjY2VzbyBsb2NhbC9yZWQpDQoNClNpIHF1aWVyZXMgZWplY3V0YXJsbyBlbiBlbCBtaXNtbyBQQyBjb24gWEFNUFAgeWEgY29uZmlndXJhZG86DQoNCiMjIyBPcGNpw7NuIDRBOiBEaXJlY3RvIGVuIFdpbmRvd3MgY29uIFBNMg0KDQpgYGBwb3dlcnNoZWxsDQojIEluc3RhbGFyIFBNMiBnbG9iYWxtZW50ZQ0KbnBtIGluc3RhbGwgLWcgcG0yDQoNCiMgSW5pY2lhciBsYSBhcHANCmNkIEM6XHhhbXBwXGh0ZG9jc1xjYXB0YWphdXNcbGxpcmlhLXByb3BlcnRpZXMtc2NyYXBlcg0KcG0yIHN0YXJ0IGVjb3N5c3RlbS5jb25maWcuanMNCnBtMiBzYXZlDQpgYGANCg0KUGFyYSBhY2Nlc28gZGVzZGUgZnVlcmEgZGUgbGEgcmVkIGxvY2FsLCBuZWNlc2l0YXM6DQotIFJvdXRlcjogYWJyaXIgcHVlcnRvIDMwMDAgKG8gODAgY29uIHByb3h5KQ0KLSBETlMgZGluw6FtaWNvOiBOby1JUCwgRHVja0ROUyBvIHNpbWlsYXINCg0KIyMjIE9wY2nDs24gNEI6IEFwYWNoZSBjb21vIHByb3h5IGludmVyc28NCg0KQcOxYWRpciBhIGBDOlx4YW1wcFxhcGFjaGVcY29uZlxleHRyYVxodHRwZC12aG9zdHMuY29uZmA6DQoNCmBgYGFwYWNoZQ0KTG9hZE1vZHVsZSBwcm94eV9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHkuc28NCkxvYWRNb2R1bGUgcHJveHlfaHR0cF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfaHR0cC5zbw0KDQo8VmlydHVhbEhvc3QgKjo4MD4NCiAgICBTZXJ2ZXJOYW1lIGxsaXJpYS50dS1kb21pbmlvLmNvbQ0KICAgIFByb3h5UHJlc2VydmVIb3N0IE9uDQogICAgUHJveHlQYXNzIC8gaHR0cDovL2xvY2FsaG9zdDozMDAwLw0KICAgIFByb3h5UGFzc1JldmVyc2UgLyBodHRwOi8vbG9jYWxob3N0OjMwMDAvDQo8L1ZpcnR1YWxIb3N0Pg0KYGBgDQoNCi0tLQ0KDQojIyDwn5SSIFNlZ3VyaWRhZCBlbiBwcm9kdWNjacOzbg0KDQojIyMgQ2FtYmlhciBjcmVkZW5jaWFsZXMgcG9yIGRlZmVjdG8NCg0KRW4gYHNyYy9jb250cm9sbGVycy9hdXRoQ29udHJvbGxlci50c2AsIGxhcyBjcmVkZW5jaWFsZXMgZXN0w6F0aWNhcyBzb24gYEdlb3JnZS80MjEzYC4NClBhcmEgcHJvZHVjY2nDs24sIGNyZWFyIHVuIHVzdWFyaW8gcmVhbCBlbiBsYSB0YWJsYSBgdXNlcnNgOg0KDQpgYGBiYXNoDQojIEdlbmVyYXIgaGFzaCBiY3J5cHQgZGUgbGEgbnVldmEgY29udHJhc2XDsWENCm5vZGUgLWUgImNvbnN0IGI9cmVxdWlyZSgnYmNyeXB0anMnKTtiLmhhc2goJ1RVX05VRVZBX1BBU1NXT1JEJywxMCkudGhlbihoPT5jb25zb2xlLmxvZyhoKSkiDQpgYGANCg0KYGBgc3FsDQpJTlNFUlQgSU5UTyB1c2VycyAodXNlcm5hbWUsIHBhc3N3b3JkLCBlbWFpbCkNClZBTFVFUyAoJ0dlb3JnZScsICckMmIkMTAkSEFTSF9HRU5FUkFET19BUVVJJywgJ3R1QGVtYWlsLmNvbScpOw0KYGBgDQoNCiMjIyBWYXJpYWJsZXMgZGUgc2VzacOzbg0KDQpDYW1iaWFyIGBTRVNTSU9OX1NFQ1JFVGAgcG9yIHVuYSBjYWRlbmEgYWxlYXRvcmlhIGxhcmdhOg0KYGBgYmFzaA0Kbm9kZSAtZSAiY29uc29sZS5sb2cocmVxdWlyZSgnY3J5cHRvJykucmFuZG9tQnl0ZXMoMzIpLnRvU3RyaW5nKCdoZXgnKSkiDQpgYGANCg0KLS0tDQoNCiMjIPCfk6cgQ29uZmlndXJhciBHbWFpbCBwYXJhIGFsZXJ0YXMgZGUgZW1haWwNCg0KMS4gR21haWwg4oaSIEN1ZW50YSDihpIgU2VndXJpZGFkIOKGkiBWZXJpZmljYWNpw7NuIGVuIGRvcyBwYXNvcyAoYWN0aXZhcikNCjIuIEdtYWlsIOKGkiBDdWVudGEg4oaSIFNlZ3VyaWRhZCDihpIgQ29udHJhc2XDsWFzIGRlIGFwbGljYWNpb25lcw0KMy4gR2VuZXJhciBjb250cmFzZcOxYSBwYXJhICJPdHJhIGFwbGljYWNpw7NuIiDihpIgY29waWFyIGVuIGBFTUFJTF9QQVNTYA0KDQpgYGBlbnYNCkVNQUlMX0hPU1Q9c210cC5nbWFpbC5jb20NCkVNQUlMX1BPUlQ9NTg3DQpFTUFJTF9TRUNVUkU9ZmFsc2UNCkVNQUlMX1VTRVI9dHUuY29ycmVvQGdtYWlsLmNvbQ0KRU1BSUxfUEFTUz14eHh4IHh4eHggeHh4eCB4eHh4ICAgIyAxNiBjYXJhY3RlcmVzIHNpbiBlc3BhY2lvcw0KYGBgDQoNCi0tLQ0KDQojIyDwn5OLIENoZWNrbGlzdCBmaW5hbCBkZSBkZXNwbGllZ3VlDQoNCi0gWyBdIFZhcmlhYmxlcyBkZSBlbnRvcm5vIGNvbmZpZ3VyYWRhcyAoYC5lbnZgKQ0KLSBbIF0gYE5PREVfRU5WPXByb2R1Y3Rpb25gIGVzdGFibGVjaWRvDQotIFsgXSBCRCBpbmljaWFsaXphZGEgKGBucHggdHMtbm9kZSBzcmMvY29uZmlnL2luaXREYi50c2ApDQotIFsgXSBDb250cmFzZcOxYSBkZSBHZW9yZ2UgY2FtYmlhZGENCi0gWyBdIFNFU1NJT05fU0VDUkVUIGNhbWJpYWRvDQotIFsgXSBQTTIgYXJyYW5jYWRvIHkgY29uZmlndXJhZG8gcGFyYSBpbmljaW8gYXV0b23DoXRpY28NCi0gWyBdIE5naW54IGNvbmZpZ3VyYWRvIHkgZnVuY2lvbmFuZG8NCi0gWyBdIFNTTCBhY3RpdmFkbyAoTGV0J3MgRW5jcnlwdCkNCi0gWyBdIEVtYWlsIGNvbmZpZ3VyYWRvIHkgcHJvYmFkbw0KLSBbIF0gRmlyZXdhbGw6IHNvbG8gcHVlcnRvcyA4MCwgNDQzLCAyMiBhYmllcnRvcw0KDQotLS0NCg0KIyMg8J+QmyBTb2x1Y2nDs24gZGUgcHJvYmxlbWFzDQoNCnwgUHJvYmxlbWEgICAgICAgICAgICAgICAgICB8IFNvbHVjacOzbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwNCnwgYENhbm5vdCBjb25uZWN0IHRvIE15U1FMYCB8IFZlcmlmaWNhciBEQl9IT1NULCBEQl9VU0VSLCBEQl9QQVNTV09SRCBlbiAuZW52ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQp8IGBFQUREUklOVVNFIHBvcnQgMzAwMGAgICAgfCBgcG0yIHN0b3AgYWxsYCBvIGNhbWJpYXIgUE9SVCBlbiAuZW52ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KfCBgQ2Fubm90IGZpbmQgbW9kdWxlYCAgICAgIHwgYG5wbSBpbnN0YWxsYCBlbiBlbCBkaXJlY3RvcmlvIGRlbCBwcm95ZWN0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCnwgRW1haWwgbm8gbGxlZ2EgICAgICAgICAgICB8IFZlcmlmaWNhciBjb250cmFzZcOxYSBkZSBhcGxpY2FjacOzbiBHbWFpbCwgcmV2aXNhciBjYXJwZXRhIHNwYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCnwgU2NyYXBpbmcgbGVudG8gICAgICAgICAgICB8IE5vcm1hbCwgbG9zIHBvcnRhbGVzIHRpZW5lbiByYXRlIGxpbWl0aW5nOyBTQ1JBUElOR19JTlRFUlZBTF9NSU5VVEVTPTEyMCBlcyBsbyByZWNvbWVuZGFkbyB8DQo=","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\docs\\manual-uso-completo.md","beforeExisted":true,"beforeHash":"fe8f7c9774643a6510035e4d66ad914b432852ebf83c4a0e76e8b1d7ba987c68","beforeContent":"IyBNYW51YWwgZGUgdXNvIGNvbXBsZXRvIOKAlCBMbGlyaWEgUHJvcGVydGllcyBTY3JhcGVyDQoNCiMjIDEpIE9iamV0aXZvIGRlIGxhIGFwbGljYWNpw7NuDQoNCkFwbGljYWNpw7NuIHdlYiBwYXJhOg0KLSBjYXB0dXJhciBhbnVuY2lvcyBpbm1vYmlsaWFyaW9zIGRlc2RlIG3Dumx0aXBsZXMgcG9ydGFsZXMsDQotIHNlcGFyYXIgZGF0b3MgcG9yICoqb3BlcmFjacOzbioqOiBgdmVudGFgIHkgYGFscXVpbGVyYCwNCi0gdmlzdWFsaXphciBlbiAqKmxpc3RhZG8qKiB5ICoqbWFwYSoqLA0KLSBnZXN0aW9uYXIgem9uYXMvcG9ibGFjaW9uZXMgeSBwb3J0YWxlcywNCi0gY3JlYXIgZmlsdHJvcyB5IGFsZXJ0YXMgcG9yIGNvcnJlby4NCg0KLS0tDQoNCiMjIDIpIEFjY2VzbyB5IGFycmFucXVlDQoNCjEuIEluc3RhbGFyIGRlcGVuZGVuY2lhczoNCiAgIC0gYG5wbSBpbnN0YWxsYA0KMi4gSW5pY2lhbGl6YXIgQkQgKHByaW1lcmEgdmV6KToNCiAgIC0gYG5wbSBydW4gaW5pdC1kYmANCjMuIEFycmFuY2FyIGVuIGRlc2Fycm9sbG86DQogICAtIGBucG0gcnVuIGRldmANCjQuIEFicmlyOg0KICAgLSBgaHR0cDovL2xvY2FsaG9zdDozMDAwL2xvZ2luYA0KDQpDcmVkZW5jaWFsZXMgcG9yIGRlZmVjdG86DQotIHVzdWFyaW86IGBHZW9yZ2VgDQotIGNvbnRyYXNlw7FhOiBgNDIxM2ANCg0KLS0tDQoNCiMjIDMpIEVzdHJ1Y3R1cmEgZnVuY2lvbmFsIGRlbCBkYXNoYm9hcmQNCg0KIyMgMy4xIExpc3RhZG8gKGAvZGFzaGJvYXJkYCkNCi0gTW9kbyBwb3Igb3BlcmFjacOzbjoNCiAgLSBgVmVudGFgOiBgL2Rhc2hib2FyZD9vcD1zYWxlYA0KICAtIGBBbHF1aWxlcmA6IGAvZGFzaGJvYXJkP29wPXJlbnRgDQotIFRhYmxhIGNvbiBEYXRhVGFibGVzIHNlcnZlci1zaWRlLg0KLSBGaWx0cm9zOg0KICAtIG11bmljaXBpbywgdGlwbywgcHJlY2lvIG1pbi9tYXgsIGhhYml0YWNpb25lcywgcG9ydGFsLCB6b25hIFZhbGVuY2lhLg0KLSBCb3RvbmVzOg0KICAtIGZpbHRyYXIsIGxpbXBpYXIsIGd1YXJkYXIgcGxhbnRpbGxhLCBleHBvcnRhciBDU1YvRXhjZWwuDQoNCiMjIDMuMiBNYXBhIChgL2Rhc2hib2FyZC9tYXBgKQ0KLSBNb2RvIHBvciBvcGVyYWNpw7NuOg0KICAtIGBWZW50YWA6IGAvZGFzaGJvYXJkL21hcD9vcD1zYWxlYA0KICAtIGBBbHF1aWxlcmA6IGAvZGFzaGJvYXJkL21hcD9vcD1yZW50YA0KLSBGaWx0cm9zOg0KICAtIHByZWNpbywgdGlwbywgcG9ydGFsIHkgem9uYXMuDQotIFVJIGFkYXB0YWRhIG3Ds3ZpbDoNCiAgLSBwYW5lbCBmbG90YW50ZSB0aXBvIGJvdHRvbS1zaGVldCBlbiBwYW50YWxsYXMgcGVxdWXDsWFzLg0KDQojIyAzLjMgWm9uYXMgKGAvZGFzaGJvYXJkL3pvbmVzYCkNCi0gQWx0YS9lZGljacOzbi9ib3JyYWRvIGRlIHpvbmFzLg0KLSBTbHVncyBlc3BlY8OtZmljb3MgcG9yIHBvcnRhbC4NCi0gU2NyYXBpbmcgcG9yIHpvbmEgY29uIHNlbGVjY2nDs24gZGUgb3BlcmFjacOzbiAoYHNhbGVgL2ByZW50YCkuDQoNCiMjIDMuNCBQb3J0YWxlcyAoYC9kYXNoYm9hcmQvcG9ydGFsc2ApDQotIEFjdGl2YXIvZGVzYWN0aXZhciBwb3J0YWxlcy4NCi0gQ29udHJvbGFyIHF1w6kgc2NyYXBlcnMgcGFydGljaXBhbiBlbiBjYWRhIGVqZWN1Y2nDs24uDQoNCiMjIDMuNSBGaWx0cm9zIChgL2Rhc2hib2FyZC9maWx0ZXJzYCkNCi0gQ3JlYXIgcGxhbnRpbGxhcy4NCi0gUmV1dGlsaXphciBiw7pzcXVlZGFzLg0KLSBDb25maWd1cmFyIGFsZXJ0YXMgZW1haWwuDQoNCiMjIDMuNiBBcmNoaXZvIChgL2Rhc2hib2FyZC9hcmNoaXZlYCkNCi0gUHJvcGllZGFkZXMgYXJjaGl2YWRhcyAoc29mdC1kZWxldGUpLg0KLSBSZXN0YXVyYWNpw7NuIG8gYm9ycmFkbyBkZWZpbml0aXZvLg0KDQotLS0NCg0KIyMgNCkgU2NyYXBpbmcgbWFudWFsDQoNCiMjIDQuMSBTY3JhcGluZyBnbG9iYWwgcG9yIG9wZXJhY2nDs24NCi0gVmVudGE6DQogIC0gYFBPU1QgL2FwaS9zY3JhcGVyL3NjcmFwZS9zYWxlYA0KLSBBbHF1aWxlcjoNCiAgLSBgUE9TVCAvYXBpL3NjcmFwZXIvc2NyYXBlL3JlbnRgDQoNCiMjIDQuMiBTY3JhcGluZyBwb3IgcG9ydGFsDQotIGBQT1NUIC9hcGkvc2NyYXBlci9zY3JhcGUvOnNsdWc/b3A9c2FsZWANCi0gYFBPU1QgL2FwaS9zY3JhcGVyL3NjcmFwZS86c2x1Zz9vcD1yZW50YA0KDQojIyA0LjMgU2NyYXBpbmcgcG9yIHpvbmENCi0gYFBPU1QgL2FwaS9zY3JhcGVyL3NjcmFwZS16b25lLzpzbHVnP29wPXNhbGVgDQotIGBQT1NUIC9hcGkvc2NyYXBlci9zY3JhcGUtem9uZS86c2x1Zz9vcD1yZW50YA0KDQojIyA0LjQgTG9ncyB5IGVzdGFkbw0KLSBFc3RhZG86DQogIC0gYEdFVCAvYXBpL3NjcmFwZXIvc3RhdHVzYA0KLSBMb2dzIFNTRToNCiAgLSBgR0VUIC9hcGkvc2NyYXBlci9sb2dzL3N0cmVhbWANCi0gTG9ncyBKU09OOg0KICAtIGBHRVQgL2FwaS9zY3JhcGVyL2xvZ3NgDQoNCi0tLQ0KDQojIyA1KSBTZWdtZW50YWNpw7NuIGRlIFZhbGVuY2lhIHBvciBkaXN0cml0b3MgcmVhbGVzDQoNCkN1YW5kbyBsYSB6b25hIGFjdGl2YSBpbmNsdXllIGBWYWxlbmNpYWAsIGxvcyBzY3JhcGVycyBwcmluY2lwYWxlcyBleHBhbmRlbiBhdXRvbcOhdGljYW1lbnRlIGEgZGlzdHJpdG9zIHJlYWxlcyAoZW4gdmVudGEgeSBhbHF1aWxlcik6DQotIENpdXRhdCBWZWxsYQ0KLSBFaXhhbXBsZQ0KLSBFeHRyYW11cnMNCi0gQ2FtcGFuYXINCi0gUGF0cmFpeA0KLSBRdWF0cmUgQ2FycmVyZXMNCi0gUG9ibGF0cyBNYXJpdGltcw0KLSBDYW1pbnMgYWwgR3JhdQ0KLSBCZW5pY2FsYXANCi0gUmFzY2FueWENCg0KUG9ydGFsZXMgY29uIHNsdWdzIGRpc3RyaXRhbGVzIGltcGxlbWVudGFkb3M6DQotIElkZWFsaXN0YQ0KLSBGb3RvY2FzYQ0KLSBQaXNvcy5jb20NCg0KLS0tDQoNCiMjIDYpIEPDs21vIGNvbXByb2JhciBhbHF1aWxlcmVzIChzaSDigJxubyBhcGFyZWNlbuKAnSkNCg0KMS4gSXIgYSBgL2Rhc2hib2FyZD9vcD1yZW50YC4NCjIuIEVqZWN1dGFyIHNjcmFwaW5nIGRlIGFscXVpbGVyOg0KICAgLSBib3TDs24g4oCcRXNjYW5lYXIgYWhvcmHigJ0gZW4gbW9kbyBhbHF1aWxlciwgbyBlbmRwb2ludCBgL2FwaS9zY3JhcGVyL3NjcmFwZS9yZW50YC4NCjMuIFJldmlzYXIgbG9ncyBlbiBgL2FwaS9zY3JhcGVyL2xvZ3NgIHkgZXN0YWRvIGVuIGAvYXBpL3NjcmFwZXIvc3RhdHVzYC4NCjQuIENvbmZpcm1hciBxdWUgaGF5IHBvcnRhbGVzIGFjdGl2b3MgZW4gYC9kYXNoYm9hcmQvcG9ydGFsc2AuDQo1LiBRdWl0YXIgZmlsdHJvcyByZXN0cmljdGl2b3MgKHBvcnRhbCwgbXVuaWNpcGlvLCB6b25hIFZhbGVuY2lhLCBwcmVjaW8pLg0KDQpOb3RhOiBzaSBubyBoYXkgZGF0b3MgZGUgYWxxdWlsZXIgdHJhcyBzY3JhcGVvLCBzdWVsZSBkZWJlcnNlIGE6DQotIGJsb3F1ZW8gYW50aS1ib3QgdGVtcG9yYWwgZGVsIHBvcnRhbCwNCi0gcMOhZ2luYXMgc2luIHJlc3VsdGFkb3MgcGFyYSB1bmEgem9uYSBjb25jcmV0YSwNCi0gY2FtYmlvIGRlIGVzdHJ1Y3R1cmEgSFRNTCBlbiB1biBwb3J0YWwuDQoNCi0tLQ0KDQojIyA3KSBNb2RlbG8gZGUgZGF0b3MgY2xhdmUNCg0KVGFibGEgYHByb3BlcnRpZXNgIChjYW1wb3MgcmVsZXZhbnRlcyk6DQotIGB0aXRsZWAsIGBwcmljZWAsIGBsb2NhdGlvbmAsIGBtdW5pY2lwYWxpdHlgLCBgcHJvcGVydHlfdHlwZWANCi0gYG9wZXJhdGlvbl90eXBlYCAoYHNhbGVgIG8gYHJlbnRgKQ0KLSBgc291cmNlYCwgYHVybGAsIGBsYXRgLCBgbG5nYA0KLSBgZGVsZXRlZF9hdGAgcGFyYSBhcmNoaXZvIGzDs2dpY28NCg0KLS0tDQoNCiMjIDgpIFNjaGVkdWxlciB5IG1hbnRlbmltaWVudG8NCg0KLSBTY2hlZHVsZXIgYXV0b23DoXRpY28gY29uZmlndXJhZG8gZW4gYHNjaGVkdWxlclNlcnZpY2VgLg0KLSBQdXJnYSBkaWFyaWEgZGUgYXJjaGl2byAoPjMwIGTDrWFzKS4NCi0gUmUtZ2VvY29kaWZpY2FjacOzbiBkaXNwb25pYmxlIHbDrWEgZW5kcG9pbnQuDQoNCi0tLQ0KDQojIyA5KSBBUEkgZGUgcHJvcGllZGFkZXMgKHJlc3VtZW4pDQoNCi0gYEdFVCAvYXBpL3Byb3BlcnRpZXMvZHRgDQogIC0gZmlsdHJvcyBzb3BvcnRhZG9zOg0KICAgIC0gYGZfb3BgLCBgZl9tdW5pYCwgYGZfdGlwb2AsIGBmX3BtaW5gLCBgZl9wbWF4YCwgYGZfcm9vbXNgLCBgZl9wb3J0YWxgLCBgZl92YWxlbmNpYV96b25lYA0KLSBgR0VUIC9hcGkvcHJvcGVydGllcy86aWRgDQotIGBERUxFVEUgL2FwaS9wcm9wZXJ0aWVzLzppZGAgKGFyY2hpdmFyKQ0KLSBgUEFUQ0ggL2FwaS9wcm9wZXJ0aWVzLzppZC9yZXN0b3JlYA0KLSBgREVMRVRFIC9hcGkvcHJvcGVydGllcy86aWQvZm9yY2VkZWxldGVgDQoNCi0tLQ0KDQojIyAxMCkgQnVlbmFzIHByw6FjdGljYXMgb3BlcmF0aXZhcw0KDQotIEVqZWN1dGFyIHNjcmFwZW9zIHBvciBvcGVyYWNpw7NuIHNlcGFyYWRhIChgc2FsZWAgeSBgcmVudGApLg0KLSBSZXZpc2FyIHBlcmnDs2RpY2FtZW50ZSBwb3J0YWxlcyBhY3Rpdm9zLg0KLSBNYW50ZW5lciB6b25hcyB5IHNsdWdzIGFjdHVhbGl6YWRvcyBkZXNkZSBsYSB2aXN0YSBkZSB6b25hcy4NCi0gVXNhciBmaWx0cm9zIGd1YXJkYWRvcyBwYXJhIGNvbnN1bHRhcyBmcmVjdWVudGVzLg0KLSBSZXZpc2FyIGxvZ3MgdHJhcyBjYW1iaW9zIGRlIHNjcmFwZXIgbyBibG9xdWVvIGFudGktYm90Lg0KDQo=","afterExisted":true,"afterHash":"e9a0bcf4d544641b6dcdfd2f0ee9aadba9cc8cadc69d90e7d27fd9b5dd50fab9","afterContent":"IyBNYW51YWwgZGUgdXNvIGNvbXBsZXRvIOKAlCBMbGlyaWEgUHJvcGVydGllcyBTY3JhcGVyDQoNCiMjIDEpIE9iamV0aXZvIGRlIGxhIGFwbGljYWNpw7NuDQoNCkFwbGljYWNpw7NuIHdlYiBwYXJhOg0KLSBjYXB0dXJhciBhbnVuY2lvcyBpbm1vYmlsaWFyaW9zIGRlc2RlIG3Dumx0aXBsZXMgcG9ydGFsZXMsDQotIHNlcGFyYXIgZGF0b3MgcG9yICoqb3BlcmFjacOzbioqOiBgdmVudGFgIHkgYGFscXVpbGVyYCwNCi0gdmlzdWFsaXphciBlbiAqKmxpc3RhZG8qKiB5ICoqbWFwYSoqLA0KLSBnZXN0aW9uYXIgem9uYXMvcG9ibGFjaW9uZXMgeSBwb3J0YWxlcywNCi0gY3JlYXIgZmlsdHJvcyB5IGFsZXJ0YXMgcG9yIGNvcnJlby4NCg0KLS0tDQoNCiMjIDIpIEFjY2VzbyB5IGFycmFucXVlDQoNCjEuIEluc3RhbGFyIGRlcGVuZGVuY2lhczoNCiAgIC0gYG5wbSBpbnN0YWxsYA0KMi4gSW5pY2lhbGl6YXIgQkQgKHByaW1lcmEgdmV6KToNCiAgIC0gYG5wbSBydW4gaW5pdC1kYmANCjMuIEFycmFuY2FyIGVuIGRlc2Fycm9sbG86DQogICAtIGBucG0gcnVuIGRldmANCjQuIEFicmlyOg0KICAgLSBgaHR0cDovL2xvY2FsaG9zdDozMDAwL2xvZ2luYA0KDQpDcmVkZW5jaWFsZXMgcG9yIGRlZmVjdG86DQotIHVzdWFyaW86IGBHZW9yZ2VgDQotIGNvbnRyYXNlw7FhOiBgNDIxM2ANCg0KLS0tDQoNCiMjIDMpIEVzdHJ1Y3R1cmEgZnVuY2lvbmFsIGRlbCBkYXNoYm9hcmQNCg0KIyMgMy4xIExpc3RhZG8gKGAvZGFzaGJvYXJkYCkNCi0gTW9kbyBwb3Igb3BlcmFjacOzbjoNCiAgLSBgVmVudGFgOiBgL2Rhc2hib2FyZD9vcD1zYWxlYA0KICAtIGBBbHF1aWxlcmA6IGAvZGFzaGJvYXJkP29wPXJlbnRgDQotIFRhYmxhIGNvbiBEYXRhVGFibGVzIHNlcnZlci1zaWRlLg0KLSBGaWx0cm9zOg0KICAtIG11bmljaXBpbywgdGlwbywgcHJlY2lvIG1pbi9tYXgsIGhhYml0YWNpb25lcywgcG9ydGFsLCB6b25hIFZhbGVuY2lhLg0KLSBCb3RvbmVzOg0KICAtIGZpbHRyYXIsIGxpbXBpYXIsIGd1YXJkYXIgcGxhbnRpbGxhLCBleHBvcnRhciBDU1YvRXhjZWwuDQoNCiMjIDMuMiBNYXBhIChgL2Rhc2hib2FyZC9tYXBgKQ0KLSBNb2RvIHBvciBvcGVyYWNpw7NuOg0KICAtIGBWZW50YWA6IGAvZGFzaGJvYXJkL21hcD9vcD1zYWxlYA0KICAtIGBBbHF1aWxlcmA6IGAvZGFzaGJvYXJkL21hcD9vcD1yZW50YA0KLSBGaWx0cm9zOg0KICAtIHByZWNpbywgdGlwbywgcG9ydGFsIHkgem9uYXMuDQotIFVJIGFkYXB0YWRhIG3Ds3ZpbDoNCiAgLSBwYW5lbCBmbG90YW50ZSB0aXBvIGJvdHRvbS1zaGVldCBlbiBwYW50YWxsYXMgcGVxdWXDsWFzLg0KDQojIyAzLjMgWm9uYXMgKGAvZGFzaGJvYXJkL3pvbmVzYCkNCi0gQWx0YS9lZGljacOzbi9ib3JyYWRvIGRlIHpvbmFzLg0KLSBTbHVncyBlc3BlY8OtZmljb3MgcG9yIHBvcnRhbC4NCi0gU2NyYXBpbmcgcG9yIHpvbmEgY29uIHNlbGVjY2nDs24gZGUgb3BlcmFjacOzbiAoYHNhbGVgL2ByZW50YCkuDQoNCiMjIDMuNCBQb3J0YWxlcyAoYC9kYXNoYm9hcmQvcG9ydGFsc2ApDQotIEFjdGl2YXIvZGVzYWN0aXZhciBwb3J0YWxlcy4NCi0gQ29udHJvbGFyIHF1w6kgc2NyYXBlcnMgcGFydGljaXBhbiBlbiBjYWRhIGVqZWN1Y2nDs24uDQoNCiMjIDMuNSBGaWx0cm9zIChgL2Rhc2hib2FyZC9maWx0ZXJzYCkNCi0gQ3JlYXIgcGxhbnRpbGxhcy4NCi0gUmV1dGlsaXphciBiw7pzcXVlZGFzLg0KLSBDb25maWd1cmFyIGFsZXJ0YXMgZW1haWwuDQoNCiMjIDMuNiBBcmNoaXZvIChgL2Rhc2hib2FyZC9hcmNoaXZlYCkNCi0gUHJvcGllZGFkZXMgYXJjaGl2YWRhcyAoc29mdC1kZWxldGUpLg0KLSBSZXN0YXVyYWNpw7NuIG8gYm9ycmFkbyBkZWZpbml0aXZvLg0KDQotLS0NCg0KIyMgNCkgU2NyYXBpbmcgbWFudWFsDQoNCiMjIDQuMSBTY3JhcGluZyBnbG9iYWwgcG9yIG9wZXJhY2nDs24NCi0gVmVudGE6DQogIC0gYFBPU1QgL2FwaS9zY3JhcGVyL3NjcmFwZS9zYWxlYA0KLSBBbHF1aWxlcjoNCiAgLSBgUE9TVCAvYXBpL3NjcmFwZXIvc2NyYXBlL3JlbnRgDQoNCiMjIDQuMiBTY3JhcGluZyBwb3IgcG9ydGFsDQotIGBQT1NUIC9hcGkvc2NyYXBlci9zY3JhcGUvOnNsdWc/b3A9c2FsZWANCi0gYFBPU1QgL2FwaS9zY3JhcGVyL3NjcmFwZS86c2x1Zz9vcD1yZW50YA0KDQojIyA0LjMgU2NyYXBpbmcgcG9yIHpvbmENCi0gYFBPU1QgL2FwaS9zY3JhcGVyL3NjcmFwZS16b25lLzpzbHVnP29wPXNhbGVgDQotIGBQT1NUIC9hcGkvc2NyYXBlci9zY3JhcGUtem9uZS86c2x1Zz9vcD1yZW50YA0KDQojIyA0LjQgTG9ncyB5IGVzdGFkbw0KLSBFc3RhZG86DQogIC0gYEdFVCAvYXBpL3NjcmFwZXIvc3RhdHVzYA0KLSBMb2dzIFNTRToNCiAgLSBgR0VUIC9hcGkvc2NyYXBlci9sb2dzL3N0cmVhbWANCi0gTG9ncyBKU09OOg0KICAtIGBHRVQgL2FwaS9zY3JhcGVyL2xvZ3NgDQoNCi0tLQ0KDQojIyA1KSBTZWdtZW50YWNpw7NuIGRlIFZhbGVuY2lhIHBvciBkaXN0cml0b3MgcmVhbGVzDQoNCkN1YW5kbyBsYSB6b25hIGFjdGl2YSBpbmNsdXllIGBWYWxlbmNpYWAsIGxvcyBzY3JhcGVycyBwcmluY2lwYWxlcyBleHBhbmRlbiBhdXRvbcOhdGljYW1lbnRlIGEgZGlzdHJpdG9zIHJlYWxlcyAoZW4gdmVudGEgeSBhbHF1aWxlcik6DQotIENpdXRhdCBWZWxsYQ0KLSBFaXhhbXBsZQ0KLSBFeHRyYW11cnMNCi0gQ2FtcGFuYXINCi0gUGF0cmFpeA0KLSBRdWF0cmUgQ2FycmVyZXMNCi0gUG9ibGF0cyBNYXJpdGltcw0KLSBDYW1pbnMgYWwgR3JhdQ0KLSBCZW5pY2FsYXANCi0gUmFzY2FueWENCg0KUG9ydGFsZXMgY29uIHNsdWdzIGRpc3RyaXRhbGVzIGltcGxlbWVudGFkb3M6Ci0gSWRlYWxpc3RhCi0gRm90b2Nhc2EKLSBQaXNvcy5jb20KCkxvcyBzbHVncyBzZSBsZWVuIGRlIGB2YWxlbmNpYV9kaXN0cmljdF9zbHVnc2AuIFNpIGxhIHRhYmxhIGVzdMOhIHZhY8OtYSBhbAphcnJhbmNhciwgc2Ugc2llbWJyYW4gbG9zIHZhbG9yZXMgZGUgYHNyYy9jb25maWcvdmFsZW5jaWFEaXN0cmljdHMudHNgOyB1bmEKem9uYSBtYXJjYWRhIGNvbW8gaW5hY3RpdmEgbm8gc2Ugc3VzdGl0dXllIHBvciBlbCBmYWxsYmFjayBlc3TDoXRpY28uCg0KLS0tDQoNCiMjIDYpIEPDs21vIGNvbXByb2JhciBhbHF1aWxlcmVzIChzaSDigJxubyBhcGFyZWNlbuKAnSkNCg0KMS4gSXIgYSBgL2Rhc2hib2FyZD9vcD1yZW50YC4NCjIuIEVqZWN1dGFyIHNjcmFwaW5nIGRlIGFscXVpbGVyOg0KICAgLSBib3TDs24g4oCcRXNjYW5lYXIgYWhvcmHigJ0gZW4gbW9kbyBhbHF1aWxlciwgbyBlbmRwb2ludCBgL2FwaS9zY3JhcGVyL3NjcmFwZS9yZW50YC4NCjMuIFJldmlzYXIgbG9ncyBlbiBgL2FwaS9zY3JhcGVyL2xvZ3NgIHkgZXN0YWRvIGVuIGAvYXBpL3NjcmFwZXIvc3RhdHVzYC4NCjQuIENvbmZpcm1hciBxdWUgaGF5IHBvcnRhbGVzIGFjdGl2b3MgZW4gYC9kYXNoYm9hcmQvcG9ydGFsc2AuDQo1LiBRdWl0YXIgZmlsdHJvcyByZXN0cmljdGl2b3MgKHBvcnRhbCwgbXVuaWNpcGlvLCB6b25hIFZhbGVuY2lhLCBwcmVjaW8pLg0KDQpOb3RhOiBzaSBubyBoYXkgZGF0b3MgZGUgYWxxdWlsZXIgdHJhcyBzY3JhcGVvLCBzdWVsZSBkZWJlcnNlIGE6Ci0gYmxvcXVlbyBhbnRpLWJvdCB0ZW1wb3JhbCBkZWwgcG9ydGFsLAotIHDDoWdpbmFzIHNpbiByZXN1bHRhZG9zIHBhcmEgdW5hIHpvbmEgY29uY3JldGEsCi0gY2FtYmlvIGRlIGVzdHJ1Y3R1cmEgSFRNTCBlbiB1biBwb3J0YWwuCgpTw7NsbyBzZSBlamVjdXRhbiBlbiBhbHF1aWxlciBsb3Mgc2NyYXBlcnMgcXVlIHRpZW5lbiBVUkwgeSBjbGFzaWZpY2FjacOzbiBkZQpvcGVyYWNpw7NuIGVzcGVjw61maWNhcy4gTGEgdmlzdGEgZGUgc2FsdWQgbXVlc3RyYSBgT3BlcmFjacOzbiBubyBzb3BvcnRhZGFgIHBhcmEKbG9zIHBvcnRhbGVzIHF1ZSDDum5pY2FtZW50ZSBpbXBsZW1lbnRhbiB2ZW50YS4KDQotLS0NCg0KIyMgNykgTW9kZWxvIGRlIGRhdG9zIGNsYXZlDQoNClRhYmxhIGBwcm9wZXJ0aWVzYCAoY2FtcG9zIHJlbGV2YW50ZXMpOg0KLSBgdGl0bGVgLCBgcHJpY2VgLCBgbG9jYXRpb25gLCBgbXVuaWNpcGFsaXR5YCwgYHByb3BlcnR5X3R5cGVgDQotIGBvcGVyYXRpb25fdHlwZWAgKGBzYWxlYCBvIGByZW50YCkNCi0gYHNvdXJjZWAsIGB1cmxgLCBgbGF0YCwgYGxuZ2AKLSBgZGVsZXRlZF9hdGAgcGFyYSBhcmNoaXZvIGzDs2dpY28KCkVsIGFyY2hpdmFkbyBkZSBhbnVuY2lvcyBvYnNvbGV0b3MgZXN0w6EgYWlzbGFkbyBwb3IgYHNvdXJjZWAgeQpgb3BlcmF0aW9uX3R5cGVgOiB1biBjaWNsbyBkZSB2ZW50YSBubyBwdWVkZSBhcmNoaXZhciBhbHF1aWxlcmVzLiBTaSB1biBhbnVuY2lvCmFyY2hpdmFkbyB2dWVsdmUgYSBhcGFyZWNlciwgZWwgYHVwc2VydGAgbG8gcmVhY3RpdmEgKGBkZWxldGVkX2F0ID0gTlVMTGApLgoNCi0tLQ0KDQojIyA4KSBTY2hlZHVsZXIgeSBtYW50ZW5pbWllbnRvDQoNCi0gU2NoZWR1bGVyIGF1dG9tw6F0aWNvIGNvbmZpZ3VyYWRvIGVuIGBzY2hlZHVsZXJTZXJ2aWNlYC4KLSBQb3IgZGVmZWN0byBlamVjdXRhIGByZW50LHNhbGVgIChwcmlvcml6YSBhY3R1YWxpemFyIGFscXVpbGVyZXMpOyBzZSBwdWVkZSBsaW1pdGFyIGNvbgogIGBTQ1JBUElOR19PUEVSQVRJT05TPXNhbGVgLCBgU0NSQVBJTkdfT1BFUkFUSU9OUz1yZW50YCBvCiAgYFNDUkFQSU5HX09QRVJBVElPTlM9cmVudCxzYWxlYC4KLSBQdXJnYSBkaWFyaWEgZGUgYXJjaGl2byAoPjMwIGTDrWFzKS4NCi0gUmUtZ2VvY29kaWZpY2FjacOzbiBkaXNwb25pYmxlIHbDrWEgZW5kcG9pbnQuDQoNCi0tLQ0KDQojIyA5KSBBUEkgZGUgcHJvcGllZGFkZXMgKHJlc3VtZW4pDQoNCi0gYEdFVCAvYXBpL3Byb3BlcnRpZXMvZHRgDQogIC0gZmlsdHJvcyBzb3BvcnRhZG9zOg0KICAgIC0gYGZfb3BgLCBgZl9tdW5pYCwgYGZfdGlwb2AsIGBmX3BtaW5gLCBgZl9wbWF4YCwgYGZfcm9vbXNgLCBgZl9wb3J0YWxgLCBgZl92YWxlbmNpYV96b25lYA0KLSBgR0VUIC9hcGkvcHJvcGVydGllcy86aWRgDQotIGBERUxFVEUgL2FwaS9wcm9wZXJ0aWVzLzppZGAgKGFyY2hpdmFyKQ0KLSBgUEFUQ0ggL2FwaS9wcm9wZXJ0aWVzLzppZC9yZXN0b3JlYA0KLSBgREVMRVRFIC9hcGkvcHJvcGVydGllcy86aWQvZm9yY2VkZWxldGVgDQoNCi0tLQ0KDQojIyAxMCkgQnVlbmFzIHByw6FjdGljYXMgb3BlcmF0aXZhcw0KDQotIEVqZWN1dGFyIHNjcmFwZW9zIHBvciBvcGVyYWNpw7NuIHNlcGFyYWRhIChgc2FsZWAgeSBgcmVudGApLg0KLSBSZXZpc2FyIHBlcmnDs2RpY2FtZW50ZSBwb3J0YWxlcyBhY3Rpdm9zLg0KLSBNYW50ZW5lciB6b25hcyB5IHNsdWdzIGFjdHVhbGl6YWRvcyBkZXNkZSBsYSB2aXN0YSBkZSB6b25hcy4NCi0gVXNhciBmaWx0cm9zIGd1YXJkYWRvcyBwYXJhIGNvbnN1bHRhcyBmcmVjdWVudGVzLg0KLSBSZXZpc2FyIGxvZ3MgdHJhcyBjYW1iaW9zIGRlIHNjcmFwZXIgbyBibG9xdWVvIGFudGktYm90Lg0KDQo=","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\package.json","beforeExisted":true,"beforeHash":"b3bca76d3d041d7675654b5195be8f9b887354e914a440814de289da85018aa7","beforeContent":"ewogICJuYW1lIjogImxsaXJpYS1wcm9wZXJ0aWVzLXNjcmFwZXIiLAogICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAiZGVzY3JpcHRpb24iOiAiQXBsaWNhY2nDs24gd2ViIHBhcmEgc2NyYXBpbmcgYXV0b23DoXRpY28gZGUgcHJvcGllZGFkZXMgZW4gdmVudGEgZW4gTGxpcmlhIHkgYWxyZWRlZG9yZXMsIGNvbiBlbnbDrW8gZGUgY29ycmVvcyBlbGVjdHLDs25pY29zIGF1dG9tw6F0aWNvcyBzZWfDum4gZmlsdHJvcyBlc3RhYmxlY2lkb3MuIiwKICAibWFpbiI6ICJkaXN0L2FwcC5qcyIsCiAgInNjcmlwdHMiOiB7CiAgICAic3RhcnQiOiAibm9kZSBkaXN0L2FwcC5qcyIsCiAgICAiYnVpbGQiOiAidHNjIiwKICAgICJkZXYiOiAidHMtbm9kZS1kZXYgLS1yZXNwYXduIC0tdHJhbnNwaWxlLW9ubHkgc3JjL2FwcC50cyIsCiAgICAiZGV2OnRzIjogInRzLW5vZGUgc3JjL2FwcC50cyIsCiAgICAiaW5pdC1kYiI6ICJ0cy1ub2RlIHNyYy9jb25maWcvaW5pdERiLnRzIiwKICAgICJwb3B1bGF0ZS1tdW5pY2lwYWxpdGllcyI6ICJ0cy1ub2RlIHNyYy9zY3JpcHRzL3BvcHVsYXRlTXVuaWNpcGFsaXRpZXMudHMiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgImF4aW9zIjogIl4xLjYuMiIsCiAgICAiYmNyeXB0anMiOiAiXjIuNC4zIiwKICAgICJib2R5LXBhcnNlciI6ICJeMS4yMC4yIiwKICAgICJjaGVlcmlvIjogIl4xLjAuMC1yYy4xMiIsCiAgICAiY29ycyI6ICJeMi44LjUiLAogICAgImRvdGVudiI6ICJeMTYuMy4xIiwKICAgICJlanMiOiAiXjMuMS4xMCIsCiAgICAiZXhjZWxqcyI6ICJeNC40LjAiLAogICAgImV4cHJlc3MiOiAiXjQuMTguMiIsCiAgICAiZXhwcmVzcy1teXNxbC1zZXNzaW9uIjogIl4zLjAuMyIsCiAgICAiZXhwcmVzcy1yYXRlLWxpbWl0IjogIl44LjIuMSIsCiAgICAiZXhwcmVzcy1zZXNzaW9uIjogIl4xLjE3LjMiLAogICAgIm15c3FsMiI6ICJeMy42LjUiLAogICAgIm5vZGUtY3JvbiI6ICJeMy4wLjMiLAogICAgIm5vZGVtYWlsZXIiOiAiXjguMC4xIiwKICAgICJwLWxpbWl0IjogIl43LjMuMCIsCiAgICAicGxheXdyaWdodCI6ICJeMS41OC4yIiwKICAgICJwdXBwZXRlZXItZXh0cmEiOiAiXjMuMy42IiwKICAgICJwdXBwZXRlZXItZXh0cmEtcGx1Z2luLXN0ZWFsdGgiOiAiXjIuMTEuMiIsCiAgICAic2hhcnAiOiAiXjAuMzQuNSIKICB9LAogICJkZXZEZXBlbmRlbmNpZXMiOiB7CiAgICAiQHR5cGVzL2JjcnlwdGpzIjogIl4yLjQuNiIsCiAgICAiQHR5cGVzL2JvZHktcGFyc2VyIjogIl4xLjE5LjUiLAogICAgIkB0eXBlcy9jaGVlcmlvIjogIl4wLjIyLjM1IiwKICAgICJAdHlwZXMvY29ycyI6ICJeMi44LjE3IiwKICAgICJAdHlwZXMvZWpzIjogIl4zLjEuNSIsCiAgICAiQHR5cGVzL2V4cHJlc3MiOiAiXjQuMTcuMjEiLAogICAgIkB0eXBlcy9leHByZXNzLW15c3FsLXNlc3Npb24iOiAiXjMuMC44IiwKICAgICJAdHlwZXMvZXhwcmVzcy1zZXNzaW9uIjogIl4xLjE3LjEwIiwKICAgICJAdHlwZXMvbm9kZSI6ICJeMjAuMTAuMCIsCiAgICAiQHR5cGVzL25vZGUtY3JvbiI6ICJeMy4wLjExIiwKICAgICJAdHlwZXMvbm9kZW1haWxlciI6ICJeNi40LjE0IiwKICAgICJ0cy1ub2RlIjogIl4xMC45LjIiLAogICAgInRzLW5vZGUtZGV2IjogIl4yLjAuMCIsCiAgICAidHlwZXNjcmlwdCI6ICJeNS4zLjIiCiAgfSwKICAiZW5naW5lcyI6IHsKICAgICJub2RlIjogIj49MTYuMC4wIgogIH0sCiAgImxpY2Vuc2UiOiAiTUlUIgp9Cg==","afterExisted":true,"afterHash":"69dcd65380d1f1aec161982a1a3b632b36a62b21f612c71e254ac6e1b571dbca","afterContent":"ewogICJuYW1lIjogImxsaXJpYS1wcm9wZXJ0aWVzLXNjcmFwZXIiLAogICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAiZGVzY3JpcHRpb24iOiAiQXBsaWNhY2nDs24gd2ViIHBhcmEgc2NyYXBpbmcgYXV0b23DoXRpY28gZGUgcHJvcGllZGFkZXMgZW4gdmVudGEgZW4gTGxpcmlhIHkgYWxyZWRlZG9yZXMsIGNvbiBlbnbDrW8gZGUgY29ycmVvcyBlbGVjdHLDs25pY29zIGF1dG9tw6F0aWNvcyBzZWfDum4gZmlsdHJvcyBlc3RhYmxlY2lkb3MuIiwKICAibWFpbiI6ICJkaXN0L2FwcC5qcyIsCiAgInNjcmlwdHMiOiB7CiAgICAic3RhcnQiOiAibm9kZSBkaXN0L2FwcC5qcyIsCiAgICAiYnVpbGQiOiAidHNjIiwKICAgICJ0ZXN0OnJlbnRhbC1yb3V0aW5nIjogIm5wbSBydW4gYnVpbGQgJiYgbm9kZSB0ZXN0LXJlbnRhbC1yb3V0aW5nLmpzIiwKICAgICJkZXYiOiAidHMtbm9kZS1kZXYgLS1yZXNwYXduIC0tdHJhbnNwaWxlLW9ubHkgc3JjL2FwcC50cyIsCiAgICAiZGV2OnRzIjogInRzLW5vZGUgc3JjL2FwcC50cyIsCiAgICAiaW5pdC1kYiI6ICJ0cy1ub2RlIHNyYy9jb25maWcvaW5pdERiLnRzIiwKICAgICJwb3B1bGF0ZS1tdW5pY2lwYWxpdGllcyI6ICJ0cy1ub2RlIHNyYy9zY3JpcHRzL3BvcHVsYXRlTXVuaWNpcGFsaXRpZXMudHMiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgImF4aW9zIjogIl4xLjYuMiIsCiAgICAiYmNyeXB0anMiOiAiXjIuNC4zIiwKICAgICJib2R5LXBhcnNlciI6ICJeMS4yMC4yIiwKICAgICJjaGVlcmlvIjogIl4xLjAuMC1yYy4xMiIsCiAgICAiY29ycyI6ICJeMi44LjUiLAogICAgImRvdGVudiI6ICJeMTYuMy4xIiwKICAgICJlanMiOiAiXjMuMS4xMCIsCiAgICAiZXhjZWxqcyI6ICJeNC40LjAiLAogICAgImV4cHJlc3MiOiAiXjQuMTguMiIsCiAgICAiZXhwcmVzcy1teXNxbC1zZXNzaW9uIjogIl4zLjAuMyIsCiAgICAiZXhwcmVzcy1yYXRlLWxpbWl0IjogIl44LjIuMSIsCiAgICAiZXhwcmVzcy1zZXNzaW9uIjogIl4xLjE3LjMiLAogICAgIm15c3FsMiI6ICJeMy42LjUiLAogICAgIm5vZGUtY3JvbiI6ICJeMy4wLjMiLAogICAgIm5vZGVtYWlsZXIiOiAiXjguMC4xIiwKICAgICJwLWxpbWl0IjogIl43LjMuMCIsCiAgICAicGxheXdyaWdodCI6ICJeMS41OC4yIiwKICAgICJwdXBwZXRlZXItZXh0cmEiOiAiXjMuMy42IiwKICAgICJwdXBwZXRlZXItZXh0cmEtcGx1Z2luLXN0ZWFsdGgiOiAiXjIuMTEuMiIsCiAgICAic2hhcnAiOiAiXjAuMzQuNSIKICB9LAogICJkZXZEZXBlbmRlbmNpZXMiOiB7CiAgICAiQHR5cGVzL2JjcnlwdGpzIjogIl4yLjQuNiIsCiAgICAiQHR5cGVzL2JvZHktcGFyc2VyIjogIl4xLjE5LjUiLAogICAgIkB0eXBlcy9jaGVlcmlvIjogIl4wLjIyLjM1IiwKICAgICJAdHlwZXMvY29ycyI6ICJeMi44LjE3IiwKICAgICJAdHlwZXMvZWpzIjogIl4zLjEuNSIsCiAgICAiQHR5cGVzL2V4cHJlc3MiOiAiXjQuMTcuMjEiLAogICAgIkB0eXBlcy9leHByZXNzLW15c3FsLXNlc3Npb24iOiAiXjMuMC44IiwKICAgICJAdHlwZXMvZXhwcmVzcy1zZXNzaW9uIjogIl4xLjE3LjEwIiwKICAgICJAdHlwZXMvbm9kZSI6ICJeMjAuMTAuMCIsCiAgICAiQHR5cGVzL25vZGUtY3JvbiI6ICJeMy4wLjExIiwKICAgICJAdHlwZXMvbm9kZW1haWxlciI6ICJeNi40LjE0IiwKICAgICJ0cy1ub2RlIjogIl4xMC45LjIiLAogICAgInRzLW5vZGUtZGV2IjogIl4yLjAuMCIsCiAgICAidHlwZXNjcmlwdCI6ICJeNS4zLjIiCiAgfSwKICAiZW5naW5lcyI6IHsKICAgICJub2RlIjogIj49MTYuMC4wIgogIH0sCiAgImxpY2Vuc2UiOiAiTUlUIgp9Cg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\app.ts","beforeExisted":true,"beforeHash":"235d6e5409c90cbe6a1010cbd7e7a1e3d5de8069d49054ed3b441288bedf5328","beforeContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IGV4cHJlc3MsIHsgUmVxdWVzdCwgUmVzcG9uc2UsIE5leHRGdW5jdGlvbiB9IGZyb20gImV4cHJlc3MiOwppbXBvcnQgc2Vzc2lvbiBmcm9tICJleHByZXNzLXNlc3Npb24iOwppbXBvcnQgTXlTUUxTdG9yZUZhY3RvcnkgZnJvbSAiZXhwcmVzcy1teXNxbC1zZXNzaW9uIjsKaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAiYm9keS1wYXJzZXIiOwppbXBvcnQgY29ycyBmcm9tICJjb3JzIjsKaW1wb3J0IHBhdGggZnJvbSAicGF0aCI7CmltcG9ydCByYXRlTGltaXQgZnJvbSAiZXhwcmVzcy1yYXRlLWxpbWl0IjsKaW1wb3J0IHsgY29ubmVjdERCIH0gZnJvbSAiLi9jb25maWcvZGIiOwppbXBvcnQgcG9vbCBmcm9tICIuL2NvbmZpZy9kYiI7CmltcG9ydCBhdXRoUm91dGVzIGZyb20gIi4vcm91dGVzL2F1dGhSb3V0ZXMiOwppbXBvcnQgcHJvcGVydHlSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvcHJvcGVydHlSb3V0ZXMiOwppbXBvcnQgc2NyYXBlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9zY3JhcGVyUm91dGVzIjsKaW1wb3J0IGZpbHRlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9maWx0ZXJSb3V0ZXMiOwppbXBvcnQgbWFwUm91dGVzIGZyb20gIi4vcm91dGVzL21hcFJvdXRlcyI7CmltcG9ydCB6b25lUm91dGVzIGZyb20gIi4vcm91dGVzL3pvbmVSb3V0ZXMiOwppbXBvcnQgcG9ydGFsUm91dGVzIGZyb20gIi4vcm91dGVzL3BvcnRhbFJvdXRlcyI7CmltcG9ydCBhbmFseXRpY3NSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYW5hbHl0aWNzUm91dGVzIjsKaW1wb3J0IG11bmljaXBhbGl0eVJvdXRlcyBmcm9tICIuL3JvdXRlcy9tdW5pY2lwYWxpdHlSb3V0ZXMiOwppbXBvcnQgdmFsZW5jaWFEaXN0cmljdFJvdXRlcyBmcm9tICIuL3JvdXRlcy92YWxlbmNpYURpc3RyaWN0Um91dGVzIjsKaW1wb3J0IGFpUm91dGVzIGZyb20gIi4vcm91dGVzL2FpUm91dGVzIjsKaW1wb3J0IGFpQWRtaW5Sb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYWlBZG1pblJvdXRlcyI7CmltcG9ydCB7IHJlcXVpcmVBZG1pbiB9IGZyb20gIi4vbWlkZGxld2FyZS9yZXF1aXJlQWRtaW4iOwppbXBvcnQgeyByZXF1aXJlQXV0aCB9IGZyb20gIi4vbWlkZGxld2FyZS9hdXRoIjsKaW1wb3J0IHsgc3RhcnRTY2hlZHVsZXIsIGdldFNjaGVkdWxlclN0YXR1cywgZ2V0UmVjZW50U2NyYXBpbmdMb2dzIH0gZnJvbSAiLi9zZXJ2aWNlcy9zY2hlZHVsZXJTZXJ2aWNlIjsKaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICIuL21vZGVscy9maWx0ZXJNb2RlbCI7CmltcG9ydCB7IFByb3BlcnR5TW9kZWwgfSBmcm9tICIuL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgWm9uZU1vZGVsIH0gZnJvbSAiLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuL21vZGVscy9wb3J0YWxNb2RlbCI7CmltcG9ydCB7IGdlbmVyYXRlUG5nSWNvbnMgfSBmcm9tICIuL3V0aWxzL2dlbmVyYXRlSWNvbnMiOwppbXBvcnQgeyBWQUxFTkNJQV9ORUlHSEJPUkhPT0RTIH0gZnJvbSAiLi9jb25maWcvdmFsZW5jaWFOZWlnaGJvcmhvb2RzIjsKY29uc3QgYXBwID0gZXhwcmVzcygpOwpjb25zdCBQT1JUID0gTnVtYmVyKHByb2Nlc3MuZW52LlBPUlQpIHx8IDMwMDA7CgovLyBNeVNRTCBzZXNzaW9uIHN0b3JlIChldml0YSB3YXJuaW5nIGRlIE1lbW9yeVN0b3JlIGVuIHByb2R1Y2Npw7NuKQpjb25zdCBNeVNRTFN0b3JlID0gTXlTUUxTdG9yZUZhY3Rvcnkoc2Vzc2lvbik7CmNvbnN0IHNlc3Npb25TdG9yZSA9IG5ldyBNeVNRTFN0b3JlKAogIHsgY3JlYXRlRGF0YWJhc2VUYWJsZTogdHJ1ZSwgY2xlYXJFeHBpcmVkOiB0cnVlLCBjaGVja0V4cGlyYXRpb25JbnRlcnZhbDogOTAwMDAwLCBleHBpcmF0aW9uOiA4NjQwMDAwMCB9LAogIChwb29sIGFzIGFueSkucG9vbAopOwoKLy8gTWlkZGxld2FyZQphcHAudXNlKGNvcnMoKSk7CmFwcC51c2UoYm9keVBhcnNlci5qc29uKCkpOwphcHAudXNlKGJvZHlQYXJzZXIudXJsZW5jb2RlZCh7IGV4dGVuZGVkOiB0cnVlIH0pKTsKYXBwLnVzZSgKICBzZXNzaW9uKHsKICAgIHNlY3JldDogcHJvY2Vzcy5lbnYuU0VTU0lPTl9TRUNSRVQgfHwgImxsaXJpYV9zZWNyZXRfa2V5XzIwMjQiLAogICAgc3RvcmU6IHNlc3Npb25TdG9yZSwKICAgIHJlc2F2ZTogZmFsc2UsCiAgICBzYXZlVW5pbml0aWFsaXplZDogZmFsc2UsCiAgICBjb29raWU6IHsgc2VjdXJlOiBmYWxzZSwgbWF4QWdlOiAyNCAqIDYwICogNjAgKiAxMDAwIH0sCiAgfSkKKTsKCi8vIFJhdGUgbGltaXRpbmcgcGFyYSBsb2dpbiAocHJvdGVjY2nDs24gYW50aS1icnV0ZWZvcmNlKQpjb25zdCBsb2dpblJhdGVNYXggPSBOdW1iZXIocHJvY2Vzcy5lbnYuQVVUSF9MT0dJTl9SQVRFX01BWCB8fCAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICJwcm9kdWN0aW9uIiA/IDEwIDogNjApKTsKY29uc3QgbG9naW5MaW1pdGVyID0gcmF0ZUxpbWl0KHsKICB3aW5kb3dNczogMTUgKiA2MCAqIDEwMDAsCiAgbWF4OiBsb2dpblJhdGVNYXgsCiAgbWVzc2FnZTogIkRlbWFzaWFkb3MgaW50ZW50b3MgZGUgaW5pY2lvIGRlIHNlc2nDs24uIEludMOpbnRhbG8gZW4gMTUgbWludXRvcy4iLAogIHN0YW5kYXJkSGVhZGVyczogdHJ1ZSwKICBsZWdhY3lIZWFkZXJzOiBmYWxzZSwKICBza2lwOiAocmVxKSA9PiB7CiAgICBjb25zdCBpcCA9IFN0cmluZyhyZXEuaXAgfHwgcmVxLnNvY2tldD8ucmVtb3RlQWRkcmVzcyB8fCAiIikucmVwbGFjZSgvXjo6ZmZmZjovLCAiIik7CiAgICByZXR1cm4gKAogICAgICBpcCA9PT0gIjEyNy4wLjAuMSIgfHwKICAgICAgaXAuc3RhcnRzV2l0aCgiMTkyLjE2OC4iKSB8fAogICAgICBpcC5zdGFydHNXaXRoKCIxMDAuIikgfHwKICAgICAgaXAuc3RhcnRzV2l0aCgiMTAuIikKICAgICk7CiAgfSwKfSk7CmFwcC51c2UoIi9sb2dpbiIsIGxvZ2luTGltaXRlcik7CgovLyBWaWV3IGVuZ2luZQphcHAuc2V0KCJ2aWV3IGVuZ2luZSIsICJlanMiKTsKYXBwLnNldCgidmlld3MiLCBwYXRoLmpvaW4oX19kaXJuYW1lLCAiLi4iLCAic3JjIiwgInZpZXdzIikpOwppZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICJwcm9kdWN0aW9uIikgYXBwLnNldCgidmlldyBjYWNoZSIsIGZhbHNlKTsKCi8vIEFyY2hpdm9zIGVzdGF0aWNvcwphcHAudXNlKGV4cHJlc3Muc3RhdGljKHBhdGguam9pbihfX2Rpcm5hbWUsICIuLiIsICJwdWJsaWMiKSkpOwoKYXBwLnVzZSgocmVxLCByZXMsIG5leHQpID0+IHsKICByZXMubG9jYWxzLnNlc3Npb25Sb2xlID0gKHJlcS5zZXNzaW9uIGFzIHsgcm9sZT86IHN0cmluZyB9KS5yb2xlIHx8ICIiOwogIHJlcy5sb2NhbHMuc2Vzc2lvblVzZXIgPSAocmVxLnNlc3Npb24gYXMgeyB1c2VybmFtZT86IHN0cmluZyB9KS51c2VybmFtZSB8fCAiIjsKICBuZXh0KCk7Cn0pOwoKLy8gUmVkaXJlY2Npb24gcmFpegphcHAuZ2V0KCIvIiwgKF9yZXEsIHJlcykgPT4gcmVzLnJlZGlyZWN0KCIvbG9naW4iKSk7CgovLyBSdXRhcyBkZSBhdXRlbnRpY2FjaW9uIChzaW4gcHJvdGVjY2lvbikKYXBwLnVzZSgiLyIsIGF1dGhSb3V0ZXMpOwphcHAuZ2V0KCIvbG9naW4iLCAoX3JlcSwgcmVzKSA9PiByZXMucmVkaXJlY3QoIi9sb2dpbiIpKTsgLy8geWEgY3ViaWVydG8gcG9yIGF1dGhSb3V0ZXMKCi8vIERhc2hib2FyZCBwcmluY2lwYWwKYXBwLmdldCgiL2Rhc2hib2FyZCIsIHJlcXVpcmVBdXRoLCBhc3luYyAocmVxLCByZXMpID0+IHsKICB0cnkgewogICAgY29uc3Qgb3BlcmF0aW9uID0gU3RyaW5nKHJlcS5xdWVyeS5vcCB8fCAic2FsZSIpLnRvTG93ZXJDYXNlKCkgPT09ICJyZW50IiA/ICJyZW50IiA6ICJzYWxlIjsKICAgIGNvbnN0IFtzdGF0cywgcG9ydGFscywgem9uZXNdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwogICAgICBQcm9wZXJ0eU1vZGVsLmdldFN0YXRzKG9wZXJhdGlvbiksCiAgICAgIFBvcnRhbE1vZGVsLmZpbmRBbGwoKSwKICAgICAgWm9uZU1vZGVsLmZpbmRBbGwoKSwKICAgIF0pOwogICAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2luZGV4IiwgewogICAgICBwb3J0YWxzLAogICAgICB6b25lcywKICAgICAgdXNlcjogKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICAgIGNvdW50OiBzdGF0cy50b3RhbCwKICAgICAgYXZnX3ByaWNlOiBzdGF0cy5hdmdfcHJpY2UsCiAgICAgIG1pbl9wcmljZTogc3RhdHMubWluX3ByaWNlLAogICAgICBzb3VyY2VfY291bnQ6IHN0YXRzLnNvdXJjZV9jb3VudCwKICAgICAgb3BlcmF0aW9uLAogICAgICB2YWxlbmNpYV9uZWlnaGJvcmhvb2RzOiBWQUxFTkNJQV9ORUlHSEJPUkhPT0RTLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIGVsIGRhc2hib2FyZCIpOwogIH0KfSk7CgovLyBWaXN0YSBkZWwgYXJjaGl2byBkZSBwcm9waWVkYWRlcyBlbGltaW5hZGFzCmFwcC5nZXQoIi9kYXNoYm9hcmQvYXJjaGl2ZSIsIHJlcXVpcmVBdXRoLCBhc3luYyAocmVxLCByZXMpID0+IHsKICB0cnkgewogICAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2FyY2hpdmUiLCB7CiAgICAgIHVzZXI6IChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIGVsIGFyY2hpdm8iKTsKICB9Cn0pOwoKLy8gVmlzdGEgZGUgZmlsdHJvcwphcHAuZ2V0KCIvZGFzaGJvYXJkL2ZpbHRlcnMiLCByZXF1aXJlQXV0aCwgYXN5bmMgKF9yZXEsIHJlcykgPT4gewogIHRyeSB7CiAgICBjb25zdCBbZmlsdGVycywgcG9ydGFsc10gPSBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgIEZpbHRlck1vZGVsLmZpbmRBbGwoKSwKICAgICAgUG9ydGFsTW9kZWwuZmluZEFsbCgpLAogICAgXSk7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvZmlsdGVycyIsIHsKICAgICAgZmlsdGVycywKICAgICAgcG9ydGFscywKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIGZpbHRyb3MiKTsKICB9Cn0pOwoKLy8gVmlzdGEgZGUgbWFwYQphcHAuZ2V0KCIvZGFzaGJvYXJkL21hcCIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIGNvbnN0IG9wZXJhdGlvbiA9IFN0cmluZyhfcmVxLnF1ZXJ5Lm9wIHx8ICJzYWxlIikudG9Mb3dlckNhc2UoKSA9PT0gInJlbnQiID8gInJlbnQiIDogInNhbGUiOwogICAgY29uc3QgW3Byb3BzLCB6b25lc10gPSBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgIFByb3BlcnR5TW9kZWwuZmluZEZvck1hcChvcGVyYXRpb24pLAogICAgICBab25lTW9kZWwuZmluZEFsbCgpLAogICAgXSk7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvbWFwIiwgewogICAgICBwcm9wZXJ0aWVzOiBwcm9wcywKICAgICAgem9uZXMsCiAgICAgIHVzZXI6IChfcmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSB8fCAiR2VvcmdlIiwKICAgICAgb3BlcmF0aW9uLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIG1hcGEiKTsKICB9Cn0pOwoKLy8gVmlzdGEgZGUgem9uYXMKYXBwLmdldCgiL2Rhc2hib2FyZC96b25lcyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC96b25lcyIsIHsKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIHpvbmFzIik7CiAgfQp9KTsKCi8vIFZpc3RhIElBIOKAlCByZWNvbWVuZGFjaW9uZXMgbXVsdGlhZ2VudCAob3BlcmFkb3IgR2VvcmdlKQphcHAuZ2V0KCIvZGFzaGJvYXJkL2FpIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChyZXEsIHJlcykgPT4gewogIGlmICgocmVxLnNlc3Npb24gYXMgYW55KS5yb2xlID09PSAiaWFfYWRtaW4iKSB7CiAgICByZXMucmVkaXJlY3QoIi9kYXNoYm9hcmQvYWktYWRtaW4iKTsKICAgIHJldHVybjsKICB9CiAgY29uc3QgYnJpZGdlVXJsID0gcHJvY2Vzcy5lbnYuQ1VSU09SX0JSSURHRV9VUkwgfHwgImh0dHA6Ly8xMDAuNzguMTk4Ljk4OjgwOTUiOwogIHJlcy5yZW5kZXIoImRhc2hib2FyZC9haSIsIHsKICAgIHVzZXI6IChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgYnJpZGdlVXJsLAogIH0pOwp9KTsKCi8vIFBvcnRhbCBJQSBhdmFuemFkbyDigJQgc29sbyBhZG1pbgphcHAuZ2V0KCIvZGFzaGJvYXJkL2FpLWFkbWluIiwgcmVxdWlyZUFkbWluLCBhc3luYyAocmVxLCByZXMpID0+IHsKICBjb25zdCBicmlkZ2VVcmwgPSBwcm9jZXNzLmVudi5DVVJTT1JfQlJJREdFX1VSTCB8fCAiaHR0cDovLzEwMC43OC4xOTguOTg6ODA5NSI7CiAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2FpLWFkbWluIiwgewogICAgdXNlcjogKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgImFkbWluIiwKICAgIGJyaWRnZVVybCwKICB9KTsKfSk7CgovLyBWaXN0YSBkZSBwb3J0YWxlcwphcHAuZ2V0KCIvZGFzaGJvYXJkL3BvcnRhbHMiLCByZXF1aXJlQXV0aCwgYXN5bmMgKF9yZXEsIHJlcykgPT4gewogIHRyeSB7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvcG9ydGFscyIsIHsKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIHBvcnRhbGVzIik7CiAgfQp9KTsKCi8vIFJ1dGEgb2ZmbGluZSAoU2VydmljZSBXb3JrZXIgZmFsbGJhY2spCmFwcC5nZXQoIi9vZmZsaW5lIiwgKF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHsKICByZXMucmVuZGVyKCJvZmZsaW5lIik7Cn0pOwoKLy8gQVBJIHJvdXRlcwphcHAudXNlKCIvYXBpL3Byb3BlcnRpZXMiLCBwcm9wZXJ0eVJvdXRlcyk7CmFwcC51c2UoIi9hcGkvc2NyYXBlciIsIHNjcmFwZXJSb3V0ZXMpOwphcHAudXNlKCIvYXBpL2ZpbHRlcnMiLCBmaWx0ZXJSb3V0ZXMpOwphcHAudXNlKCIvYXBpL21hcCIsIG1hcFJvdXRlcyk7CmFwcC51c2UoIi9hcGkvem9uZXMiLCB6b25lUm91dGVzKTsKYXBwLnVzZSgiL2FwaS9wb3J0YWxzIiwgcG9ydGFsUm91dGVzKTsKYXBwLnVzZSgiL2FwaS9tdW5pY2lwYWxpdGllcyIsIG11bmljaXBhbGl0eVJvdXRlcyk7CmFwcC51c2UoIi9hcGkvdmFsZW5jaWEtZGlzdHJpY3RzIiwgdmFsZW5jaWFEaXN0cmljdFJvdXRlcyk7CmFwcC51c2UoIi9hcGkvYWkiLCBhaVJvdXRlcyk7CmFwcC51c2UoIi9hcGkvYWktYWRtaW4iLCBhaUFkbWluUm91dGVzKTsKYXBwLnVzZSgiLyIsIGFuYWx5dGljc1JvdXRlcyk7CgovLyBBUEk6IEVzdGFkbyBkZWwgc2NoZWR1bGVyIHkgbG9ncyBkZSBzY3JhcGluZwphcHAuZ2V0KCIvYXBpL3NjaGVkdWxlci9zdGF0dXMiLCByZXF1aXJlQXV0aCwgKF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHsKICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IGdldFNjaGVkdWxlclN0YXR1cygpIH0pOwp9KTsKYXBwLmdldCgiL2FwaS9zY2hlZHVsZXIvbG9ncyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIGNvbnN0IGxvZ3MgPSBhd2FpdCBnZXRSZWNlbnRTY3JhcGluZ0xvZ3MoMjApOwogIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogbG9ncyB9KTsKfSk7CgovLyBJbmljaW8gZGVsIHNlcnZpZG9yCmNvbnN0IHN0YXJ0ID0gYXN5bmMgKCkgPT4gewogIGF3YWl0IGNvbm5lY3REQigpOwoKICAvLyBNaWdyYWNpw7NuOiBhw7FhZGlyIGNvbHVtbmEgZGVsZXRlZF9hdCBzaSBubyBleGlzdGUgKHNhZmUgdG8gcnVuIG11bHRpcGxlIHRpbWVzKQogIHRyeSB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KGBBTFRFUiBUQUJMRSBwcm9wZXJ0aWVzCiAgICAgIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBkZWxldGVkX2F0IERBVEVUSU1FIE5VTEwgREVGQVVMVCBOVUxMLAogICAgICBBREQgSU5ERVggSUYgTk9UIEVYSVNUUyBpZHhfZGVsZXRlZCAoZGVsZXRlZF9hdClgKTsKICAgIGF3YWl0IHBvb2wucXVlcnkoYEFMVEVSIFRBQkxFIHByb3BlcnRpZXMKICAgICAgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIG9wZXJhdGlvbl90eXBlIEVOVU0oJ3NhbGUnLCdyZW50JykgTk9UIE5VTEwgREVGQVVMVCAnc2FsZScsCiAgICAgIEFERCBJTkRFWCBJRiBOT1QgRVhJU1RTIGlkeF9vcGVyYXRpb25fdHlwZSAob3BlcmF0aW9uX3R5cGUpYCk7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KGBDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncyAoCiAgICAgIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICAgICAgbmFtZSBWQVJDSEFSKDEyMCkgTk9UIE5VTEwgVU5JUVVFLAogICAgICBpZGVhbGlzdGFfc2x1ZyBWQVJDSEFSKDE2MCkgTk9UIE5VTEwsCiAgICAgIGZvdG9jYXNhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogICAgICBwaXNvc19zbHVnIFZBUkNIQVIoMTYwKSBOT1QgTlVMTCwKICAgICAgYWN0aXZlIFRJTllJTlQoMSkgREVGQVVMVCAxLAogICAgICBzb3J0X29yZGVyIElOVCBERUZBVUxUIDk5OSwKICAgICAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUAogICAgKWApOwogICAgY29uc29sZS5sb2coIltEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuIik7CgogICAgLy8gUHVyZ2EgaW5pY2lhbDogbGltcGlhciByZWdpc3Ryb3MgZW4gYXJjaGl2byA+MzAgZMOtYXMKICAgIGNvbnN0IHsgUHJvcGVydHlNb2RlbDogUE0gfSA9IGF3YWl0IGltcG9ydCgiLi9tb2RlbHMvcHJvcGVydHlNb2RlbCIpOwogICAgY29uc3QgcHVyZ2VkID0gYXdhaXQgUE0ucHVyZ2VPbGREZWxldGVkKCk7CiAgICBpZiAocHVyZ2VkID4gMCkgY29uc29sZS5sb2coYFtEQl0gUHVyZ2Fkb3MgJHtwdXJnZWR9IGFudW5jaW9zIGRlbCBhcmNoaXZvICg+MzAgZMOtYXMpLmApOwogIH0gY2F0Y2ggKGU6IGFueSkgewogICAgY29uc29sZS53YXJuKCJbREJdIE1pZ3JhY2nDs24gZGVsZXRlZF9hdDoiLCBlLm1lc3NhZ2UpOwogIH0KCiAgLy8gR2VuZXJhciBpY29ub3MgUE5HIHBhcmEgUFdBIChkZXNkZSBpY29uLnN2ZykKICBhd2FpdCBnZW5lcmF0ZVBuZ0ljb25zKCkuY2F0Y2goKGUpID0+IGNvbnNvbGUud2FybigiW0ljb25zXSIsIGUubWVzc2FnZSkpOwogIGFwcC5saXN0ZW4oUE9SVCwgKCkgPT4gewogICAgY29uc29sZS5sb2coYFNlcnZpZG9yIGFycmFuY2FkbyBlbiBodHRwOi8vbG9jYWxob3N0OiR7UE9SVH1gKTsKICAgIGNvbnNvbGUubG9nKGBEYXNoYm9hcmQ6IGh0dHA6Ly9sb2NhbGhvc3Q6JHtQT1JUfS9kYXNoYm9hcmRgKTsKICAgIGNvbnNvbGUubG9nKGBMb2dpbjogR2VvcmdlIC8gNDIxM2ApOwogIH0pOwogIHN0YXJ0U2NoZWR1bGVyKCk7Cn07CgpzdGFydCgpLmNhdGNoKChlcnIpID0+IHsKICBjb25zb2xlLmVycm9yKCJFcnJvciBhbCBpbmljaWFyOiIsIGVycik7CiAgcHJvY2Vzcy5leGl0KDEpOwp9KTsKCi8vIEVycm9yIGhhbmRsZXIgY2VudHJhbGl6YWRvIChkZWJlIGlyIERFU1BVw4lTIGRlIHRvZGFzIGxhcyBydXRhcykKYXBwLnVzZSgoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIHJlcy5zdGF0dXMoNDA0KS5yZW5kZXIoImVycm9yIiwgeyBtZXNzYWdlOiAiUMOhZ2luYSBubyBlbmNvbnRyYWRhICg0MDQpIiwgdXNlcjogbnVsbCB9KTsKfSk7CgovLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzCmFwcC51c2UoKGVycjogRXJyb3IsIF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIF9uZXh0OiBOZXh0RnVuY3Rpb24pID0+IHsKICBjb25zb2xlLmVycm9yKCJbRXJyb3IgSGFuZGxlcl0iLCBlcnIubWVzc2FnZSwgZXJyLnN0YWNrKTsKICByZXMuc3RhdHVzKDUwMCkucmVuZGVyKCJlcnJvciIsIHsgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgIkVycm9yIGludGVybm8gZGVsIHNlcnZpZG9yIiwgdXNlcjogbnVsbCB9KTsKfSk7CgpleHBvcnQgZGVmYXVsdCBhcHA7Cg==","afterExisted":true,"afterHash":"9d09b637fc8a4df9a598e4c2c1a26400d7069c9f0e316949350c5996392c43b0","afterContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IGV4cHJlc3MsIHsgUmVxdWVzdCwgUmVzcG9uc2UsIE5leHRGdW5jdGlvbiB9IGZyb20gImV4cHJlc3MiOwppbXBvcnQgc2Vzc2lvbiBmcm9tICJleHByZXNzLXNlc3Npb24iOwppbXBvcnQgTXlTUUxTdG9yZUZhY3RvcnkgZnJvbSAiZXhwcmVzcy1teXNxbC1zZXNzaW9uIjsKaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAiYm9keS1wYXJzZXIiOwppbXBvcnQgY29ycyBmcm9tICJjb3JzIjsKaW1wb3J0IHBhdGggZnJvbSAicGF0aCI7CmltcG9ydCByYXRlTGltaXQgZnJvbSAiZXhwcmVzcy1yYXRlLWxpbWl0IjsKaW1wb3J0IHsgY29ubmVjdERCIH0gZnJvbSAiLi9jb25maWcvZGIiOwppbXBvcnQgcG9vbCBmcm9tICIuL2NvbmZpZy9kYiI7CmltcG9ydCBhdXRoUm91dGVzIGZyb20gIi4vcm91dGVzL2F1dGhSb3V0ZXMiOwppbXBvcnQgcHJvcGVydHlSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvcHJvcGVydHlSb3V0ZXMiOwppbXBvcnQgc2NyYXBlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9zY3JhcGVyUm91dGVzIjsKaW1wb3J0IGZpbHRlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9maWx0ZXJSb3V0ZXMiOwppbXBvcnQgbWFwUm91dGVzIGZyb20gIi4vcm91dGVzL21hcFJvdXRlcyI7CmltcG9ydCB6b25lUm91dGVzIGZyb20gIi4vcm91dGVzL3pvbmVSb3V0ZXMiOwppbXBvcnQgcG9ydGFsUm91dGVzIGZyb20gIi4vcm91dGVzL3BvcnRhbFJvdXRlcyI7CmltcG9ydCBhbmFseXRpY3NSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYW5hbHl0aWNzUm91dGVzIjsKaW1wb3J0IG11bmljaXBhbGl0eVJvdXRlcyBmcm9tICIuL3JvdXRlcy9tdW5pY2lwYWxpdHlSb3V0ZXMiOwppbXBvcnQgdmFsZW5jaWFEaXN0cmljdFJvdXRlcyBmcm9tICIuL3JvdXRlcy92YWxlbmNpYURpc3RyaWN0Um91dGVzIjsKaW1wb3J0IGFpUm91dGVzIGZyb20gIi4vcm91dGVzL2FpUm91dGVzIjsKaW1wb3J0IGFpQWRtaW5Sb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYWlBZG1pblJvdXRlcyI7CmltcG9ydCB7IHJlcXVpcmVBZG1pbiB9IGZyb20gIi4vbWlkZGxld2FyZS9yZXF1aXJlQWRtaW4iOwppbXBvcnQgeyByZXF1aXJlQXV0aCB9IGZyb20gIi4vbWlkZGxld2FyZS9hdXRoIjsKaW1wb3J0IHsgc3RhcnRTY2hlZHVsZXIsIGdldFNjaGVkdWxlclN0YXR1cywgZ2V0UmVjZW50U2NyYXBpbmdMb2dzIH0gZnJvbSAiLi9zZXJ2aWNlcy9zY2hlZHVsZXJTZXJ2aWNlIjsKaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICIuL21vZGVscy9maWx0ZXJNb2RlbCI7CmltcG9ydCB7IFByb3BlcnR5TW9kZWwgfSBmcm9tICIuL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgWm9uZU1vZGVsIH0gZnJvbSAiLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuL21vZGVscy9wb3J0YWxNb2RlbCI7CmltcG9ydCB7IGdlbmVyYXRlUG5nSWNvbnMgfSBmcm9tICIuL3V0aWxzL2dlbmVyYXRlSWNvbnMiOwppbXBvcnQgeyBWQUxFTkNJQV9ORUlHSEJPUkhPT0RTIH0gZnJvbSAiLi9jb25maWcvdmFsZW5jaWFOZWlnaGJvcmhvb2RzIjsKaW1wb3J0IHsgVkFMRU5DSUFfRElTVFJJQ1RTIH0gZnJvbSAiLi9jb25maWcvdmFsZW5jaWFEaXN0cmljdHMiOwpjb25zdCBhcHAgPSBleHByZXNzKCk7CmNvbnN0IFBPUlQgPSBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCkgfHwgMzAwMDsKCi8vIE15U1FMIHNlc3Npb24gc3RvcmUgKGV2aXRhIHdhcm5pbmcgZGUgTWVtb3J5U3RvcmUgZW4gcHJvZHVjY2nDs24pCmNvbnN0IE15U1FMU3RvcmUgPSBNeVNRTFN0b3JlRmFjdG9yeShzZXNzaW9uKTsKY29uc3Qgc2Vzc2lvblN0b3JlID0gbmV3IE15U1FMU3RvcmUoCiAgeyBjcmVhdGVEYXRhYmFzZVRhYmxlOiB0cnVlLCBjbGVhckV4cGlyZWQ6IHRydWUsIGNoZWNrRXhwaXJhdGlvbkludGVydmFsOiA5MDAwMDAsIGV4cGlyYXRpb246IDg2NDAwMDAwIH0sCiAgKHBvb2wgYXMgYW55KS5wb29sCik7CgovLyBNaWRkbGV3YXJlCmFwcC51c2UoY29ycygpKTsKYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7CmFwcC51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHsgZXh0ZW5kZWQ6IHRydWUgfSkpOwphcHAudXNlKAogIHNlc3Npb24oewogICAgc2VjcmV0OiBwcm9jZXNzLmVudi5TRVNTSU9OX1NFQ1JFVCB8fCAibGxpcmlhX3NlY3JldF9rZXlfMjAyNCIsCiAgICBzdG9yZTogc2Vzc2lvblN0b3JlLAogICAgcmVzYXZlOiBmYWxzZSwKICAgIHNhdmVVbmluaXRpYWxpemVkOiBmYWxzZSwKICAgIGNvb2tpZTogeyBzZWN1cmU6IGZhbHNlLCBtYXhBZ2U6IDI0ICogNjAgKiA2MCAqIDEwMDAgfSwKICB9KQopOwoKLy8gUmF0ZSBsaW1pdGluZyBwYXJhIGxvZ2luIChwcm90ZWNjacOzbiBhbnRpLWJydXRlZm9yY2UpCmNvbnN0IGxvZ2luUmF0ZU1heCA9IE51bWJlcihwcm9jZXNzLmVudi5BVVRIX0xPR0lOX1JBVEVfTUFYIHx8IChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gInByb2R1Y3Rpb24iID8gMTAgOiA2MCkpOwpjb25zdCBsb2dpbkxpbWl0ZXIgPSByYXRlTGltaXQoewogIHdpbmRvd01zOiAxNSAqIDYwICogMTAwMCwKICBtYXg6IGxvZ2luUmF0ZU1heCwKICBtZXNzYWdlOiAiRGVtYXNpYWRvcyBpbnRlbnRvcyBkZSBpbmljaW8gZGUgc2VzacOzbi4gSW50w6ludGFsbyBlbiAxNSBtaW51dG9zLiIsCiAgc3RhbmRhcmRIZWFkZXJzOiB0cnVlLAogIGxlZ2FjeUhlYWRlcnM6IGZhbHNlLAogIHNraXA6IChyZXEpID0+IHsKICAgIGNvbnN0IGlwID0gU3RyaW5nKHJlcS5pcCB8fCByZXEuc29ja2V0Py5yZW1vdGVBZGRyZXNzIHx8ICIiKS5yZXBsYWNlKC9eOjpmZmZmOi8sICIiKTsKICAgIHJldHVybiAoCiAgICAgIGlwID09PSAiMTI3LjAuMC4xIiB8fAogICAgICBpcC5zdGFydHNXaXRoKCIxOTIuMTY4LiIpIHx8CiAgICAgIGlwLnN0YXJ0c1dpdGgoIjEwMC4iKSB8fAogICAgICBpcC5zdGFydHNXaXRoKCIxMC4iKQogICAgKTsKICB9LAp9KTsKYXBwLnVzZSgiL2xvZ2luIiwgbG9naW5MaW1pdGVyKTsKCi8vIFZpZXcgZW5naW5lCmFwcC5zZXQoInZpZXcgZW5naW5lIiwgImVqcyIpOwphcHAuc2V0KCJ2aWV3cyIsIHBhdGguam9pbihfX2Rpcm5hbWUsICIuLiIsICJzcmMiLCAidmlld3MiKSk7CmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gInByb2R1Y3Rpb24iKSBhcHAuc2V0KCJ2aWV3IGNhY2hlIiwgZmFsc2UpOwoKLy8gQXJjaGl2b3MgZXN0YXRpY29zCmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgIi4uIiwgInB1YmxpYyIpKSk7CgphcHAudXNlKChyZXEsIHJlcywgbmV4dCkgPT4gewogIHJlcy5sb2NhbHMuc2Vzc2lvblJvbGUgPSAocmVxLnNlc3Npb24gYXMgeyByb2xlPzogc3RyaW5nIH0pLnJvbGUgfHwgIiI7CiAgcmVzLmxvY2Fscy5zZXNzaW9uVXNlciA9IChyZXEuc2Vzc2lvbiBhcyB7IHVzZXJuYW1lPzogc3RyaW5nIH0pLnVzZXJuYW1lIHx8ICIiOwogIG5leHQoKTsKfSk7CgovLyBSZWRpcmVjY2lvbiByYWl6CmFwcC5nZXQoIi8iLCAoX3JlcSwgcmVzKSA9PiByZXMucmVkaXJlY3QoIi9sb2dpbiIpKTsKCi8vIFJ1dGFzIGRlIGF1dGVudGljYWNpb24gKHNpbiBwcm90ZWNjaW9uKQphcHAudXNlKCIvIiwgYXV0aFJvdXRlcyk7CmFwcC5nZXQoIi9sb2dpbiIsIChfcmVxLCByZXMpID0+IHJlcy5yZWRpcmVjdCgiL2xvZ2luIikpOyAvLyB5YSBjdWJpZXJ0byBwb3IgYXV0aFJvdXRlcwoKLy8gRGFzaGJvYXJkIHByaW5jaXBhbAphcHAuZ2V0KCIvZGFzaGJvYXJkIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChyZXEsIHJlcykgPT4gewogIHRyeSB7CiAgICBjb25zdCBvcGVyYXRpb24gPSBTdHJpbmcocmVxLnF1ZXJ5Lm9wIHx8ICJzYWxlIikudG9Mb3dlckNhc2UoKSA9PT0gInJlbnQiID8gInJlbnQiIDogInNhbGUiOwogICAgY29uc3QgW3N0YXRzLCBwb3J0YWxzLCB6b25lc10gPSBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgIFByb3BlcnR5TW9kZWwuZ2V0U3RhdHMob3BlcmF0aW9uKSwKICAgICAgUG9ydGFsTW9kZWwuZmluZEFsbCgpLAogICAgICBab25lTW9kZWwuZmluZEFsbCgpLAogICAgXSk7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvaW5kZXgiLCB7CiAgICAgIHBvcnRhbHMsCiAgICAgIHpvbmVzLAogICAgICB1c2VyOiAocmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSB8fCAiR2VvcmdlIiwKICAgICAgY291bnQ6IHN0YXRzLnRvdGFsLAogICAgICBhdmdfcHJpY2U6IHN0YXRzLmF2Z19wcmljZSwKICAgICAgbWluX3ByaWNlOiBzdGF0cy5taW5fcHJpY2UsCiAgICAgIHNvdXJjZV9jb3VudDogc3RhdHMuc291cmNlX2NvdW50LAogICAgICBvcGVyYXRpb24sCiAgICAgIHZhbGVuY2lhX25laWdoYm9yaG9vZHM6IFZBTEVOQ0lBX05FSUdIQk9SSE9PRFMsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgZWwgZGFzaGJvYXJkIik7CiAgfQp9KTsKCi8vIFZpc3RhIGRlbCBhcmNoaXZvIGRlIHByb3BpZWRhZGVzIGVsaW1pbmFkYXMKYXBwLmdldCgiL2Rhc2hib2FyZC9hcmNoaXZlIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChyZXEsIHJlcykgPT4gewogIHRyeSB7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvYXJjaGl2ZSIsIHsKICAgICAgdXNlcjogKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgZWwgYXJjaGl2byIpOwogIH0KfSk7CgovLyBWaXN0YSBkZSBmaWx0cm9zCmFwcC5nZXQoIi9kYXNoYm9hcmQvZmlsdGVycyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIGNvbnN0IFtmaWx0ZXJzLCBwb3J0YWxzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgRmlsdGVyTW9kZWwuZmluZEFsbCgpLAogICAgICBQb3J0YWxNb2RlbC5maW5kQWxsKCksCiAgICBdKTsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9maWx0ZXJzIiwgewogICAgICBmaWx0ZXJzLAogICAgICBwb3J0YWxzLAogICAgICB1c2VyOiAoX3JlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgZmlsdHJvcyIpOwogIH0KfSk7CgovLyBWaXN0YSBkZSBtYXBhCmFwcC5nZXQoIi9kYXNoYm9hcmQvbWFwIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChfcmVxLCByZXMpID0+IHsKICB0cnkgewogICAgY29uc3Qgb3BlcmF0aW9uID0gU3RyaW5nKF9yZXEucXVlcnkub3AgfHwgInNhbGUiKS50b0xvd2VyQ2FzZSgpID09PSAicmVudCIgPyAicmVudCIgOiAic2FsZSI7CiAgICBjb25zdCBbcHJvcHMsIHpvbmVzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgUHJvcGVydHlNb2RlbC5maW5kRm9yTWFwKG9wZXJhdGlvbiksCiAgICAgIFpvbmVNb2RlbC5maW5kQWxsKCksCiAgICBdKTsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9tYXAiLCB7CiAgICAgIHByb3BlcnRpZXM6IHByb3BzLAogICAgICB6b25lcywKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgICBvcGVyYXRpb24sCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgbWFwYSIpOwogIH0KfSk7CgovLyBWaXN0YSBkZSB6b25hcwphcHAuZ2V0KCIvZGFzaGJvYXJkL3pvbmVzIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChfcmVxLCByZXMpID0+IHsKICB0cnkgewogICAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL3pvbmVzIiwgewogICAgICB1c2VyOiAoX3JlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgem9uYXMiKTsKICB9Cn0pOwoKLy8gVmlzdGEgSUEg4oCUIHJlY29tZW5kYWNpb25lcyBtdWx0aWFnZW50IChvcGVyYWRvciBHZW9yZ2UpCmFwcC5nZXQoIi9kYXNoYm9hcmQvYWkiLCByZXF1aXJlQXV0aCwgYXN5bmMgKHJlcSwgcmVzKSA9PiB7CiAgaWYgKChyZXEuc2Vzc2lvbiBhcyBhbnkpLnJvbGUgPT09ICJpYV9hZG1pbiIpIHsKICAgIHJlcy5yZWRpcmVjdCgiL2Rhc2hib2FyZC9haS1hZG1pbiIpOwogICAgcmV0dXJuOwogIH0KICBjb25zdCBicmlkZ2VVcmwgPSBwcm9jZXNzLmVudi5DVVJTT1JfQlJJREdFX1VSTCB8fCAiaHR0cDovLzEwMC43OC4xOTguOTg6ODA5NSI7CiAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2FpIiwgewogICAgdXNlcjogKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICBicmlkZ2VVcmwsCiAgfSk7Cn0pOwoKLy8gUG9ydGFsIElBIGF2YW56YWRvIOKAlCBzb2xvIGFkbWluCmFwcC5nZXQoIi9kYXNoYm9hcmQvYWktYWRtaW4iLCByZXF1aXJlQWRtaW4sIGFzeW5jIChyZXEsIHJlcykgPT4gewogIGNvbnN0IGJyaWRnZVVybCA9IHByb2Nlc3MuZW52LkNVUlNPUl9CUklER0VfVVJMIHx8ICJodHRwOi8vMTAwLjc4LjE5OC45ODo4MDk1IjsKICByZXMucmVuZGVyKCJkYXNoYm9hcmQvYWktYWRtaW4iLCB7CiAgICB1c2VyOiAocmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSB8fCAiYWRtaW4iLAogICAgYnJpZGdlVXJsLAogIH0pOwp9KTsKCi8vIFZpc3RhIGRlIHBvcnRhbGVzCmFwcC5nZXQoIi9kYXNoYm9hcmQvcG9ydGFscyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9wb3J0YWxzIiwgewogICAgICB1c2VyOiAoX3JlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgcG9ydGFsZXMiKTsKICB9Cn0pOwoKLy8gUnV0YSBvZmZsaW5lIChTZXJ2aWNlIFdvcmtlciBmYWxsYmFjaykKYXBwLmdldCgiL29mZmxpbmUiLCAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIHJlcy5yZW5kZXIoIm9mZmxpbmUiKTsKfSk7CgovLyBBUEkgcm91dGVzCmFwcC51c2UoIi9hcGkvcHJvcGVydGllcyIsIHByb3BlcnR5Um91dGVzKTsKYXBwLnVzZSgiL2FwaS9zY3JhcGVyIiwgc2NyYXBlclJvdXRlcyk7CmFwcC51c2UoIi9hcGkvZmlsdGVycyIsIGZpbHRlclJvdXRlcyk7CmFwcC51c2UoIi9hcGkvbWFwIiwgbWFwUm91dGVzKTsKYXBwLnVzZSgiL2FwaS96b25lcyIsIHpvbmVSb3V0ZXMpOwphcHAudXNlKCIvYXBpL3BvcnRhbHMiLCBwb3J0YWxSb3V0ZXMpOwphcHAudXNlKCIvYXBpL211bmljaXBhbGl0aWVzIiwgbXVuaWNpcGFsaXR5Um91dGVzKTsKYXBwLnVzZSgiL2FwaS92YWxlbmNpYS1kaXN0cmljdHMiLCB2YWxlbmNpYURpc3RyaWN0Um91dGVzKTsKYXBwLnVzZSgiL2FwaS9haSIsIGFpUm91dGVzKTsKYXBwLnVzZSgiL2FwaS9haS1hZG1pbiIsIGFpQWRtaW5Sb3V0ZXMpOwphcHAudXNlKCIvIiwgYW5hbHl0aWNzUm91dGVzKTsKCi8vIEFQSTogRXN0YWRvIGRlbCBzY2hlZHVsZXIgeSBsb2dzIGRlIHNjcmFwaW5nCmFwcC5nZXQoIi9hcGkvc2NoZWR1bGVyL3N0YXR1cyIsIHJlcXVpcmVBdXRoLCAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogZ2V0U2NoZWR1bGVyU3RhdHVzKCkgfSk7Cn0pOwphcHAuZ2V0KCIvYXBpL3NjaGVkdWxlci9sb2dzIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7CiAgY29uc3QgbG9ncyA9IGF3YWl0IGdldFJlY2VudFNjcmFwaW5nTG9ncygyMCk7CiAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBsb2dzIH0pOwp9KTsKCi8vIEluaWNpbyBkZWwgc2Vydmlkb3IKY29uc3Qgc3RhcnQgPSBhc3luYyAoKSA9PiB7CiAgYXdhaXQgY29ubmVjdERCKCk7CgogIC8vIE1pZ3JhY2nDs246IGHDsWFkaXIgY29sdW1uYSBkZWxldGVkX2F0IHNpIG5vIGV4aXN0ZSAoc2FmZSB0byBydW4gbXVsdGlwbGUgdGltZXMpCiAgdHJ5IHsKICAgIGF3YWl0IHBvb2wucXVlcnkoYEFMVEVSIFRBQkxFIHByb3BlcnRpZXMKICAgICAgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGRlbGV0ZWRfYXQgREFURVRJTUUgTlVMTCBERUZBVUxUIE5VTEwsCiAgICAgIEFERCBJTkRFWCBJRiBOT1QgRVhJU1RTIGlkeF9kZWxldGVkIChkZWxldGVkX2F0KWApOwogICAgYXdhaXQgcG9vbC5xdWVyeShgQUxURVIgVEFCTEUgcHJvcGVydGllcwogICAgICBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgb3BlcmF0aW9uX3R5cGUgRU5VTSgnc2FsZScsJ3JlbnQnKSBOT1QgTlVMTCBERUZBVUxUICdzYWxlJywKICAgICAgQUREIElOREVYIElGIE5PVCBFWElTVFMgaWR4X29wZXJhdGlvbl90eXBlIChvcGVyYXRpb25fdHlwZSlgKTsKICAgIGF3YWl0IHBvb2wucXVlcnkoYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHZhbGVuY2lhX2Rpc3RyaWN0X3NsdWdzICgKICAgICAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogICAgICBuYW1lIFZBUkNIQVIoMTIwKSBOT1QgTlVMTCBVTklRVUUsCiAgICAgIGlkZWFsaXN0YV9zbHVnIFZBUkNIQVIoMTYwKSBOT1QgTlVMTCwKICAgICAgZm90b2Nhc2Ffc2x1ZyBWQVJDSEFSKDE2MCkgTk9UIE5VTEwsCiAgICAgIHBpc29zX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogICAgICBhY3RpdmUgVElOWUlOVCgxKSBERUZBVUxUIDEsCiAgICAgIHNvcnRfb3JkZXIgSU5UIERFRkFVTFQgOTk5LAogICAgICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCiAgICApYCk7CgogICAgLy8gTGEgdGFibGEgc2UgYcOxYWRpw7MgZGVzcHXDqXMgZGVsIGluaXQtZGIgb3JpZ2luYWwgeSBwdWVkZSBleGlzdGlyIHZhY8OtYS4KICAgIC8vIFNlbWJyYXIgc8OzbG8gY3VhbmRvIGVzdMOhIHZhY8OtYSBwcmVzZXJ2YSBhbHRhcy9iYWphcyBoZWNoYXMgZGVzZGUgbGEgVUkuCiAgICBjb25zdCBbZGlzdHJpY3RDb3VudFJvd3NdID0gYXdhaXQgcG9vbC5xdWVyeShgU0VMRUNUIENPVU5UKCopIEFTIHRvdGFsIEZST00gdmFsZW5jaWFfZGlzdHJpY3Rfc2x1Z3NgKTsKICAgIGNvbnN0IGRpc3RyaWN0Q291bnQgPSBOdW1iZXIoKGRpc3RyaWN0Q291bnRSb3dzIGFzIGFueVtdKVswXT8udG90YWwgfHwgMCk7CiAgICBpZiAoZGlzdHJpY3RDb3VudCA9PT0gMCkgewogICAgICBmb3IgKGNvbnN0IFtpbmRleCwgZGlzdHJpY3RdIG9mIFZBTEVOQ0lBX0RJU1RSSUNUUy5lbnRyaWVzKCkpIHsKICAgICAgICBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICAgICAgYElOU0VSVCBJR05PUkUgSU5UTyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncwogICAgICAgICAgIChuYW1lLCBpZGVhbGlzdGFfc2x1ZywgZm90b2Nhc2Ffc2x1ZywgcGlzb3Nfc2x1ZywgYWN0aXZlLCBzb3J0X29yZGVyKQogICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPywgMSwgPylgLAogICAgICAgICAgW2Rpc3RyaWN0Lm5hbWUsIGRpc3RyaWN0LmlkZWFsaXN0YSwgZGlzdHJpY3QuZm90b2Nhc2EsIGRpc3RyaWN0LnBpc29zLCAoaW5kZXggKyAxKSAqIDEwXQogICAgICAgICk7CiAgICAgIH0KICAgICAgY29uc29sZS5sb2coYFtEQl0gU2VtYnJhZG9zICR7VkFMRU5DSUFfRElTVFJJQ1RTLmxlbmd0aH0gZGlzdHJpdG9zIGRlIFZhbGVuY2lhLmApOwogICAgfSBlbHNlIHsKICAgICAgLy8gTWlncmFyIMO6bmljYW1lbnRlIGxvcyBzbHVncyBwb3IgZGVmZWN0byBhbnRpZ3Vvcy9pbmNvcnJlY3Rvczsgbm8gdG9jYXIKICAgICAgLy8gdmFsb3JlcyBwZXJzb25hbGl6YWRvcyBxdWUgZWwgdXN1YXJpbyBoYXlhIGNvbmZpZ3VyYWRvIGVuIGxhIFVJLgogICAgICBjb25zdCBsZWdhY3lQaXNvc1NsdWdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7CiAgICAgICAgIkNpdXRhdCBWZWxsYSI6IFsiY2l1dGF0LXZlbGxhLXZhbGVuY2lhLWNhcGl0YWwiXSwKICAgICAgICAiRWl4YW1wbGUiOiBbImVpeGFtcGxlLXZhbGVuY2lhLWNhcGl0YWwiXSwKICAgICAgICAiRXh0cmFtdXJzIjogWyJleHRyYW11cnMtdmFsZW5jaWEtY2FwaXRhbCIsICJwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2V4dHJhbXVycyJdLAogICAgICAgICJDYW1wYW5hciI6IFsiY2FtcGFuYXItdmFsZW5jaWEtY2FwaXRhbCJdLAogICAgICAgICJQYXRyYWl4IjogWyJwYXRyYWl4LXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9wYXRyYWl4Il0sCiAgICAgICAgIlF1YXRyZSBDYXJyZXJlcyI6IFsicXVhdHJlLWNhcnJlcmVzLXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9xdWF0cmVfY2FycmVyZXMiXSwKICAgICAgICAiUG9ibGF0cyBNYXJpdGltcyI6IFsicG9ibGF0cy1tYXJpdGltcy12YWxlbmNpYS1jYXBpdGFsIiwgInBpc29zLXZhbGVuY2lhX2NhcGl0YWxfcG9ibGF0c19tYXJpdGltcyJdLAogICAgICAgICJDYW1pbnMgYWwgR3JhdSI6IFsiY2FtaW5zLWFsLWdyYXUtdmFsZW5jaWEtY2FwaXRhbCIsICJwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2NhbWluc19hbF9ncmF1Il0sCiAgICAgICAgIkJlbmljYWxhcCI6IFsiYmVuaWNhbGFwLXZhbGVuY2lhLWNhcGl0YWwiXSwKICAgICAgICAiUmFzY2FueWEiOiBbInJhc2NhbnlhLXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9yYXNjYW55YSJdLAogICAgICB9OwogICAgICBmb3IgKGNvbnN0IGRpc3RyaWN0IG9mIFZBTEVOQ0lBX0RJU1RSSUNUUykgewogICAgICAgIGNvbnN0IGxlZ2FjeSA9IGxlZ2FjeVBpc29zU2x1Z3NbZGlzdHJpY3QubmFtZV0gfHwgW107CiAgICAgICAgaWYgKGxlZ2FjeS5sZW5ndGggPT09IDApIGNvbnRpbnVlOwogICAgICAgIGNvbnN0IHBsYWNlaG9sZGVycyA9IGxlZ2FjeS5tYXAoKCkgPT4gIj8iKS5qb2luKCIsICIpOwogICAgICAgIGF3YWl0IHBvb2wucXVlcnkoCiAgICAgICAgICBgVVBEQVRFIHZhbGVuY2lhX2Rpc3RyaWN0X3NsdWdzIFNFVCBwaXNvc19zbHVnID0gPwogICAgICAgICAgIFdIRVJFIG5hbWUgPSA/IEFORCBwaXNvc19zbHVnIElOICgke3BsYWNlaG9sZGVyc30pYCwKICAgICAgICAgIFtkaXN0cmljdC5waXNvcywgZGlzdHJpY3QubmFtZSwgLi4ubGVnYWN5XQogICAgICAgICk7CiAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUubG9nKCJbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLiIpOwoKICAgIC8vIFB1cmdhIGluaWNpYWw6IGxpbXBpYXIgcmVnaXN0cm9zIGVuIGFyY2hpdm8gPjMwIGTDrWFzCiAgICBjb25zdCB7IFByb3BlcnR5TW9kZWw6IFBNIH0gPSBhd2FpdCBpbXBvcnQoIi4vbW9kZWxzL3Byb3BlcnR5TW9kZWwiKTsKICAgIGNvbnN0IHB1cmdlZCA9IGF3YWl0IFBNLnB1cmdlT2xkRGVsZXRlZCgpOwogICAgaWYgKHB1cmdlZCA+IDApIGNvbnNvbGUubG9nKGBbREJdIFB1cmdhZG9zICR7cHVyZ2VkfSBhbnVuY2lvcyBkZWwgYXJjaGl2byAoPjMwIGTDrWFzKS5gKTsKICB9IGNhdGNoIChlOiBhbnkpIHsKICAgIGNvbnNvbGUud2FybigiW0RCXSBNaWdyYWNpw7NuIGRlbGV0ZWRfYXQ6IiwgZS5tZXNzYWdlKTsKICB9CgogIC8vIEdlbmVyYXIgaWNvbm9zIFBORyBwYXJhIFBXQSAoZGVzZGUgaWNvbi5zdmcpCiAgYXdhaXQgZ2VuZXJhdGVQbmdJY29ucygpLmNhdGNoKChlKSA9PiBjb25zb2xlLndhcm4oIltJY29uc10iLCBlLm1lc3NhZ2UpKTsKICBhcHAubGlzdGVuKFBPUlQsICgpID0+IHsKICAgIGNvbnNvbGUubG9nKGBTZXJ2aWRvciBhcnJhbmNhZG8gZW4gaHR0cDovL2xvY2FsaG9zdDoke1BPUlR9YCk7CiAgICBjb25zb2xlLmxvZyhgRGFzaGJvYXJkOiBodHRwOi8vbG9jYWxob3N0OiR7UE9SVH0vZGFzaGJvYXJkYCk7CiAgfSk7CiAgc3RhcnRTY2hlZHVsZXIoKTsKfTsKCnN0YXJ0KCkuY2F0Y2goKGVycikgPT4gewogIGNvbnNvbGUuZXJyb3IoIkVycm9yIGFsIGluaWNpYXI6IiwgZXJyKTsKICBwcm9jZXNzLmV4aXQoMSk7Cn0pOwoKLy8gRXJyb3IgaGFuZGxlciBjZW50cmFsaXphZG8gKGRlYmUgaXIgREVTUFXDiVMgZGUgdG9kYXMgbGFzIHJ1dGFzKQphcHAudXNlKChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7CiAgcmVzLnN0YXR1cyg0MDQpLnJlbmRlcigiZXJyb3IiLCB7IG1lc3NhZ2U6ICJQw6FnaW5hIG5vIGVuY29udHJhZGEgKDQwNCkiLCB1c2VyOiBudWxsIH0pOwp9KTsKCi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMKYXBwLnVzZSgoZXJyOiBFcnJvciwgX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgX25leHQ6IE5leHRGdW5jdGlvbikgPT4gewogIGNvbnNvbGUuZXJyb3IoIltFcnJvciBIYW5kbGVyXSIsIGVyci5tZXNzYWdlLCBlcnIuc3RhY2spOwogIHJlcy5zdGF0dXMoNTAwKS5yZW5kZXIoImVycm9yIiwgeyBtZXNzYWdlOiBlcnIubWVzc2FnZSB8fCAiRXJyb3IgaW50ZXJubyBkZWwgc2Vydmlkb3IiLCB1c2VyOiBudWxsIH0pOwp9KTsKCmV4cG9ydCBkZWZhdWx0IGFwcDsK","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\config\\initDb.ts","beforeExisted":true,"beforeHash":"93faab55ab4e34143207b36e750e393ac2f537c1bc8ba325a34c193de9d903e6","beforeContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IG15c3FsIGZyb20gIm15c3FsMi9wcm9taXNlIjsKCmNvbnN0IFNRTCA9IGAKQ1JFQVRFIERBVEFCQVNFIElGIE5PVCBFWElTVFMgbGxpcmlhX3Byb3BlcnRpZXMgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF91bmljb2RlX2NpOwpVU0UgbGxpcmlhX3Byb3BlcnRpZXM7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1c2VycyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIHVzZXJuYW1lIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCBVTklRVUUsCiAgcGFzc3dvcmQgVkFSQ0hBUigyNTUpIE5PVCBOVUxMLAogIGVtYWlsIFZBUkNIQVIoMjU1KSBOT1QgTlVMTCwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHByb3BlcnRpZXMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICB0aXRsZSBWQVJDSEFSKDUwMCkgTk9UIE5VTEwsCiAgcHJpY2UgREVDSU1BTCgxMiwyKSBOT1QgTlVMTCBERUZBVUxUIDAsCiAgbG9jYXRpb24gVkFSQ0hBUig1MDApIE5PVCBOVUxMLAogIG11bmljaXBhbGl0eSBWQVJDSEFSKDIwMCksCiAgcHJvcGVydHlfdHlwZSBWQVJDSEFSKDUwKSBERUZBVUxUICdjYXNhJywKICBvcGVyYXRpb25fdHlwZSBFTlVNKCdzYWxlJywncmVudCcpIE5PVCBOVUxMIERFRkFVTFQgJ3NhbGUnLAogIHJvb21zIFRJTllJTlQsCiAgYmF0aHJvb21zIFRJTllJTlQsCiAgc2l6ZV9tMiBERUNJTUFMKDgsMiksCiAgZGVzY3JpcHRpb24gVEVYVCwKICBpbWFnZV91cmwgVkFSQ0hBUigxMDAwKSwKICB1cmwgVkFSQ0hBUigxMDAwKSBOT1QgTlVMTCBVTklRVUUsCiAgc291cmNlIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCwKICBsYXQgREVDSU1BTCgxMCw3KSwKICBsbmcgREVDSU1BTCgxMCw3KSwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogIHVwZGF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QLAogIElOREVYIGlkeF9wcmljZSAocHJpY2UpLAogIElOREVYIGlkeF9tdW5pY2lwYWxpdHkgKG11bmljaXBhbGl0eSksCiAgSU5ERVggaWR4X3Byb3BlcnR5X3R5cGUgKHByb3BlcnR5X3R5cGUpLAogIElOREVYIGlkeF9vcGVyYXRpb25fdHlwZSAob3BlcmF0aW9uX3R5cGUpLAogIElOREVYIGlkeF9zb3VyY2UgKHNvdXJjZSksCiAgSU5ERVggaWR4X3VwZGF0ZWQgKHVwZGF0ZWRfYXQpCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGZpbHRlcnMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMjAwKSwKICBtaW5fcHJpY2UgREVDSU1BTCgxMiwyKSwKICBtYXhfcHJpY2UgREVDSU1BTCgxMiwyKSwKICBwcm9wZXJ0eV90eXBlIFZBUkNIQVIoNTApLAogIG11bmljaXBhbGl0eSBWQVJDSEFSKDIwMCksCiAgbWluX3Jvb21zIFRJTllJTlQsCiAgbWluX3NpemVfbTIgREVDSU1BTCg4LDIpLAogIHBvcnRhbCBWQVJDSEFSKDEwMCksCiAgZW1haWxfYWxlcnRzIFRJTllJTlQoMSkgREVGQVVMVCAwLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAKKSBFTkdJTkU9SW5ub0RCOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgem9uZXMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMjAwKSBOT1QgTlVMTCwKICBzbHVnIFZBUkNIQVIoMjAwKSBOT1QgTlVMTCBDT01NRU5UICdTbHVnIHBhcmEgVVJMcyBkZSBzY3JhcGVycyAocC5lajogbGxpcmlhKScsCiAgbGF0IERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgbG5nIERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgcmFkaXVzX2ttIERFQ0lNQUwoNSwyKSBERUZBVUxUIDEwLAogIGFjdGl2ZSBUSU5ZSU5UKDEpIERFRkFVTFQgMSwKICBwaXNvc19zbHVnIFZBUkNIQVIoMjAwKSBDT01NRU5UICdTbHVnIGVzcGVjw61maWNvIHBhcmEgcGlzb3MuY29tJywKICB0aGlua3NwYWluX3NsdWcgVkFSQ0hBUigyMDApIE5VTEwgQ09NTUVOVCAnU2x1ZyBlc3BlY8OtZmljbyBwYXJhIFRoaW5rU3BhaW4gKE5VTEwgPSBubyB0aWVuZSBww6FnaW5hKScsCiAgZ2xvYmFsaXphX3NsdWcgVkFSQ0hBUigyMDApIE5VTEwgQ09NTUVOVCAnU2x1ZyBlc3BlY8OtZmljbyBwYXJhIEdsb2JhbGl6YSAoTlVMTCA9IHNpbiBww6FnaW5hIGVuIEdsb2JhbGl6YSknLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgVU5JUVVFIEtFWSB1cV96b25lc19zbHVnIChzbHVnKSwKICBJTkRFWCBpZHhfYWN0aXZlIChhY3RpdmUpCikgRU5HSU5FPUlubm9EQjsKCklOU0VSVCBJR05PUkUgSU5UTyB6b25lcyAobmFtZSwgc2x1ZywgbGF0LCBsbmcsIHJhZGl1c19rbSwgYWN0aXZlLCBwaXNvc19zbHVnLCB0aGlua3NwYWluX3NsdWcsIGdsb2JhbGl6YV9zbHVnKSBWQUxVRVMKICAoJ0xsw61yaWEnLCAgICAgICAgICAgICAgICdsbGlyaWEnLCAgICAgICAgICAgIDM5LjYyOTIsIC0wLjU5NzksIDEyLCAxLCAncGlzb3MtbGxpcmlhJywgICAgICAgICAgICAgICAgICAnbGxpcmlhJywgICAgICAgICAgICAgICdsbGlyaWEnKSwKICAoJ01hcmluZXMnLCAgICAgICAgICAgICAgJ21hcmluZXMnLCAgICAgICAgICAgMzkuNjczNiwgLTAuNTQ2OSwgIDgsIDEsICdwaXNvcy1tYXJpbmVzJywgICAgICAgICAgICAgICAgICdtYXJpbmVzJywgICAgICAgICAgICAgJ21hcmluZXMnKSwKICAoJ09sb2NhdScsICAgICAgICAgICAgICAgJ29sb2NhdScsICAgICAgICAgICAgMzkuNjk0OCwgLTAuNTIyNCwgIDgsIDEsICdwaXNvcy1vbG9jYXUnLCAgICAgICAgICAgICAgICAgICdvbG9jYXUnLCAgICAgICAgICAgICAgJ29sb2NhdScpLAogICgnTsOhcXVlcmEnLCAgICAgICAgICAgICAgJ25hcXVlcmEnLCAgICAgICAgICAgMzkuNjUwOSwgLTAuNDkxNywgIDgsIDEsICdwaXNvcy1uYXF1ZXJhJywgICAgICAgICAgICAgICAgICduYXF1ZXJhJywgICAgICAgICAgICAgJ25hcXVlcmEnKSwKICAoJ0LDqXRlcmEnLCAgICAgICAgICAgICAgICdiZXRlcmEnLCAgICAgICAgICAgIDM5LjU5NDUsIC0wLjQ2ODAsIDEwLCAxLCAncGlzb3MtYmV0ZXJhJywgICAgICAgICAgICAgICAgICAnYmV0ZXJhJywgICAgICAgICAgICAgICdiZXRlcmEnKSwKICAoJ1ZpbGxhbWFyY2hhbnRlJywgICAgICAgJ3ZpbGxhbWFyY2hhbnRlJywgICAgMzkuNTc2MywgLTAuNjI2MiwgIDgsIDEsICdwaXNvcy12aWxsYW1hcmNoYW50ZS12YWxlbmNpYScsICBOVUxMLCAgICAgICAgICAgICAgICAgICd2aWxhbWFyeGFudCcpLAogICgnQmVuYWd1YXNpbCcsICAgICAgICAgICAnYmVuYWd1YXNpbCcsICAgICAgICAzOS42MDMwLCAtMC41NzIwLCAgOCwgMSwgJ3Bpc29zLWJlbmFndWFzaWwnLCAgICAgICAgICAgICAgJ2JlbmFndWFzaWwnLCAgICAgICAgICAnYmVuYWd1YXNpbCcpLAogICgnTGEgUG9ibGEgZGUgVmFsbGJvbmEnLCAncG9ibGEtZGUtdmFsbGJvbmEnLCAzOS42MTI2LCAtMC41Mzk2LCAxMCwgMSwgJ3Bpc29zLXBvYmxhLWRlLXZhbGxib25hJywgICAgICAgJ2xhLXBvYmxhLWRlLXZhbGxib25hJywncG9ibGEtdmFsbGJvbmEnKSwKICAoJ0wnJ0VsaWFuYScsICAgICAgICAgICAgJ2VsaWFuYScsICAgICAgICAgICAgMzkuNTYyOSwgLTAuNDk3NSwgIDgsIDEsICdwaXNvcy1lbGlhbmEnLCAgICAgICAgICAgICAgICAgICdsLWVsaWFuYScsICAgICAgICAgICAgJ2wtZWxpYW5hJyksCiAgKCdSaWJhLXJvamEgZGVsIFTDunJpYScsICAncmliYS1yb2phJywgICAgICAgICAzOS41NDQ4LCAtMC41NTM2LCAxMCwgMSwgJ3Bpc29zLXJpYmEtcm9qYS1kZS10dXJpYScsICAgICAgJ3JpYmEtcm9qYS1kZS10dXJpYScsICAncmliYS1yb2phLXR1cmlhJyksCiAgKCdDaGVsdmEnLCAgICAgICAgICAgICAgICdjaGVsdmEnLCAgICAgICAgICAgIDM5Ljc1NTIsIC0xLjAwNTQsIDEwLCAxLCAncGlzb3MtY2hlbHZhJywgICAgICAgICAgICAgICAgICAnY2hlbHZhJywgICAgICAgICAgICAgICdjaGVsdmEnKSwKICAoJ0Nhc2lub3MnLCAgICAgICAgICAgICAgJ2Nhc2lub3MnLCAgICAgICAgICAgMzkuNzIwNywgLTAuNjc0OCwgIDgsIDEsICdwaXNvcy1jYXNpbm9zJywgICAgICAgICAgICAgICAgICdjYXNpbm9zJywgICAgICAgICAgICAgJ2Nhc2lub3MnKSwKICAoJ01vbmNvZmEnLCAgICAgICAgICAgICAgJ21vbmNvZmEnLCAgICAgICAgICAgMzkuODE4NCwgLTAuMTQ2OCwgIDgsIDEsICdwaXNvcy1tb25jb2ZhJywgICAgICAgICAgICAgICAgICdtb25jb2ZhJywgICAgICAgICAgICAgJ21vbmNvZmEnKSwKICAoJ0xhIFZhbGwgZCcnVWl4w7MnLCAgICAgJ2xhLXZhbGwtZHVpeG8nLCAgICAgMzkuODQ3NywgLTAuMjI1NSwgMTAsIDEsICdwaXNvcy1sYS12YWxsLWR1aXhvJywgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgTlVMTCksCiAgKCdWYWxlbmNpYScsICAgICAgICAgICAgICd2YWxlbmNpYScsICAgICAgICAgIDM5LjQ2OTksIC0wLjM3NjMsIDE1LCAxLCAncGlzb3MtdmFsZW5jaWEnLCAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICd2YWxlbmNpYScpOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcG9ydGFscyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIG5hbWUgVkFSQ0hBUigxMDApIE5PVCBOVUxMLAogIHNsdWcgVkFSQ0hBUigxMDApIE5PVCBOVUxMIFVOSVFVRSwKICBzY3JhcGVyX2NsYXNzIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCBDT01NRU5UICdOb21icmUgZXhhY3RvIGRlIGxhIGNsYXNlIHNjcmFwZXIgZW4gVHlwZVNjcmlwdCcsCiAgYWN0aXZlIFRJTllJTlQoMSkgREVGQVVMVCAxLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgSU5ERVggaWR4X2FjdGl2ZSAoYWN0aXZlKQopIEVOR0lORT1Jbm5vREI7CgpJTlNFUlQgSUdOT1JFIElOVE8gcG9ydGFscyAobmFtZSwgc2x1Zywgc2NyYXBlcl9jbGFzcywgYWN0aXZlKSBWQUxVRVMKICAoJ0ZvdG9jYXNhJywgICAgICAgICdmb3RvY2FzYScsICAgICAgICdGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyJywgIDEpLAogICgnSGFiaXRhY2xpYScsICAgICAgJ2hhYml0YWNsaWEnLCAgICAgJ0hhYml0YWNsaWFTY3JhcGVyJywgICAgICAgICAgMSksCiAgKCdQaXNvcy5jb20nLCAgICAgICAncGlzb3MtY29tJywgICAgICAnUGlzb3NTY3JhcGVyJywgICAgICAgICAgICAgICAxKSwKICAoJ1RoaW5rU3BhaW4nLCAgICAgICd0aGlua3NwYWluJywgICAgICdUaGlua1NwYWluU2NyYXBlcicsICAgICAgICAgIDEpLAogICgnR2xvYmFsaXphJywgICAgICAgJ2dsb2JhbGl6YScsICAgICAgJ0dsb2JhbGl6YVNjcmFwZXInLCAgICAgICAgICAgMSksCiAgKCdJZGVhbGlzdGEnLCAgICAgICAnaWRlYWxpc3RhJywgICAgICAnSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXInLCAxKSwKICAoJ0t5ZXJvJywgICAgICAgICAgICdreWVybycsICAgICAgICAgICdLeWVyb1NjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnTWlsYW51bmNpb3MnLCAgICAgJ21pbGFudW5jaW9zJywgICAgJ01pbGFudW5jaW9zU2NyYXBlcicsICAgICAgICAgIDApLAogICgnWWFlbmNvbnRyZScsICAgICAgJ3lhZW5jb250cmUnLCAgICAgJ1lhZW5jb250cmVTY3JhcGVyJywgICAgICAgICAgMCksCiAgKCdDYXNhc2FwbycsICAgICAgICAnY2FzYXNhcG8nLCAgICAgICAnQ2FzYXNhcG9TY3JhcGVyJywgICAgICAgICAgICAwKSwKICAoJ1ZpYmJvJywgICAgICAgICAgICd2aWJibycsICAgICAgICAgICdWaWJib1NjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnTnVyb2EnLCAgICAgICAgICAgJ251cm9hJywgICAgICAgICAgJ051cm9hU2NyYXBlcicsICAgICAgICAgICAgICAgMCksCiAgKCdFbmdlbCAmIFbDtmxrZXJzJywgJ2VuZ2Vsdm9sa2VycycsICAgJ0VuZ2VsVm9sa2Vyc1NjcmFwZXInLCAgICAgICAgMCksCiAgKCdUZWNub2Nhc2EnLCAgICAgICAndGVjbm9jYXNhJywgICAgICAnVGVjbm9jYXNhU2NyYXBlcicsICAgICAgICAgICAwKSwKICAoJ0VSQSBTcGFpbicsICAgICAgICdlcmEtc3BhaW4nLCAgICAgICdFcmFTcGFpblNjcmFwZXInLCAgICAgICAgICAgIDApLAogICgnUkVNQVggRXNwYcOxYScsICAgICdyZW1heCcsICAgICAgICAgICdSZW1heFNjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnSW5tb2JpbGlhcmlhLmVzJywgJ2lubW9iaWxpYXJpYScsICAgJ0lubW9iaWxpYXJpYVNjcmFwZXInLCAgICAgICAgMCksCiAgKCdTcGFpbkhvdXNlcycsICAgICAnc3BhaW5ob3VzZXMnLCAgICAnU3BhaW5Ib3VzZXNTY3JhcGVyJywgICAgICAgICAwKSwKICAoJ0hvbHByb3AnLCAgICAgICAgICdob2xwcm9wJywgICAgICAgICdIb2xwcm9wU2NyYXBlcicsICAgICAgICAgICAgIDApLAogICgnVHJvdml0JywgICAgICAgICAgJ3Ryb3ZpdCcsICAgICAgICAgJ1Ryb3ZhdFNjcmFwZXInLCAgICAgICAgICAgICAgMCk7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBtdW5pY2lwYWxpdGllc19lcyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIG5hbWUgVkFSQ0hBUigyMDApIE5PVCBOVUxMLAogIGFzY2lpX25hbWUgVkFSQ0hBUigyMDApLAogIHByb3ZpbmNlIFZBUkNIQVIoMjAwKSwKICBhdXRvbm9teSBWQVJDSEFSKDIwMCksCiAgbGF0IERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgbG5nIERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgcG9wdWxhdGlvbiBJTlQgREVGQVVMVCAwLAogIHNvdXJjZSBWQVJDSEFSKDUwKSBERUZBVUxUICdnZW9uYW1lcycsCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICBVTklRVUUgS0VZIHVrX2FzY2lpX2F1dG9ub215IChhc2NpaV9uYW1lKDEwMCksIGF1dG9ub215KDEwMCkpLAogIElOREVYIGlkeF9uYW1lIChuYW1lKSwKICBJTkRFWCBpZHhfYXNjaWlfbmFtZSAoYXNjaWlfbmFtZSkKKSBFTkdJTkU9SW5ub0RCOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgdmFsZW5jaWFfZGlzdHJpY3Rfc2x1Z3MgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMTIwKSBOT1QgTlVMTCBVTklRVUUsCiAgaWRlYWxpc3RhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIGZvdG9jYXNhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIHBpc29zX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIGFjdGl2ZSBUSU5ZSU5UKDEpIERFRkFVTFQgMSwKICBzb3J0X29yZGVyIElOVCBERUZBVUxUIDk5OSwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCikgRU5HSU5FPUlubm9EQjsKCklOU0VSVCBJR05PUkUgSU5UTyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncyAobmFtZSwgaWRlYWxpc3RhX3NsdWcsIGZvdG9jYXNhX3NsdWcsIHBpc29zX3NsdWcsIGFjdGl2ZSwgc29ydF9vcmRlcikgVkFMVUVTCiAgKCdDaXV0YXQgVmVsbGEnLCAnY2l1dGF0LXZlbGxhJywgJ2NpdXRhdC12ZWxsYScsICdjaXV0YXQtdmVsbGEtdmFsZW5jaWEtY2FwaXRhbCcsIDEsIDEwKSwKICAoJ0VpeGFtcGxlJywgJ2wtZWl4YW1wbGUnLCAnZWl4YW1wbGUnLCAnZWl4YW1wbGUtdmFsZW5jaWEtY2FwaXRhbCcsIDEsIDIwKSwKICAoJ0V4dHJhbXVycycsICdleHRyYW11cnMnLCAnZXh0cmFtdXJzJywgJ2V4dHJhbXVycy12YWxlbmNpYS1jYXBpdGFsJywgMSwgMzApLAogICgnQ2FtcGFuYXInLCAnY2FtcGFuYXInLCAnY2FtcGFuYXInLCAnY2FtcGFuYXItdmFsZW5jaWEtY2FwaXRhbCcsIDEsIDQwKSwKICAoJ1BhdHJhaXgnLCAncGF0cmFpeCcsICdwYXRyYWl4JywgJ3BhdHJhaXgtdmFsZW5jaWEtY2FwaXRhbCcsIDEsIDUwKSwKICAoJ1F1YXRyZSBDYXJyZXJlcycsICdxdWF0cmUtY2FycmVyZXMnLCAncXVhdHJlLWNhcnJlcmVzJywgJ3F1YXRyZS1jYXJyZXJlcy12YWxlbmNpYS1jYXBpdGFsJywgMSwgNjApLAogICgnUG9ibGF0cyBNYXJpdGltcycsICdwb2JsYXRzLW1hcml0aW1zJywgJ3BvYmxhdHMtbWFyaXRpbXMnLCAncG9ibGF0cy1tYXJpdGltcy12YWxlbmNpYS1jYXBpdGFsJywgMSwgNzApLAogICgnQ2FtaW5zIGFsIEdyYXUnLCAnY2FtaW5zLWFsLWdyYXUnLCAnY2FtaW5zLWFsLWdyYXUnLCAnY2FtaW5zLWFsLWdyYXUtdmFsZW5jaWEtY2FwaXRhbCcsIDEsIDgwKSwKICAoJ0JlbmljYWxhcCcsICdiZW5pY2FsYXAnLCAnYmVuaWNhbGFwJywgJ2JlbmljYWxhcC12YWxlbmNpYS1jYXBpdGFsJywgMSwgOTApLAogICgnUmFzY2FueWEnLCAncmFzY2FueWEnLCAncmFzY2FueWEnLCAncmFzY2FueWEtdmFsZW5jaWEtY2FwaXRhbCcsIDEsIDEwMCk7CmA7Cgphc3luYyBmdW5jdGlvbiBpbml0RGIoKSB7CiAgY29uc3QgY29ubmVjdGlvbiA9IGF3YWl0IG15c3FsLmNyZWF0ZUNvbm5lY3Rpb24oewogICAgaG9zdDogcHJvY2Vzcy5lbnYuREJfSE9TVCB8fCAibG9jYWxob3N0IiwKICAgIHBvcnQ6IE51bWJlcihwcm9jZXNzLmVudi5EQl9QT1JUKSB8fCAzMzA2LAogICAgdXNlcjogcHJvY2Vzcy5lbnYuREJfVVNFUiB8fCAicm9vdCIsCiAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuREJfUEFTU1dPUkQgfHwgIiIsCiAgICBtdWx0aXBsZVN0YXRlbWVudHM6IHRydWUsCiAgfSk7CgogIHRyeSB7CiAgICBjb25zdCBzdGF0ZW1lbnRzID0gU1FMLnNwbGl0KCI7IikuZmlsdGVyKChzKSA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKTsKICAgIGZvciAoY29uc3QgcyBvZiBzdGF0ZW1lbnRzKSB7CiAgICAgIGF3YWl0IGNvbm5lY3Rpb24ucXVlcnkocyArICI7Iik7CiAgICB9CiAgICBjb25zb2xlLmxvZygiQmFzZSBkZSBkYXRvcyBpbmljaWFsaXphZGEgY29ycmVjdGFtZW50ZS4iKTsKICB9IGZpbmFsbHkgewogICAgYXdhaXQgY29ubmVjdGlvbi5lbmQoKTsKICB9Cn0KCmluaXREYigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpOwo=","afterExisted":true,"afterHash":"dae563fd014d85174c094d5518e486e6510950ca7276d5deaf703f56d09a5c88","afterContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IG15c3FsIGZyb20gIm15c3FsMi9wcm9taXNlIjsKCmNvbnN0IFNRTCA9IGAKQ1JFQVRFIERBVEFCQVNFIElGIE5PVCBFWElTVFMgbGxpcmlhX3Byb3BlcnRpZXMgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF91bmljb2RlX2NpOwpVU0UgbGxpcmlhX3Byb3BlcnRpZXM7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1c2VycyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIHVzZXJuYW1lIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCBVTklRVUUsCiAgcGFzc3dvcmQgVkFSQ0hBUigyNTUpIE5PVCBOVUxMLAogIGVtYWlsIFZBUkNIQVIoMjU1KSBOT1QgTlVMTCwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHByb3BlcnRpZXMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICB0aXRsZSBWQVJDSEFSKDUwMCkgTk9UIE5VTEwsCiAgcHJpY2UgREVDSU1BTCgxMiwyKSBOT1QgTlVMTCBERUZBVUxUIDAsCiAgbG9jYXRpb24gVkFSQ0hBUig1MDApIE5PVCBOVUxMLAogIG11bmljaXBhbGl0eSBWQVJDSEFSKDIwMCksCiAgcHJvcGVydHlfdHlwZSBWQVJDSEFSKDUwKSBERUZBVUxUICdjYXNhJywKICBvcGVyYXRpb25fdHlwZSBFTlVNKCdzYWxlJywncmVudCcpIE5PVCBOVUxMIERFRkFVTFQgJ3NhbGUnLAogIHJvb21zIFRJTllJTlQsCiAgYmF0aHJvb21zIFRJTllJTlQsCiAgc2l6ZV9tMiBERUNJTUFMKDgsMiksCiAgZGVzY3JpcHRpb24gVEVYVCwKICBpbWFnZV91cmwgVkFSQ0hBUigxMDAwKSwKICB1cmwgVkFSQ0hBUigxMDAwKSBOT1QgTlVMTCBVTklRVUUsCiAgc291cmNlIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCwKICBsYXQgREVDSU1BTCgxMCw3KSwKICBsbmcgREVDSU1BTCgxMCw3KSwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogIHVwZGF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QLAogIElOREVYIGlkeF9wcmljZSAocHJpY2UpLAogIElOREVYIGlkeF9tdW5pY2lwYWxpdHkgKG11bmljaXBhbGl0eSksCiAgSU5ERVggaWR4X3Byb3BlcnR5X3R5cGUgKHByb3BlcnR5X3R5cGUpLAogIElOREVYIGlkeF9vcGVyYXRpb25fdHlwZSAob3BlcmF0aW9uX3R5cGUpLAogIElOREVYIGlkeF9zb3VyY2UgKHNvdXJjZSksCiAgSU5ERVggaWR4X3VwZGF0ZWQgKHVwZGF0ZWRfYXQpCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGZpbHRlcnMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMjAwKSwKICBtaW5fcHJpY2UgREVDSU1BTCgxMiwyKSwKICBtYXhfcHJpY2UgREVDSU1BTCgxMiwyKSwKICBwcm9wZXJ0eV90eXBlIFZBUkNIQVIoNTApLAogIG11bmljaXBhbGl0eSBWQVJDSEFSKDIwMCksCiAgbWluX3Jvb21zIFRJTllJTlQsCiAgbWluX3NpemVfbTIgREVDSU1BTCg4LDIpLAogIHBvcnRhbCBWQVJDSEFSKDEwMCksCiAgZW1haWxfYWxlcnRzIFRJTllJTlQoMSkgREVGQVVMVCAwLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAKKSBFTkdJTkU9SW5ub0RCOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgem9uZXMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMjAwKSBOT1QgTlVMTCwKICBzbHVnIFZBUkNIQVIoMjAwKSBOT1QgTlVMTCBDT01NRU5UICdTbHVnIHBhcmEgVVJMcyBkZSBzY3JhcGVycyAocC5lajogbGxpcmlhKScsCiAgbGF0IERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgbG5nIERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgcmFkaXVzX2ttIERFQ0lNQUwoNSwyKSBERUZBVUxUIDEwLAogIGFjdGl2ZSBUSU5ZSU5UKDEpIERFRkFVTFQgMSwKICBwaXNvc19zbHVnIFZBUkNIQVIoMjAwKSBDT01NRU5UICdTbHVnIGVzcGVjw61maWNvIHBhcmEgcGlzb3MuY29tJywKICB0aGlua3NwYWluX3NsdWcgVkFSQ0hBUigyMDApIE5VTEwgQ09NTUVOVCAnU2x1ZyBlc3BlY8OtZmljbyBwYXJhIFRoaW5rU3BhaW4gKE5VTEwgPSBubyB0aWVuZSBww6FnaW5hKScsCiAgZ2xvYmFsaXphX3NsdWcgVkFSQ0hBUigyMDApIE5VTEwgQ09NTUVOVCAnU2x1ZyBlc3BlY8OtZmljbyBwYXJhIEdsb2JhbGl6YSAoTlVMTCA9IHNpbiBww6FnaW5hIGVuIEdsb2JhbGl6YSknLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgVU5JUVVFIEtFWSB1cV96b25lc19zbHVnIChzbHVnKSwKICBJTkRFWCBpZHhfYWN0aXZlIChhY3RpdmUpCikgRU5HSU5FPUlubm9EQjsKCklOU0VSVCBJR05PUkUgSU5UTyB6b25lcyAobmFtZSwgc2x1ZywgbGF0LCBsbmcsIHJhZGl1c19rbSwgYWN0aXZlLCBwaXNvc19zbHVnLCB0aGlua3NwYWluX3NsdWcsIGdsb2JhbGl6YV9zbHVnKSBWQUxVRVMKICAoJ0xsw61yaWEnLCAgICAgICAgICAgICAgICdsbGlyaWEnLCAgICAgICAgICAgIDM5LjYyOTIsIC0wLjU5NzksIDEyLCAxLCAncGlzb3MtbGxpcmlhJywgICAgICAgICAgICAgICAgICAnbGxpcmlhJywgICAgICAgICAgICAgICdsbGlyaWEnKSwKICAoJ01hcmluZXMnLCAgICAgICAgICAgICAgJ21hcmluZXMnLCAgICAgICAgICAgMzkuNjczNiwgLTAuNTQ2OSwgIDgsIDEsICdwaXNvcy1tYXJpbmVzJywgICAgICAgICAgICAgICAgICdtYXJpbmVzJywgICAgICAgICAgICAgJ21hcmluZXMnKSwKICAoJ09sb2NhdScsICAgICAgICAgICAgICAgJ29sb2NhdScsICAgICAgICAgICAgMzkuNjk0OCwgLTAuNTIyNCwgIDgsIDEsICdwaXNvcy1vbG9jYXUnLCAgICAgICAgICAgICAgICAgICdvbG9jYXUnLCAgICAgICAgICAgICAgJ29sb2NhdScpLAogICgnTsOhcXVlcmEnLCAgICAgICAgICAgICAgJ25hcXVlcmEnLCAgICAgICAgICAgMzkuNjUwOSwgLTAuNDkxNywgIDgsIDEsICdwaXNvcy1uYXF1ZXJhJywgICAgICAgICAgICAgICAgICduYXF1ZXJhJywgICAgICAgICAgICAgJ25hcXVlcmEnKSwKICAoJ0LDqXRlcmEnLCAgICAgICAgICAgICAgICdiZXRlcmEnLCAgICAgICAgICAgIDM5LjU5NDUsIC0wLjQ2ODAsIDEwLCAxLCAncGlzb3MtYmV0ZXJhJywgICAgICAgICAgICAgICAgICAnYmV0ZXJhJywgICAgICAgICAgICAgICdiZXRlcmEnKSwKICAoJ1ZpbGxhbWFyY2hhbnRlJywgICAgICAgJ3ZpbGxhbWFyY2hhbnRlJywgICAgMzkuNTc2MywgLTAuNjI2MiwgIDgsIDEsICdwaXNvcy12aWxsYW1hcmNoYW50ZS12YWxlbmNpYScsICBOVUxMLCAgICAgICAgICAgICAgICAgICd2aWxhbWFyeGFudCcpLAogICgnQmVuYWd1YXNpbCcsICAgICAgICAgICAnYmVuYWd1YXNpbCcsICAgICAgICAzOS42MDMwLCAtMC41NzIwLCAgOCwgMSwgJ3Bpc29zLWJlbmFndWFzaWwnLCAgICAgICAgICAgICAgJ2JlbmFndWFzaWwnLCAgICAgICAgICAnYmVuYWd1YXNpbCcpLAogICgnTGEgUG9ibGEgZGUgVmFsbGJvbmEnLCAncG9ibGEtZGUtdmFsbGJvbmEnLCAzOS42MTI2LCAtMC41Mzk2LCAxMCwgMSwgJ3Bpc29zLXBvYmxhLWRlLXZhbGxib25hJywgICAgICAgJ2xhLXBvYmxhLWRlLXZhbGxib25hJywncG9ibGEtdmFsbGJvbmEnKSwKICAoJ0wnJ0VsaWFuYScsICAgICAgICAgICAgJ2VsaWFuYScsICAgICAgICAgICAgMzkuNTYyOSwgLTAuNDk3NSwgIDgsIDEsICdwaXNvcy1lbGlhbmEnLCAgICAgICAgICAgICAgICAgICdsLWVsaWFuYScsICAgICAgICAgICAgJ2wtZWxpYW5hJyksCiAgKCdSaWJhLXJvamEgZGVsIFTDunJpYScsICAncmliYS1yb2phJywgICAgICAgICAzOS41NDQ4LCAtMC41NTM2LCAxMCwgMSwgJ3Bpc29zLXJpYmEtcm9qYS1kZS10dXJpYScsICAgICAgJ3JpYmEtcm9qYS1kZS10dXJpYScsICAncmliYS1yb2phLXR1cmlhJyksCiAgKCdDaGVsdmEnLCAgICAgICAgICAgICAgICdjaGVsdmEnLCAgICAgICAgICAgIDM5Ljc1NTIsIC0xLjAwNTQsIDEwLCAxLCAncGlzb3MtY2hlbHZhJywgICAgICAgICAgICAgICAgICAnY2hlbHZhJywgICAgICAgICAgICAgICdjaGVsdmEnKSwKICAoJ0Nhc2lub3MnLCAgICAgICAgICAgICAgJ2Nhc2lub3MnLCAgICAgICAgICAgMzkuNzIwNywgLTAuNjc0OCwgIDgsIDEsICdwaXNvcy1jYXNpbm9zJywgICAgICAgICAgICAgICAgICdjYXNpbm9zJywgICAgICAgICAgICAgJ2Nhc2lub3MnKSwKICAoJ01vbmNvZmEnLCAgICAgICAgICAgICAgJ21vbmNvZmEnLCAgICAgICAgICAgMzkuODE4NCwgLTAuMTQ2OCwgIDgsIDEsICdwaXNvcy1tb25jb2ZhJywgICAgICAgICAgICAgICAgICdtb25jb2ZhJywgICAgICAgICAgICAgJ21vbmNvZmEnKSwKICAoJ0xhIFZhbGwgZCcnVWl4w7MnLCAgICAgJ2xhLXZhbGwtZHVpeG8nLCAgICAgMzkuODQ3NywgLTAuMjI1NSwgMTAsIDEsICdwaXNvcy1sYS12YWxsLWR1aXhvJywgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgTlVMTCksCiAgKCdWYWxlbmNpYScsICAgICAgICAgICAgICd2YWxlbmNpYScsICAgICAgICAgIDM5LjQ2OTksIC0wLjM3NjMsIDE1LCAxLCAncGlzb3MtdmFsZW5jaWEnLCAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICd2YWxlbmNpYScpOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcG9ydGFscyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIG5hbWUgVkFSQ0hBUigxMDApIE5PVCBOVUxMLAogIHNsdWcgVkFSQ0hBUigxMDApIE5PVCBOVUxMIFVOSVFVRSwKICBzY3JhcGVyX2NsYXNzIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCBDT01NRU5UICdOb21icmUgZXhhY3RvIGRlIGxhIGNsYXNlIHNjcmFwZXIgZW4gVHlwZVNjcmlwdCcsCiAgYWN0aXZlIFRJTllJTlQoMSkgREVGQVVMVCAxLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgSU5ERVggaWR4X2FjdGl2ZSAoYWN0aXZlKQopIEVOR0lORT1Jbm5vREI7CgpJTlNFUlQgSUdOT1JFIElOVE8gcG9ydGFscyAobmFtZSwgc2x1Zywgc2NyYXBlcl9jbGFzcywgYWN0aXZlKSBWQUxVRVMKICAoJ0ZvdG9jYXNhJywgICAgICAgICdmb3RvY2FzYScsICAgICAgICdGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyJywgIDEpLAogICgnSGFiaXRhY2xpYScsICAgICAgJ2hhYml0YWNsaWEnLCAgICAgJ0hhYml0YWNsaWFTY3JhcGVyJywgICAgICAgICAgMSksCiAgKCdQaXNvcy5jb20nLCAgICAgICAncGlzb3MtY29tJywgICAgICAnUGlzb3NTY3JhcGVyJywgICAgICAgICAgICAgICAxKSwKICAoJ1RoaW5rU3BhaW4nLCAgICAgICd0aGlua3NwYWluJywgICAgICdUaGlua1NwYWluU2NyYXBlcicsICAgICAgICAgIDEpLAogICgnR2xvYmFsaXphJywgICAgICAgJ2dsb2JhbGl6YScsICAgICAgJ0dsb2JhbGl6YVNjcmFwZXInLCAgICAgICAgICAgMSksCiAgKCdJZGVhbGlzdGEnLCAgICAgICAnaWRlYWxpc3RhJywgICAgICAnSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXInLCAxKSwKICAoJ0t5ZXJvJywgICAgICAgICAgICdreWVybycsICAgICAgICAgICdLeWVyb1NjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnTWlsYW51bmNpb3MnLCAgICAgJ21pbGFudW5jaW9zJywgICAgJ01pbGFudW5jaW9zU2NyYXBlcicsICAgICAgICAgIDApLAogICgnWWFlbmNvbnRyZScsICAgICAgJ3lhZW5jb250cmUnLCAgICAgJ1lhZW5jb250cmVTY3JhcGVyJywgICAgICAgICAgMCksCiAgKCdDYXNhc2FwbycsICAgICAgICAnY2FzYXNhcG8nLCAgICAgICAnQ2FzYXNhcG9TY3JhcGVyJywgICAgICAgICAgICAwKSwKICAoJ1ZpYmJvJywgICAgICAgICAgICd2aWJibycsICAgICAgICAgICdWaWJib1NjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnTnVyb2EnLCAgICAgICAgICAgJ251cm9hJywgICAgICAgICAgJ051cm9hU2NyYXBlcicsICAgICAgICAgICAgICAgMCksCiAgKCdFbmdlbCAmIFbDtmxrZXJzJywgJ2VuZ2Vsdm9sa2VycycsICAgJ0VuZ2VsVm9sa2Vyc1NjcmFwZXInLCAgICAgICAgMCksCiAgKCdUZWNub2Nhc2EnLCAgICAgICAndGVjbm9jYXNhJywgICAgICAnVGVjbm9jYXNhU2NyYXBlcicsICAgICAgICAgICAwKSwKICAoJ0VSQSBTcGFpbicsICAgICAgICdlcmEtc3BhaW4nLCAgICAgICdFcmFTcGFpblNjcmFwZXInLCAgICAgICAgICAgIDApLAogICgnUkVNQVggRXNwYcOxYScsICAgICdyZW1heCcsICAgICAgICAgICdSZW1heFNjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnSW5tb2JpbGlhcmlhLmVzJywgJ2lubW9iaWxpYXJpYScsICAgJ0lubW9iaWxpYXJpYVNjcmFwZXInLCAgICAgICAgMCksCiAgKCdTcGFpbkhvdXNlcycsICAgICAnc3BhaW5ob3VzZXMnLCAgICAnU3BhaW5Ib3VzZXNTY3JhcGVyJywgICAgICAgICAwKSwKICAoJ0hvbHByb3AnLCAgICAgICAgICdob2xwcm9wJywgICAgICAgICdIb2xwcm9wU2NyYXBlcicsICAgICAgICAgICAgIDApLAogICgnVHJvdml0JywgICAgICAgICAgJ3Ryb3ZpdCcsICAgICAgICAgJ1Ryb3ZhdFNjcmFwZXInLCAgICAgICAgICAgICAgMCk7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBtdW5pY2lwYWxpdGllc19lcyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIG5hbWUgVkFSQ0hBUigyMDApIE5PVCBOVUxMLAogIGFzY2lpX25hbWUgVkFSQ0hBUigyMDApLAogIHByb3ZpbmNlIFZBUkNIQVIoMjAwKSwKICBhdXRvbm9teSBWQVJDSEFSKDIwMCksCiAgbGF0IERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgbG5nIERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgcG9wdWxhdGlvbiBJTlQgREVGQVVMVCAwLAogIHNvdXJjZSBWQVJDSEFSKDUwKSBERUZBVUxUICdnZW9uYW1lcycsCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICBVTklRVUUgS0VZIHVrX2FzY2lpX2F1dG9ub215IChhc2NpaV9uYW1lKDEwMCksIGF1dG9ub215KDEwMCkpLAogIElOREVYIGlkeF9uYW1lIChuYW1lKSwKICBJTkRFWCBpZHhfYXNjaWlfbmFtZSAoYXNjaWlfbmFtZSkKKSBFTkdJTkU9SW5ub0RCOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgdmFsZW5jaWFfZGlzdHJpY3Rfc2x1Z3MgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMTIwKSBOT1QgTlVMTCBVTklRVUUsCiAgaWRlYWxpc3RhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIGZvdG9jYXNhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIHBpc29zX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIGFjdGl2ZSBUSU5ZSU5UKDEpIERFRkFVTFQgMSwKICBzb3J0X29yZGVyIElOVCBERUZBVUxUIDk5OSwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCikgRU5HSU5FPUlubm9EQjsKCklOU0VSVCBJR05PUkUgSU5UTyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncyAobmFtZSwgaWRlYWxpc3RhX3NsdWcsIGZvdG9jYXNhX3NsdWcsIHBpc29zX3NsdWcsIGFjdGl2ZSwgc29ydF9vcmRlcikgVkFMVUVTCiAgKCdDaXV0YXQgVmVsbGEnLCAnY2l1dGF0LXZlbGxhJywgJ2NpdXRhdC12ZWxsYScsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2NpdXRhdF92ZWxsYScsIDEsIDEwKSwKICAoJ0VpeGFtcGxlJywgJ2wtZWl4YW1wbGUnLCAnZWl4YW1wbGUnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9laXhhbXBsZScsIDEsIDIwKSwKICAoJ0V4dHJhbXVycycsICdleHRyYW11cnMnLCAnZXh0cmFtdXJzJywgJ3Bpc29zLWV4dHJhbXVycycsIDEsIDMwKSwKICAoJ0NhbXBhbmFyJywgJ2NhbXBhbmFyJywgJ2NhbXBhbmFyJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfY2FtcGFuYXInLCAxLCA0MCksCiAgKCdQYXRyYWl4JywgJ3BhdHJhaXgnLCAncGF0cmFpeCcsICdwaXNvcy1wYXRyYWl4JywgMSwgNTApLAogICgnUXVhdHJlIENhcnJlcmVzJywgJ3F1YXRyZS1jYXJyZXJlcycsICdxdWF0cmUtY2FycmVyZXMnLCAncGlzb3MtcXVhdHJlX2NhcnJlcmVzJywgMSwgNjApLAogICgnUG9ibGF0cyBNYXJpdGltcycsICdwb2JsYXRzLW1hcml0aW1zJywgJ3BvYmxhdHMtbWFyaXRpbXMnLCAncGlzb3MtcG9ibGF0c19tYXJpdGltcycsIDEsIDcwKSwKICAoJ0NhbWlucyBhbCBHcmF1JywgJ2NhbWlucy1hbC1ncmF1JywgJ2NhbWlucy1hbC1ncmF1JywgJ3Bpc29zLWNhbWluc19hbF9ncmF1JywgMSwgODApLAogICgnQmVuaWNhbGFwJywgJ2JlbmljYWxhcCcsICdiZW5pY2FsYXAnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9iZW5pY2FsYXAnLCAxLCA5MCksCiAgKCdSYXNjYW55YScsICdyYXNjYW55YScsICdyYXNjYW55YScsICdwaXNvcy1yYXNjYW55YScsIDEsIDEwMCk7CmA7Cgphc3luYyBmdW5jdGlvbiBpbml0RGIoKSB7CiAgY29uc3QgY29ubmVjdGlvbiA9IGF3YWl0IG15c3FsLmNyZWF0ZUNvbm5lY3Rpb24oewogICAgaG9zdDogcHJvY2Vzcy5lbnYuREJfSE9TVCB8fCAibG9jYWxob3N0IiwKICAgIHBvcnQ6IE51bWJlcihwcm9jZXNzLmVudi5EQl9QT1JUKSB8fCAzMzA2LAogICAgdXNlcjogcHJvY2Vzcy5lbnYuREJfVVNFUiB8fCAicm9vdCIsCiAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuREJfUEFTU1dPUkQgfHwgIiIsCiAgICBtdWx0aXBsZVN0YXRlbWVudHM6IHRydWUsCiAgfSk7CgogIHRyeSB7CiAgICBjb25zdCBzdGF0ZW1lbnRzID0gU1FMLnNwbGl0KCI7IikuZmlsdGVyKChzKSA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKTsKICAgIGZvciAoY29uc3QgcyBvZiBzdGF0ZW1lbnRzKSB7CiAgICAgIGF3YWl0IGNvbm5lY3Rpb24ucXVlcnkocyArICI7Iik7CiAgICB9CiAgICBjb25zb2xlLmxvZygiQmFzZSBkZSBkYXRvcyBpbmljaWFsaXphZGEgY29ycmVjdGFtZW50ZS4iKTsKICB9IGZpbmFsbHkgewogICAgYXdhaXQgY29ubmVjdGlvbi5lbmQoKTsKICB9Cn0KCmluaXREYigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpOwo=","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\config\\valenciaDistricts.ts","beforeExisted":true,"beforeHash":"247d7af7f5b1d6cbd49e8e722f1678c570b0db59f3d537d71e4b4bc5e005d589","beforeContent":"ZXhwb3J0IGludGVyZmFjZSBWYWxlbmNpYURpc3RyaWN0U2x1ZyB7DQogIG5hbWU6IHN0cmluZzsNCiAgaWRlYWxpc3RhOiBzdHJpbmc7DQogIGZvdG9jYXNhOiBzdHJpbmc7DQogIHBpc29zOiBzdHJpbmc7DQp9DQoNCmV4cG9ydCBjb25zdCBWQUxFTkNJQV9ESVNUUklDVFM6IFZhbGVuY2lhRGlzdHJpY3RTbHVnW10gPSBbDQogIHsgbmFtZTogIkNpdXRhdCBWZWxsYSIsIGlkZWFsaXN0YTogImNpdXRhdC12ZWxsYSIsIGZvdG9jYXNhOiAiY2l1dGF0LXZlbGxhIiwgcGlzb3M6ICJjaXV0YXQtdmVsbGEtdmFsZW5jaWEtY2FwaXRhbCIgfSwNCiAgeyBuYW1lOiAiRWl4YW1wbGUiLCBpZGVhbGlzdGE6ICJsLWVpeGFtcGxlIiwgZm90b2Nhc2E6ICJlaXhhbXBsZSIsIHBpc29zOiAiZWl4YW1wbGUtdmFsZW5jaWEtY2FwaXRhbCIgfSwNCiAgeyBuYW1lOiAiRXh0cmFtdXJzIiwgaWRlYWxpc3RhOiAiZXh0cmFtdXJzIiwgZm90b2Nhc2E6ICJleHRyYW11cnMiLCBwaXNvczogImV4dHJhbXVycy12YWxlbmNpYS1jYXBpdGFsIiB9LA0KICB7IG5hbWU6ICJDYW1wYW5hciIsIGlkZWFsaXN0YTogImNhbXBhbmFyIiwgZm90b2Nhc2E6ICJjYW1wYW5hciIsIHBpc29zOiAiY2FtcGFuYXItdmFsZW5jaWEtY2FwaXRhbCIgfSwNCiAgeyBuYW1lOiAiUGF0cmFpeCIsIGlkZWFsaXN0YTogInBhdHJhaXgiLCBmb3RvY2FzYTogInBhdHJhaXgiLCBwaXNvczogInBhdHJhaXgtdmFsZW5jaWEtY2FwaXRhbCIgfSwNCiAgeyBuYW1lOiAiUXVhdHJlIENhcnJlcmVzIiwgaWRlYWxpc3RhOiAicXVhdHJlLWNhcnJlcmVzIiwgZm90b2Nhc2E6ICJxdWF0cmUtY2FycmVyZXMiLCBwaXNvczogInF1YXRyZS1jYXJyZXJlcy12YWxlbmNpYS1jYXBpdGFsIiB9LA0KICB7IG5hbWU6ICJQb2JsYXRzIE1hcml0aW1zIiwgaWRlYWxpc3RhOiAicG9ibGF0cy1tYXJpdGltcyIsIGZvdG9jYXNhOiAicG9ibGF0cy1tYXJpdGltcyIsIHBpc29zOiAicG9ibGF0cy1tYXJpdGltcy12YWxlbmNpYS1jYXBpdGFsIiB9LA0KICB7IG5hbWU6ICJDYW1pbnMgYWwgR3JhdSIsIGlkZWFsaXN0YTogImNhbWlucy1hbC1ncmF1IiwgZm90b2Nhc2E6ICJjYW1pbnMtYWwtZ3JhdSIsIHBpc29zOiAiY2FtaW5zLWFsLWdyYXUtdmFsZW5jaWEtY2FwaXRhbCIgfSwNCiAgeyBuYW1lOiAiQmVuaWNhbGFwIiwgaWRlYWxpc3RhOiAiYmVuaWNhbGFwIiwgZm90b2Nhc2E6ICJiZW5pY2FsYXAiLCBwaXNvczogImJlbmljYWxhcC12YWxlbmNpYS1jYXBpdGFsIiB9LA0KICB7IG5hbWU6ICJSYXNjYW55YSIsIGlkZWFsaXN0YTogInJhc2NhbnlhIiwgZm90b2Nhc2E6ICJyYXNjYW55YSIsIHBpc29zOiAicmFzY2FueWEtdmFsZW5jaWEtY2FwaXRhbCIgfSwNCl07DQoNCg==","afterExisted":true,"afterHash":"8d1c2e5a20cf8b6a727e626c153c9cbd65a82d6b7b98b3e2da7e203b79362381","afterContent":"ZXhwb3J0IGludGVyZmFjZSBWYWxlbmNpYURpc3RyaWN0U2x1ZyB7DQogIG5hbWU6IHN0cmluZzsNCiAgaWRlYWxpc3RhOiBzdHJpbmc7DQogIGZvdG9jYXNhOiBzdHJpbmc7DQogIHBpc29zOiBzdHJpbmc7DQp9DQoNCmV4cG9ydCBjb25zdCBWQUxFTkNJQV9ESVNUUklDVFM6IFZhbGVuY2lhRGlzdHJpY3RTbHVnW10gPSBbCiAgeyBuYW1lOiAiQ2l1dGF0IFZlbGxhIiwgaWRlYWxpc3RhOiAiY2l1dGF0LXZlbGxhIiwgZm90b2Nhc2E6ICJjaXV0YXQtdmVsbGEiLCBwaXNvczogInBpc29zLXZhbGVuY2lhX2NhcGl0YWxfY2l1dGF0X3ZlbGxhIiB9LAogIHsgbmFtZTogIkVpeGFtcGxlIiwgaWRlYWxpc3RhOiAibC1laXhhbXBsZSIsIGZvdG9jYXNhOiAiZWl4YW1wbGUiLCBwaXNvczogInBpc29zLXZhbGVuY2lhX2NhcGl0YWxfZWl4YW1wbGUiIH0sCiAgeyBuYW1lOiAiRXh0cmFtdXJzIiwgaWRlYWxpc3RhOiAiZXh0cmFtdXJzIiwgZm90b2Nhc2E6ICJleHRyYW11cnMiLCBwaXNvczogInBpc29zLWV4dHJhbXVycyIgfSwKICB7IG5hbWU6ICJDYW1wYW5hciIsIGlkZWFsaXN0YTogImNhbXBhbmFyIiwgZm90b2Nhc2E6ICJjYW1wYW5hciIsIHBpc29zOiAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9jYW1wYW5hciIgfSwKICB7IG5hbWU6ICJQYXRyYWl4IiwgaWRlYWxpc3RhOiAicGF0cmFpeCIsIGZvdG9jYXNhOiAicGF0cmFpeCIsIHBpc29zOiAicGlzb3MtcGF0cmFpeCIgfSwKICB7IG5hbWU6ICJRdWF0cmUgQ2FycmVyZXMiLCBpZGVhbGlzdGE6ICJxdWF0cmUtY2FycmVyZXMiLCBmb3RvY2FzYTogInF1YXRyZS1jYXJyZXJlcyIsIHBpc29zOiAicGlzb3MtcXVhdHJlX2NhcnJlcmVzIiB9LAogIHsgbmFtZTogIlBvYmxhdHMgTWFyaXRpbXMiLCBpZGVhbGlzdGE6ICJwb2JsYXRzLW1hcml0aW1zIiwgZm90b2Nhc2E6ICJwb2JsYXRzLW1hcml0aW1zIiwgcGlzb3M6ICJwaXNvcy1wb2JsYXRzX21hcml0aW1zIiB9LAogIHsgbmFtZTogIkNhbWlucyBhbCBHcmF1IiwgaWRlYWxpc3RhOiAiY2FtaW5zLWFsLWdyYXUiLCBmb3RvY2FzYTogImNhbWlucy1hbC1ncmF1IiwgcGlzb3M6ICJwaXNvcy1jYW1pbnNfYWxfZ3JhdSIgfSwKICB7IG5hbWU6ICJCZW5pY2FsYXAiLCBpZGVhbGlzdGE6ICJiZW5pY2FsYXAiLCBmb3RvY2FzYTogImJlbmljYWxhcCIsIHBpc29zOiAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9iZW5pY2FsYXAiIH0sCiAgeyBuYW1lOiAiUmFzY2FueWEiLCBpZGVhbGlzdGE6ICJyYXNjYW55YSIsIGZvdG9jYXNhOiAicmFzY2FueWEiLCBwaXNvczogInBpc29zLXJhc2NhbnlhIiB9LApdOwoNCg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\controllers\\portalController.ts","beforeExisted":true,"beforeHash":"2d264e4fb72d2ee57ac645550ef9e746f3536e580298952edf45e0f0ecf24344","beforeContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsNCmltcG9ydCB7IFBvcnRhbE1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3BvcnRhbE1vZGVsIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7DQppbXBvcnQgeyBSb3dEYXRhUGFja2V0IH0gZnJvbSAibXlzcWwyIjsNCg0KZXhwb3J0IGNvbnN0IHBvcnRhbENvbnRyb2xsZXIgPSB7DQogICAgYXN5bmMgZ2V0QWxsKF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHBvcnRhbHMgPSBhd2FpdCBQb3J0YWxNb2RlbC5maW5kQWxsKCk7DQogICAgICAgICAgICByZXMuanNvbihwb3J0YWxzKTsNCiAgICAgICAgfSBjYXRjaCAoZXJyKSB7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAiRXJyb3IgYWwgb2J0ZW5lciBwb3J0YWxlcyIgfSk7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgYXN5bmMgY3JlYXRlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgeyBuYW1lLCBzbHVnLCBzY3JhcGVyX2NsYXNzLCBhY3RpdmUgfSA9IHJlcS5ib2R5Ow0KICAgICAgICAgICAgaWYgKCFuYW1lIHx8ICFzY3JhcGVyX2NsYXNzKSB7DQogICAgICAgICAgICAgICAgcmVzLnN0YXR1cyg0MDApLmpzb24oeyBlcnJvcjogIm5hbWUgeSBzY3JhcGVyX2NsYXNzIHNvbiBvYmxpZ2F0b3Jpb3MiIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnN0IGlkID0gYXdhaXQgUG9ydGFsTW9kZWwuY3JlYXRlKHsgbmFtZSwgc2x1Zzogc2x1ZyB8fCAiIiwgc2NyYXBlcl9jbGFzcywgYWN0aXZlOiBhY3RpdmUgPz8gMSB9KTsNCiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgaWQgfSk7DQogICAgICAgIH0gY2F0Y2ggKGVycikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBlcnJvcjogIkVycm9yIGFsIGNyZWFyIHBvcnRhbCIgfSk7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgYXN5bmMgdG9nZ2xlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTsNCiAgICAgICAgICAgIGF3YWl0IFBvcnRhbE1vZGVsLnRvZ2dsZUFjdGl2ZShpZCk7DQogICAgICAgICAgICBjb25zdCBwb3J0YWwgPSBhd2FpdCBQb3J0YWxNb2RlbC5maW5kQnlJZChpZCk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGFjdGl2ZTogcG9ydGFsPy5hY3RpdmUgfSk7DQogICAgICAgIH0gY2F0Y2ggKGVycikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBlcnJvcjogIkVycm9yIGFsIGNhbWJpYXIgZXN0YWRvIGRlbCBwb3J0YWwiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIHJlbW92ZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7DQogICAgICAgICAgICBjb25zdCBwb3J0YWwgPSBhd2FpdCBQb3J0YWxNb2RlbC5maW5kQnlJZChpZCk7DQogICAgICAgICAgICBpZiAoIXBvcnRhbCkgeyByZXMuc3RhdHVzKDQwNCkuanNvbih7IGVycm9yOiAiUG9ydGFsIG5vIGVuY29udHJhZG8iIH0pOyByZXR1cm47IH0NCiAgICAgICAgICAgIGF3YWl0IFBvcnRhbE1vZGVsLmRlbGV0ZUJ5SWQoaWQpOw0KICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6ICJFcnJvciBhbCBlbGltaW5hciBwb3J0YWwiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIGhlYWx0aChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFsbCgpOw0KICAgICAgICAgICAgY29uc3QgZGF0YTogYW55W10gPSBbXTsNCiAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwb3J0YWxzKSB7DQogICAgICAgICAgICAgICAgY29uc3QgW3NhbGVSb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigNCiAgICAgICAgICAgICAgICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVU0oQ0FTRSBXSEVOIHVwZGF0ZWRfYXQgPj0gREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDI0IEhPVVIpIFRIRU4gMSBFTFNFIDAgRU5EKSBBUyBsYXN0MjRoLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWCh1cGRhdGVkX2F0KSBBUyBsYXN0X3NlZW4NCiAgICAgICAgICAgICAgICAgICAgIEZST00gcHJvcGVydGllcw0KICAgICAgICAgICAgICAgICAgICAgV0hFUkUgZGVsZXRlZF9hdCBJUyBOVUxMIEFORCBzb3VyY2UgPSA/IEFORCBvcGVyYXRpb25fdHlwZSA9ICdzYWxlJ2AsDQogICAgICAgICAgICAgICAgICAgIFtwLm5hbWVdDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICBjb25zdCBbcmVudFJvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KA0KICAgICAgICAgICAgICAgICAgICBgU0VMRUNUIENPVU5UKCopIEFTIHRvdGFsLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVTShDQVNFIFdIRU4gdXBkYXRlZF9hdCA+PSBEQVRFX1NVQihOT1coKSwgSU5URVJWQUwgMjQgSE9VUikgVEhFTiAxIEVMU0UgMCBFTkQpIEFTIGxhc3QyNGgsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYKHVwZGF0ZWRfYXQpIEFTIGxhc3Rfc2Vlbg0KICAgICAgICAgICAgICAgICAgICAgRlJPTSBwcm9wZXJ0aWVzDQogICAgICAgICAgICAgICAgICAgICBXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwgQU5EIHNvdXJjZSA9ID8gQU5EIG9wZXJhdGlvbl90eXBlID0gJ3JlbnQnYCwNCiAgICAgICAgICAgICAgICAgICAgW3AubmFtZV0NCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgIGNvbnN0IHNhbGUgPSBzYWxlUm93c1swXSB8fCB7IHRvdGFsOiAwLCBsYXN0MjRoOiAwLCBsYXN0X3NlZW46IG51bGwgfTsNCiAgICAgICAgICAgICAgICBjb25zdCByZW50ID0gcmVudFJvd3NbMF0gfHwgeyB0b3RhbDogMCwgbGFzdDI0aDogMCwgbGFzdF9zZWVuOiBudWxsIH07DQoNCiAgICAgICAgICAgICAgICBjb25zdCBkaWFnbm9zZSA9IChvcDogInNhbGUiIHwgInJlbnQiLCBzdGF0czogYW55KTogc3RyaW5nID0+IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmFjdGl2ZSkgcmV0dXJuICJQb3J0YWwgaW5hY3Rpdm8iOw0KICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKHN0YXRzLnRvdGFsKSA9PT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09PSAicmVudCIgJiYgTnVtYmVyKHNhbGUudG90YWwpID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2luIGFscXVpbGVyZXM6IHJldmlzYXIgVVJML3NsdWdzIGRlIGFscXVpbGVyIG8gYmxvcXVlbyBhbnRpLWJvdCI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNpbiBkYXRvcyBoaXN0w7NyaWNvcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihzdGF0cy5sYXN0MjRoKSA9PT0gMCkgcmV0dXJuICJTaW4gYWN0dWFsaXphY2lvbmVzIMO6bHRpbWFzIDI0aCAocmV2aXNhciBzY3JhcGVyL2Jsb3F1ZW8pIjsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTYWx1ZCBPSyI7DQogICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGRhdGEucHVzaCh7DQogICAgICAgICAgICAgICAgICAgIHBvcnRhbF9pZDogcC5pZCwNCiAgICAgICAgICAgICAgICAgICAgcG9ydGFsOiBwLm5hbWUsDQogICAgICAgICAgICAgICAgICAgIHNsdWc6IHAuc2x1ZywNCiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBwLmFjdGl2ZSwNCiAgICAgICAgICAgICAgICAgICAgc2FsZTogew0KICAgICAgICAgICAgICAgICAgICAgICAgdG90YWw6IE51bWJlcihzYWxlLnRvdGFsIHx8IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdDI0aDogTnVtYmVyKHNhbGUubGFzdDI0aCB8fCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Rfc2Vlbjogc2FsZS5sYXN0X3NlZW4gfHwgbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgIGRpYWdub3NpczogZGlhZ25vc2UoInNhbGUiLCBzYWxlKSwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgcmVudDogew0KICAgICAgICAgICAgICAgICAgICAgICAgdG90YWw6IE51bWJlcihyZW50LnRvdGFsIHx8IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdDI0aDogTnVtYmVyKHJlbnQubGFzdDI0aCB8fCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Rfc2VlbjogcmVudC5sYXN0X3NlZW4gfHwgbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgIGRpYWdub3NpczogZGlhZ25vc2UoInJlbnQiLCByZW50KSwNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YSB9KTsNCiAgICAgICAgfSBjYXRjaCAoZXJyKSB7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIGNhbGN1bGFyIHNhbHVkIGRlIHNjcmFwZXJzIiB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQp9Ow0K","afterExisted":true,"afterHash":"06d2ca36e0539539bac35a597076ff1f26543e807f4377b825d422957217a79a","afterContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsNCmltcG9ydCB7IFBvcnRhbE1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3BvcnRhbE1vZGVsIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7CmltcG9ydCB7IFJvd0RhdGFQYWNrZXQgfSBmcm9tICJteXNxbDIiOwppbXBvcnQgeyBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24gfSBmcm9tICIuLi9zY3JhcGVycy9jYXBhYmlsaXRpZXMiOwoNCmV4cG9ydCBjb25zdCBwb3J0YWxDb250cm9sbGVyID0gew0KICAgIGFzeW5jIGdldEFsbChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFsbCgpOw0KICAgICAgICAgICAgcmVzLmpzb24ocG9ydGFscyk7DQogICAgICAgIH0gY2F0Y2ggKGVycikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBlcnJvcjogIkVycm9yIGFsIG9idGVuZXIgcG9ydGFsZXMiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIGNyZWF0ZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgc2x1Zywgc2NyYXBlcl9jbGFzcywgYWN0aXZlIH0gPSByZXEuYm9keTsNCiAgICAgICAgICAgIGlmICghbmFtZSB8fCAhc2NyYXBlcl9jbGFzcykgew0KICAgICAgICAgICAgICAgIHJlcy5zdGF0dXMoNDAwKS5qc29uKHsgZXJyb3I6ICJuYW1lIHkgc2NyYXBlcl9jbGFzcyBzb24gb2JsaWdhdG9yaW9zIiB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb25zdCBpZCA9IGF3YWl0IFBvcnRhbE1vZGVsLmNyZWF0ZSh7IG5hbWUsIHNsdWc6IHNsdWcgfHwgIiIsIHNjcmFwZXJfY2xhc3MsIGFjdGl2ZTogYWN0aXZlID8/IDEgfSk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGlkIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6ICJFcnJvciBhbCBjcmVhciBwb3J0YWwiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIHRvZ2dsZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7DQogICAgICAgICAgICBhd2FpdCBQb3J0YWxNb2RlbC50b2dnbGVBY3RpdmUoaWQpOw0KICAgICAgICAgICAgY29uc3QgcG9ydGFsID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEJ5SWQoaWQpOw0KICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBhY3RpdmU6IHBvcnRhbD8uYWN0aXZlIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6ICJFcnJvciBhbCBjYW1iaWFyIGVzdGFkbyBkZWwgcG9ydGFsIiB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBhc3luYyByZW1vdmUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpOw0KICAgICAgICAgICAgY29uc3QgcG9ydGFsID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEJ5SWQoaWQpOw0KICAgICAgICAgICAgaWYgKCFwb3J0YWwpIHsgcmVzLnN0YXR1cyg0MDQpLmpzb24oeyBlcnJvcjogIlBvcnRhbCBubyBlbmNvbnRyYWRvIiB9KTsgcmV0dXJuOyB9DQogICAgICAgICAgICBhd2FpdCBQb3J0YWxNb2RlbC5kZWxldGVCeUlkKGlkKTsNCiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSB9KTsNCiAgICAgICAgfSBjYXRjaCAoZXJyKSB7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAiRXJyb3IgYWwgZWxpbWluYXIgcG9ydGFsIiB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBhc3luYyBoZWFsdGgoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBbGwoKTsNCiAgICAgICAgICAgIGNvbnN0IGRhdGE6IGFueVtdID0gW107DQogICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcG9ydGFscykgew0KICAgICAgICAgICAgICAgIGNvbnN0IFtzYWxlUm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oDQogICAgICAgICAgICAgICAgICAgIGBTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1VNKENBU0UgV0hFTiB1cGRhdGVkX2F0ID49IERBVEVfU1VCKE5PVygpLCBJTlRFUlZBTCAyNCBIT1VSKSBUSEVOIDEgRUxTRSAwIEVORCkgQVMgbGFzdDI0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVgodXBkYXRlZF9hdCkgQVMgbGFzdF9zZWVuDQogICAgICAgICAgICAgICAgICAgICBGUk9NIHByb3BlcnRpZXMNCiAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBBTkQgc291cmNlID0gPyBBTkQgb3BlcmF0aW9uX3R5cGUgPSAnc2FsZSdgLA0KICAgICAgICAgICAgICAgICAgICBbcC5uYW1lXQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgY29uc3QgW3JlbnRSb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigNCiAgICAgICAgICAgICAgICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVU0oQ0FTRSBXSEVOIHVwZGF0ZWRfYXQgPj0gREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDI0IEhPVVIpIFRIRU4gMSBFTFNFIDAgRU5EKSBBUyBsYXN0MjRoLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWCh1cGRhdGVkX2F0KSBBUyBsYXN0X3NlZW4NCiAgICAgICAgICAgICAgICAgICAgIEZST00gcHJvcGVydGllcw0KICAgICAgICAgICAgICAgICAgICAgV0hFUkUgZGVsZXRlZF9hdCBJUyBOVUxMIEFORCBzb3VyY2UgPSA/IEFORCBvcGVyYXRpb25fdHlwZSA9ICdyZW50J2AsDQogICAgICAgICAgICAgICAgICAgIFtwLm5hbWVdDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICBjb25zdCBzYWxlID0gc2FsZVJvd3NbMF0gfHwgeyB0b3RhbDogMCwgbGFzdDI0aDogMCwgbGFzdF9zZWVuOiBudWxsIH07DQogICAgICAgICAgICAgICAgY29uc3QgcmVudCA9IHJlbnRSb3dzWzBdIHx8IHsgdG90YWw6IDAsIGxhc3QyNGg6IDAsIGxhc3Rfc2VlbjogbnVsbCB9Ow0KDQogICAgICAgICAgICAgICAgY29uc3QgZGlhZ25vc2UgPSAob3A6ICJzYWxlIiB8ICJyZW50Iiwgc3RhdHM6IGFueSk6IHN0cmluZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmFjdGl2ZSkgcmV0dXJuICJQb3J0YWwgaW5hY3Rpdm8iOwogICAgICAgICAgICAgICAgICAgIGlmICghc3VwcG9ydHNTY3JhcGVyT3BlcmF0aW9uKHAuc2NyYXBlcl9jbGFzcywgb3ApKSByZXR1cm4gIk9wZXJhY2nDs24gbm8gc29wb3J0YWRhIjsKICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKHN0YXRzLnRvdGFsKSA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AgPT09ICJyZW50IiAmJiBOdW1iZXIoc2FsZS50b3RhbCkgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaW4gYWxxdWlsZXJlczogcmV2aXNhciBVUkwvc2x1Z3MgZGUgYWxxdWlsZXIgbyBibG9xdWVvIGFudGktYm90IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2luIGRhdG9zIGhpc3TDs3JpY29zIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKHN0YXRzLmxhc3QyNGgpID09PSAwKSByZXR1cm4gIlNpbiBhY3R1YWxpemFjaW9uZXMgw7psdGltYXMgMjRoIChyZXZpc2FyIHNjcmFwZXIvYmxvcXVlbykiOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNhbHVkIE9LIjsNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgZGF0YS5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgcG9ydGFsX2lkOiBwLmlkLA0KICAgICAgICAgICAgICAgICAgICBwb3J0YWw6IHAubmFtZSwNCiAgICAgICAgICAgICAgICAgICAgc2x1ZzogcC5zbHVnLA0KICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHAuYWN0aXZlLA0KICAgICAgICAgICAgICAgICAgICBzYWxlOiB7DQogICAgICAgICAgICAgICAgICAgICAgICB0b3RhbDogTnVtYmVyKHNhbGUudG90YWwgfHwgMCksDQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0MjRoOiBOdW1iZXIoc2FsZS5sYXN0MjRoIHx8IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zZWVuOiBzYWxlLmxhc3Rfc2VlbiB8fCBudWxsLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGlhZ25vc2lzOiBkaWFnbm9zZSgic2FsZSIsIHNhbGUpLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICByZW50OiB7DQogICAgICAgICAgICAgICAgICAgICAgICB0b3RhbDogTnVtYmVyKHJlbnQudG90YWwgfHwgMCksDQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0MjRoOiBOdW1iZXIocmVudC5sYXN0MjRoIHx8IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zZWVuOiByZW50Lmxhc3Rfc2VlbiB8fCBudWxsLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGlhZ25vc2lzOiBkaWFnbm9zZSgicmVudCIsIHJlbnQpLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgY2FsY3VsYXIgc2FsdWQgZGUgc2NyYXBlcnMiIH0pOw0KICAgICAgICB9DQogICAgfSwNCn07DQo=","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\models\\propertyModel.ts","beforeExisted":true,"beforeHash":"e39ac99ac8e2d2d5bf94ad01c23be130d3d303cffac085e821a5a2bd6847f8e7","beforeContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IFJvd0RhdGFQYWNrZXQsIFJlc3VsdFNldEhlYWRlciB9IGZyb20gIm15c3FsMiI7CgpleHBvcnQgY29uc3QgUHJvcGVydHlNb2RlbCA9IHsKICBhc3luYyBmaW5kQWxsKGZpbHRlcnM/OiBQYXJ0aWFsPFByb3BlcnR5Pik6IFByb21pc2U8UHJvcGVydHlbXT4gewogICAgbGV0IHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwiOwogICAgY29uc3QgcGFyYW1zOiBhbnlbXSA9IFtdOwogICAgaWYgKGZpbHRlcnM/Lm11bmljaXBhbGl0eSkgewogICAgICBxdWVyeSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsKICAgICAgcGFyYW1zLnB1c2goYCUke2ZpbHRlcnMubXVuaWNpcGFsaXR5fSVgKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5wcm9wZXJ0eV90eXBlKSB7CiAgICAgIHF1ZXJ5ICs9ICIgQU5EIHByb3BlcnR5X3R5cGUgPSA/IjsKICAgICAgcGFyYW1zLnB1c2goZmlsdGVycy5wcm9wZXJ0eV90eXBlKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5vcGVyYXRpb25fdHlwZSkgewogICAgICBxdWVyeSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOwogICAgICBwYXJhbXMucHVzaChmaWx0ZXJzLm9wZXJhdGlvbl90eXBlKTsKICAgIH0KICAgIHF1ZXJ5ICs9ICIgT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIjsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkocXVlcnksIHBhcmFtcyk7CiAgICByZXR1cm4gcm93cyBhcyBQcm9wZXJ0eVtdOwogIH0sCgogIC8qKiBFc3RhZMOtc3RpY2FzIGdsb2JhbGVzIGRlbCBkYXNoYm9hcmQgKHNpbiBjYXJnYXIgdG9kYXMgbGFzIGZpbGFzKSAqLwogIGFzeW5jIGdldFN0YXRzKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyOyBzb3VyY2VfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtbc11dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwKICAgICAgICAgICAgICBDT0FMRVNDRShBVkcocHJpY2UpLDApIEFTIGF2Z19wcmljZSwKICAgICAgICAgICAgICBDT0FMRVNDRShNSU4ocHJpY2UpLDApIEFTIG1pbl9wcmljZSwKICAgICAgICAgICAgICBDT1VOVChESVNUSU5DVCBzb3VyY2UpIEFTIHNvdXJjZV9jb3VudAogICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCR7d2hlcmVPcGVyYXRpb259YCwKICAgICAgb3BQYXJhbXMKICAgICkpIGFzIGFueTsKICAgIHJldHVybiB7CiAgICAgIHRvdGFsOiBOdW1iZXIocy50b3RhbCksCiAgICAgIGF2Z19wcmljZTogTnVtYmVyKHMuYXZnX3ByaWNlKSwKICAgICAgbWluX3ByaWNlOiBOdW1iZXIocy5taW5fcHJpY2UpLAogICAgICBzb3VyY2VfY291bnQ6IE51bWJlcihzLnNvdXJjZV9jb3VudCksCiAgICB9OwogIH0sCgogIC8qKiBAZGVwcmVjYXRlZCB1c2FyIGdldFN0YXRzKCkgKyBmaW5kUGFnaW5hdGVkRFQoKSBlbiBzdSBsdWdhciAqLwogIGFzeW5jIGZpbmRGb3JEYXNoYm9hcmQobGltaXQgPSA0MDApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyIH0+IHsKICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgUHJvcGVydHlNb2RlbC5nZXRTdGF0cygpOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBPUkRFUiBCWSBDT0FMRVNDRShzY29yZSwwKSBERVNDLCB1cGRhdGVkX2F0IERFU0MgTElNSVQgP2AsCiAgICAgIFtsaW1pdF0KICAgICk7CiAgICByZXR1cm4geyByb3dzOiByb3dzIGFzIFByb3BlcnR5W10sIHRvdGFsOiBzdGF0cy50b3RhbCwgYXZnX3ByaWNlOiBzdGF0cy5hdmdfcHJpY2UsIG1pbl9wcmljZTogc3RhdHMubWluX3ByaWNlIH07CiAgfSwKCiAgLyoqIENhcmdhIG3DrW5pbWEgcGFyYSBlbCBtYXBhOiBzw7NsbyBjb2x1bW5hcyBuZWNlc2FyaWFzIHBhcmEgbG9zIG1hcmtlcnMgKi8KICBhc3luYyBmaW5kRm9yTWFwKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPFBpY2s8UHJvcGVydHksICJpZCIgfCAidGl0bGUiIHwgInByaWNlIiB8ICJsYXQiIHwgImxuZyIgfCAic291cmNlIiB8ICJtdW5pY2lwYWxpdHkiIHwgInByb3BlcnR5X3R5cGUiIHwgImltYWdlX3VybCIgfCAib3BlcmF0aW9uX3R5cGUiPltdPiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBpZCwgdGl0bGUsIHByaWNlLCBsYXQsIGxuZywgc291cmNlLCBtdW5pY2lwYWxpdHksIHByb3BlcnR5X3R5cGUsIGltYWdlX3VybCwgb3BlcmF0aW9uX3R5cGUKICAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBsYXQgSVMgTk9UIE5VTEwgQU5EIGxuZyBJUyBOT1QgTlVMTCBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMCiAgICAgICAke3doZXJlT3BlcmF0aW9ufQogICAgICAgT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIExJTUlUIDIwMDBgLAogICAgICBvcFBhcmFtcwogICAgKTsKICAgIHJldHVybiByb3dzIGFzIGFueTsKICB9LAoKICBhc3luYyBmaW5kQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTxQcm9wZXJ0eSB8IG51bGw+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLCBbaWRdKTsKICAgIGNvbnN0IGFyciA9IHJvd3MgYXMgUHJvcGVydHlbXTsKICAgIHJldHVybiBhcnIubGVuZ3RoID4gMCA/IGFyclswXSA6IG51bGw7CiAgfSwKCiAgYXN5bmMgdXBzZXJ0KHByb3A6IFByb3BlcnR5ICYgeyBwcmljZV9wZXJfbTI/OiBudW1iZXIgfSk6IFByb21pc2U8bnVtYmVyPiB7CiAgICBjb25zdCBxID0gYElOU0VSVCBJTlRPIHByb3BlcnRpZXMKICAgICAgKHRpdGxlLCBwcmljZSwgbG9jYXRpb24sIG11bmljaXBhbGl0eSwgcHJvcGVydHlfdHlwZSwgb3BlcmF0aW9uX3R5cGUsIHJvb21zLCBiYXRocm9vbXMsIHNpemVfbTIsIGRlc2NyaXB0aW9uLCBpbWFnZV91cmwsIHVybCwgc291cmNlLCBsYXQsIGxuZywgcHJpY2VfcGVyX20yLCB1cGRhdGVkX2F0KQogICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sIE5PVygpKQogICAgICBPTiBEVVBMSUNBVEUgS0VZIFVQREFURQogICAgICAgIHRpdGxlPVZBTFVFUyh0aXRsZSksIHByaWNlPVZBTFVFUyhwcmljZSksIGxvY2F0aW9uPVZBTFVFUyhsb2NhdGlvbiksCiAgICAgICAgbXVuaWNpcGFsaXR5PVZBTFVFUyhtdW5pY2lwYWxpdHkpLCBwcm9wZXJ0eV90eXBlPVZBTFVFUyhwcm9wZXJ0eV90eXBlKSwgb3BlcmF0aW9uX3R5cGU9VkFMVUVTKG9wZXJhdGlvbl90eXBlKSwKICAgICAgICByb29tcz1WQUxVRVMocm9vbXMpLCBiYXRocm9vbXM9VkFMVUVTKGJhdGhyb29tcyksIHNpemVfbTI9VkFMVUVTKHNpemVfbTIpLAogICAgICAgIGRlc2NyaXB0aW9uPVZBTFVFUyhkZXNjcmlwdGlvbiksIGltYWdlX3VybD1WQUxVRVMoaW1hZ2VfdXJsKSwKICAgICAgICBzb3VyY2U9VkFMVUVTKHNvdXJjZSksIGxhdD1WQUxVRVMobGF0KSwgbG5nPVZBTFVFUyhsbmcpLAogICAgICAgIHByaWNlX3Blcl9tMj1WQUxVRVMocHJpY2VfcGVyX20yKSwgdXBkYXRlZF9hdD1OT1coKWA7CiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnk8UmVzdWx0U2V0SGVhZGVyPihxLCBbCiAgICAgIHByb3AudGl0bGUsIHByb3AucHJpY2UsIHByb3AubG9jYXRpb24sIHByb3AubXVuaWNpcGFsaXR5IHx8IG51bGwsCiAgICAgIHByb3AucHJvcGVydHlfdHlwZSwgcHJvcC5vcGVyYXRpb25fdHlwZSB8fCAic2FsZSIsIHByb3Aucm9vbXMgfHwgbnVsbCwgcHJvcC5iYXRocm9vbXMgfHwgbnVsbCwgcHJvcC5zaXplX20yIHx8IG51bGwsCiAgICAgIHByb3AuZGVzY3JpcHRpb24gfHwgbnVsbCwgcHJvcC5pbWFnZV91cmwgfHwgbnVsbCwgcHJvcC51cmwsIHByb3Auc291cmNlLAogICAgICBwcm9wLmxhdCB8fCBudWxsLCBwcm9wLmxuZyB8fCBudWxsLCBwcm9wLnByaWNlX3Blcl9tMiB8fCBudWxsLAogICAgXSk7CiAgICAvLyBPbiBpbnNlcnQ6IGluc2VydElkIGlzIG5ldyBpZDsgb24gdXBkYXRlOiBpbnNlcnRJZCBpcyAwLCBnZXQgYnkgVVJMCiAgICBpZiAocmVzdWx0Lmluc2VydElkID4gMCkgcmV0dXJuIHJlc3VsdC5pbnNlcnRJZDsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigiU0VMRUNUIGlkIEZST00gcHJvcGVydGllcyBXSEVSRSB1cmwgPSA/IiwgW3Byb3AudXJsXSk7CiAgICByZXR1cm4gcm93c1swXT8uaWQgfHwgMDsKICB9LAoKICAvKiogU29mdC1kZWxldGU6IG1hcmNhIGNvbW8gZWxpbWluYWRvIChxdWVkYSBlbiBhcmNoaXZvIDMwIGTDrWFzKSAqLwogIGFzeW5jIGRlbGV0ZUJ5SWQoaWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4gewogICAgYXdhaXQgcG9vbC5xdWVyeSgiVVBEQVRFIHByb3BlcnRpZXMgU0VUIGRlbGV0ZWRfYXQgPSBOT1coKSBXSEVSRSBpZCA9ID8gQU5EIGRlbGV0ZWRfYXQgSVMgTlVMTCIsIFtpZF0pOwogIH0sCgogIC8qKiBSZXN0YXVyYSB1bmEgcHJvcGllZGFkIGVsaW1pbmFkYSBhbCBsaXN0YWRvIGFjdGl2byAqLwogIGFzeW5jIHJlc3RvcmVCeUlkKGlkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IHBvb2wucXVlcnkoIlVQREFURSBwcm9wZXJ0aWVzIFNFVCBkZWxldGVkX2F0ID0gTlVMTCBXSEVSRSBpZCA9ID8iLCBbaWRdKTsKICB9LAoKICAvKiogRWxpbWluYWNpw7NuIHBlcm1hbmVudGUgZSBpcnJlY3VwZXJhYmxlICovCiAgYXN5bmMgaGFyZERlbGV0ZUJ5SWQoaWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4gewogICAgYXdhaXQgcG9vbC5xdWVyeSgiREVMRVRFIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLCBbaWRdKTsKICB9LAoKICAvKiogRGV2dWVsdmUgcHJvcGllZGFkZXMgZW4gZWwgYXJjaGl2byAoc29mdC1kZWxldGVkKSwgcGFnaW5hZGFzICovCiAgYXN5bmMgZmluZERlbGV0ZWQocGFnZSA9IDEsIHBlclBhZ2UgPSAxMDApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlciB9PiB7CiAgICBjb25zdCBvZmZzZXQgPSAocGFnZSAtIDEpICogcGVyUGFnZTsKICAgIGNvbnN0IFtbeyB0b3RhbCB9XV0gPSAoYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICAiU0VMRUNUIENPVU5UKCopIEFTIHRvdGFsIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5PVCBOVUxMIgogICAgKSkgYXMgYW55OwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTk9UIE5VTEwKICAgICAgIE9SREVSIEJZIGRlbGV0ZWRfYXQgREVTQyBMSU1JVCA/IE9GRlNFVCA/YCwKICAgICAgW3BlclBhZ2UsIG9mZnNldF0KICAgICk7CiAgICByZXR1cm4geyByb3dzOiByb3dzIGFzIFByb3BlcnR5W10sIHRvdGFsOiBOdW1iZXIodG90YWwpIH07CiAgfSwKCiAgLyoqIFB1cmdhIHByb3BpZWRhZGVzIGVsaW1pbmFkYXMgaGFjZSBtw6FzIGRlIDMwIGTDrWFzICovCiAgYXN5bmMgcHVyZ2VPbGREZWxldGVkKCk6IFByb21pc2U8bnVtYmVyPiB7CiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnk8UmVzdWx0U2V0SGVhZGVyPigKICAgICAgIkRFTEVURSBGUk9NIHByb3BlcnRpZXMgV0hFUkUgZGVsZXRlZF9hdCBJUyBOT1QgTlVMTCBBTkQgZGVsZXRlZF9hdCA8IERBVEVfU1VCKE5PVygpLCBJTlRFUlZBTCAzMCBEQVkpIgogICAgKTsKICAgIHJldHVybiByZXN1bHQuYWZmZWN0ZWRSb3dzOwogIH0sCgogIC8qKgogICAqIEFyY2hpdmEgKHNvZnQtZGVsZXRlKSBwcm9waWVkYWRlcyBkZSB1biBwb3J0YWwgcXVlIE5PIGZ1ZXJvbiBkZXRlY3RhZGFzCiAgICogZW4gZWwgw7psdGltbyBzY3JhcGluZyAoc3UgYHVwZGF0ZWRfYXRgIGVzIGFudGVyaW9yIGFsIGluaWNpbyBkZWwgc2NyYXBlKS4KICAgKiBAcGFyYW0gc291cmNlICAgTm9tYnJlIGRlbCBwb3J0YWwsIHAuIGVqLiAiSWRlYWxpc3RhIgogICAqIEBwYXJhbSBvbGRlclRoYW4gRmVjaGEgZGUgaW5pY2lvIGRlbCBzY3JhcGluZyDigJQgdG9kbyBsbyBubyBhY3R1YWxpemFkbyBkZXNkZSBlbnRvbmNlcyBzZSBhcmNoaXZhCiAgICogQHJldHVybnMgTsO6bWVybyBkZSBwcm9waWVkYWRlcyBhcmNoaXZhZGFzCiAgICovCiAgYXN5bmMgYXJjaGl2ZVN0YWxlQnlTb3VyY2Uoc291cmNlOiBzdHJpbmcsIG9sZGVyVGhhbjogRGF0ZSk6IFByb21pc2U8bnVtYmVyPiB7CiAgICAvLyBFeGlnaW1vcyBxdWUgbGEgcHJvcGllZGFkIGxsZXZlIEFMIE1FTk9TIDIgZMOtYXMgc2luIGFwYXJlY2VyIGVuIG5pbmfDum4gY2ljbG8KICAgIC8vIGRlIHNjcmFwaW5nIGFudGVzIGRlIGFyY2hpdmFybGEuIEVzdG8gZXZpdGEgcXVlIHVuIGZhbGxvIHB1bnR1YWwgZGVsIHNjcmFwZXIKICAgIC8vICg0MDMsIGFudGktYm90LCByZWQpIGJvcnJlIHByb3BpZWRhZGVzIHF1ZSBzaWd1ZW4gcHVibGljYWRhcyBlbiBlbCBwb3J0YWwuCiAgICBjb25zdCBncmFjZVBlcmlvZE1zID0gMiAqIDI0ICogNjAgKiA2MCAqIDEwMDA7IC8vIDIgZMOtYXMgZW4gbXMKICAgIGNvbnN0IHRocmVzaG9sZCA9IG5ldyBEYXRlKG9sZGVyVGhhbi5nZXRUaW1lKCkgLSBncmFjZVBlcmlvZE1zKTsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICBgVVBEQVRFIHByb3BlcnRpZXMgU0VUIGRlbGV0ZWRfYXQgPSBOT1coKQogICAgICAgV0hFUkUgc291cmNlID0gPyBBTkQgdXBkYXRlZF9hdCA8ID8gQU5EIGRlbGV0ZWRfYXQgSVMgTlVMTGAsCiAgICAgIFtzb3VyY2UsIHRocmVzaG9sZF0KICAgICk7CiAgICByZXR1cm4gcmVzdWx0LmFmZmVjdGVkUm93czsKICB9LAoKICBhc3luYyBmaWx0ZXJBZHZhbmNlZChtaW5fcHJpY2U/OiBudW1iZXIsIG1heF9wcmljZT86IG51bWJlciwgcHJvcGVydHlfdHlwZT86IHN0cmluZywgbXVuaWNpcGFsaXR5Pzogc3RyaW5nLCBtaW5fcm9vbXM/OiBudW1iZXIsIG1pbl9zaXplX20yPzogbnVtYmVyLCBvcGVyYXRpb25fdHlwZT86ICJzYWxlIiB8ICJyZW50IiwgdmFsZW5jaWFfem9uZT86IHN0cmluZyk6IFByb21pc2U8UHJvcGVydHlbXT4gewogICAgbGV0IHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwiOwogICAgY29uc3QgcGFyYW1zOiBhbnlbXSA9IFtdOwogICAgaWYgKG1pbl9wcmljZSAhPSBudWxsKSB7IHF1ZXJ5ICs9ICIgQU5EIHByaWNlID49ID8iOyBwYXJhbXMucHVzaChtaW5fcHJpY2UpOyB9CiAgICBpZiAobWF4X3ByaWNlICE9IG51bGwpIHsgcXVlcnkgKz0gIiBBTkQgcHJpY2UgPD0gPyI7IHBhcmFtcy5wdXNoKG1heF9wcmljZSk7IH0KICAgIGlmIChwcm9wZXJ0eV90eXBlKSB7IHF1ZXJ5ICs9ICIgQU5EIHByb3BlcnR5X3R5cGUgPSA/IjsgcGFyYW1zLnB1c2gocHJvcGVydHlfdHlwZSk7IH0KICAgIGlmIChtdW5pY2lwYWxpdHkpIHsgcXVlcnkgKz0gIiBBTkQgbXVuaWNpcGFsaXR5IExJS0UgPyI7IHBhcmFtcy5wdXNoKGAlJHttdW5pY2lwYWxpdHl9JWApOyB9CiAgICBpZiAob3BlcmF0aW9uX3R5cGUpIHsgcXVlcnkgKz0gIiBBTkQgb3BlcmF0aW9uX3R5cGUgPSA/IjsgcGFyYW1zLnB1c2gob3BlcmF0aW9uX3R5cGUpOyB9CiAgICBpZiAodmFsZW5jaWFfem9uZSkgewogICAgICBxdWVyeSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSAnJVZhbGVuY2lhJScgQU5EIChsb2NhdGlvbiBMSUtFID8gT1IgdGl0bGUgTElLRSA/KSI7CiAgICAgIHBhcmFtcy5wdXNoKGAlJHt2YWxlbmNpYV96b25lfSVgLCBgJSR7dmFsZW5jaWFfem9uZX0lYCk7CiAgICB9CiAgICBpZiAobWluX3Jvb21zICE9IG51bGwpIHsgcXVlcnkgKz0gIiBBTkQgcm9vbXMgPj0gPyI7IHBhcmFtcy5wdXNoKG1pbl9yb29tcyk7IH0KICAgIGlmIChtaW5fc2l6ZV9tMiAhPSBudWxsKSB7IHF1ZXJ5ICs9ICIgQU5EIHNpemVfbTIgPj0gPyI7IHBhcmFtcy5wdXNoKG1pbl9zaXplX20yKTsgfQogICAgcXVlcnkgKz0gIiBPUkRFUiBCWSBwcmljZSBBU0MiOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeShxdWVyeSwgcGFyYW1zKTsKICAgIHJldHVybiByb3dzIGFzIFByb3BlcnR5W107CiAgfSwKCiAgYXN5bmMgdG9nZ2xlRmF2b3JpdGUoaWQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4gewogICAgYXdhaXQgcG9vbC5xdWVyeSgKICAgICAgIlVQREFURSBwcm9wZXJ0aWVzIFNFVCBpc19mYXZvcml0ZSA9IElGKGlzX2Zhdm9yaXRlID0gMSwgMCwgMSkgV0hFUkUgaWQgPSA/IiwKICAgICAgW2lkXQogICAgKTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgIlNFTEVDVCBpc19mYXZvcml0ZSBGUk9NIHByb3BlcnRpZXMgV0hFUkUgaWQgPSA/IiwKICAgICAgW2lkXQogICAgKTsKICAgIHJldHVybiBCb29sZWFuKHJvd3NbMF0/LmlzX2Zhdm9yaXRlKTsKICB9LAoKICBhc3luYyB1cGRhdGVOb3RlcyhpZDogbnVtYmVyLCBub3Rlczogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJVUERBVEUgcHJvcGVydGllcyBTRVQgbm90ZXMgPSA/IFdIRVJFIGlkID0gPyIsIFtub3RlcyB8fCBudWxsLCBpZF0pOwogIH0sCgogIGFzeW5jIGZpbmRGYXZvcml0ZXMoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICAiU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2Zhdm9yaXRlID0gMSBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMIE9SREVSIEJZIHNjb3JlIERFU0MsIHVwZGF0ZWRfYXQgREVTQyIKICAgICk7CiAgICByZXR1cm4gcm93cyBhcyBQcm9wZXJ0eVtdOwogIH0sCgogIGFzeW5jIGZpbmRQYWdpbmF0ZWQoCiAgICBwYWdlOiBudW1iZXIsCiAgICBwZXJQYWdlOiBudW1iZXIsCiAgICBzZWFyY2g/OiBzdHJpbmcKICApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlciB9PiB7CiAgICBjb25zdCBvZmZzZXQgPSAocGFnZSAtIDEpICogcGVyUGFnZTsKICAgIGxldCB3aGVyZSA9ICJXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwiOwogICAgY29uc3QgcGFyYW1zOiBhbnlbXSA9IFtdOwogICAgaWYgKHNlYXJjaCkgewogICAgICB3aGVyZSArPSAiIEFORCAodGl0bGUgTElLRSA/IE9SIGxvY2F0aW9uIExJS0UgPyBPUiBtdW5pY2lwYWxpdHkgTElLRSA/KSI7CiAgICAgIHBhcmFtcy5wdXNoKGAlJHtzZWFyY2h9JWAsIGAlJHtzZWFyY2h9JWAsIGAlJHtzZWFyY2h9JWApOwogICAgfQogICAgY29uc3QgW1t7IHRvdGFsIH1dXSA9IChhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgIGBTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwgRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9YCwKICAgICAgcGFyYW1zCiAgICApKSBhcyBhbnk7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9IE9SREVSIEJZIHVwZGF0ZWRfYXQgREVTQyBMSU1JVCA/IE9GRlNFVCA/YCwKICAgICAgWy4uLnBhcmFtcywgcGVyUGFnZSwgb2Zmc2V0XQogICAgKTsKICAgIHJldHVybiB7IHJvd3M6IHJvd3MgYXMgUHJvcGVydHlbXSwgdG90YWw6IE51bWJlcih0b3RhbCkgfTsKICB9LAoKICAvKioKICAgKiBFbmRwb2ludCBwcmluY2lwYWwgcGFyYSBEYXRhVGFibGVzIHNlcnZlci1zaWRlLgogICAqIFNvcG9ydGEgYsO6c3F1ZWRhIGdsb2JhbCwgZmlsdHJvcyBwb3IgY29sdW1uYSwgb3JkZW5hY2nDs24geSBwYWdpbmFjacOzbi4KICAgKiBDdWFuZG8gZGVsZXRlZD10cnVlIGRldnVlbHZlIGVsIGFyY2hpdm8gZGUgZWxpbWluYWRvcy4KICAgKi8KICBhc3luYyBmaW5kUGFnaW5hdGVkRFQocGFyYW1zOiB7CiAgICBkcmF3OiBudW1iZXI7CiAgICBzdGFydDogbnVtYmVyOwogICAgbGVuZ3RoOiBudW1iZXI7CiAgICBzZWFyY2g/OiBzdHJpbmc7CiAgICBvcmRlckNvbD86IG51bWJlcjsKICAgIG9yZGVyRGlyPzogImFzYyIgfCAiZGVzYyI7CiAgICBtdW5pY2lwYWxpdHk/OiBzdHJpbmc7CiAgICBwcm9wZXJ0eV90eXBlPzogc3RyaW5nOwogICAgbWluX3ByaWNlPzogbnVtYmVyOwogICAgbWF4X3ByaWNlPzogbnVtYmVyOwogICAgbWluX3Jvb21zPzogbnVtYmVyOwogICAgc291cmNlPzogc3RyaW5nOwogICAgZGVsZXRlZD86IGJvb2xlYW47CiAgICBvcGVyYXRpb25fdHlwZT86ICJzYWxlIiB8ICJyZW50IjsKICAgIHZhbGVuY2lhX3pvbmU/OiBzdHJpbmc7CiAgfSk6IFByb21pc2U8eyBkcmF3OiBudW1iZXI7IHJlY29yZHNUb3RhbDogbnVtYmVyOyByZWNvcmRzRmlsdGVyZWQ6IG51bWJlcjsgZGF0YTogUHJvcGVydHlbXSB9PiB7CiAgICBjb25zdCB7CiAgICAgIGRyYXcsIHN0YXJ0LCBsZW5ndGgsIHNlYXJjaCwKICAgICAgb3JkZXJDb2wgPSAyLCBvcmRlckRpciA9ICJhc2MiLAogICAgICBtdW5pY2lwYWxpdHksIHByb3BlcnR5X3R5cGUsCiAgICAgIG1pbl9wcmljZSwgbWF4X3ByaWNlLCBtaW5fcm9vbXMsIHNvdXJjZSwgb3BlcmF0aW9uX3R5cGUsIHZhbGVuY2lhX3pvbmUsCiAgICAgIGRlbGV0ZWQgPSBmYWxzZSwKICAgIH0gPSBwYXJhbXM7CgogICAgLy8gQ29sdW1uYXMgb3JkZW5hYmxlcyAow61uZGljZSBEVCDihpIgY2FtcG8gREIpCiAgICBjb25zdCBzb3J0YWJsZUZpZWxkczogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHsKICAgICAgMTogInRpdGxlIiwgMjogInByaWNlIiwgMzogInByaWNlX3Blcl9tMiIsIDQ6ICJzY29yZSIsCiAgICAgIDU6ICJtdW5pY2lwYWxpdHkiLCA2OiAicHJvcGVydHlfdHlwZSIsIDc6ICJyb29tcyIsIDg6ICJzaXplX20yIiwgOTogInNvdXJjZSIsCiAgICB9OwogICAgY29uc3Qgb3JkZXJGaWVsZCA9IHNvcnRhYmxlRmllbGRzW29yZGVyQ29sXSA/PyAicHJpY2UiOwogICAgY29uc3Qgc2FmZURpciA9IG9yZGVyRGlyID09PSAiZGVzYyIgPyAiREVTQyIgOiAiQVNDIjsKCiAgICAvLyBCYXNlIFdIRVJFCiAgICBjb25zdCBkZWxldGVkQ29uZGl0aW9uID0gZGVsZXRlZCA/ICJkZWxldGVkX2F0IElTIE5PVCBOVUxMIiA6ICJkZWxldGVkX2F0IElTIE5VTEwiOwogICAgbGV0IHdoZXJlID0gYFdIRVJFICR7ZGVsZXRlZENvbmRpdGlvbn1gOwogICAgY29uc3QgcXVlcnlQYXJhbXM6IGFueVtdID0gW107CgogICAgLy8gRmlsdHJvcyBwZXJzb25hbGl6YWRvcwogICAgaWYgKG11bmljaXBhbGl0eSkgeyB3aGVyZSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsgcXVlcnlQYXJhbXMucHVzaChgJSR7bXVuaWNpcGFsaXR5fSVgKTsgfQogICAgaWYgKHByb3BlcnR5X3R5cGUpIHsgd2hlcmUgKz0gIiBBTkQgcHJvcGVydHlfdHlwZSA9ID8iOyBxdWVyeVBhcmFtcy5wdXNoKHByb3BlcnR5X3R5cGUpOyB9CiAgICBpZiAobWluX3ByaWNlICE9IG51bGwgJiYgbWluX3ByaWNlID4gMCkgeyB3aGVyZSArPSAiIEFORCBwcmljZSA+PSA/IjsgcXVlcnlQYXJhbXMucHVzaChtaW5fcHJpY2UpOyB9CiAgICBpZiAobWF4X3ByaWNlICE9IG51bGwgJiYgbWF4X3ByaWNlID4gMCkgeyB3aGVyZSArPSAiIEFORCBwcmljZSA8PSA/IjsgcXVlcnlQYXJhbXMucHVzaChtYXhfcHJpY2UpOyB9CiAgICBpZiAobWluX3Jvb21zICE9IG51bGwgJiYgbWluX3Jvb21zID4gMCkgeyB3aGVyZSArPSAiIEFORCByb29tcyA+PSA/IjsgcXVlcnlQYXJhbXMucHVzaChtaW5fcm9vbXMpOyB9CiAgICBpZiAoc291cmNlKSB7IHdoZXJlICs9ICIgQU5EIHNvdXJjZSBMSUtFID8iOyBxdWVyeVBhcmFtcy5wdXNoKGAlJHtzb3VyY2V9JWApOyB9CiAgICBpZiAob3BlcmF0aW9uX3R5cGUpIHsgd2hlcmUgKz0gIiBBTkQgb3BlcmF0aW9uX3R5cGUgPSA/IjsgcXVlcnlQYXJhbXMucHVzaChvcGVyYXRpb25fdHlwZSk7IH0KICAgIGlmICh2YWxlbmNpYV96b25lKSB7CiAgICAgIHdoZXJlICs9ICIgQU5EIG11bmljaXBhbGl0eSBMSUtFICclVmFsZW5jaWElJyBBTkQgKGxvY2F0aW9uIExJS0UgPyBPUiB0aXRsZSBMSUtFID8pIjsKICAgICAgcXVlcnlQYXJhbXMucHVzaChgJSR7dmFsZW5jaWFfem9uZX0lYCwgYCUke3ZhbGVuY2lhX3pvbmV9JWApOwogICAgfQoKICAgIC8vIFRvdGFsIHNpbiBmaWx0cm8gZGUgYsO6c3F1ZWRhIChwYXJhIHJlY29yZHNUb3RhbCkKICAgIGNvbnN0IFtbeyByZWNvcmRzVG90YWwgfV1dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyByZWNvcmRzVG90YWwgRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9YCwgcXVlcnlQYXJhbXMKICAgICkpIGFzIGFueTsKCiAgICAvLyBCw7pzcXVlZGEgZ2xvYmFsCiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBbLi4ucXVlcnlQYXJhbXNdOwogICAgaWYgKHNlYXJjaCkgewogICAgICB3aGVyZSArPSAiIEFORCAodGl0bGUgTElLRSA/IE9SIGxvY2F0aW9uIExJS0UgPyBPUiBtdW5pY2lwYWxpdHkgTElLRSA/IE9SIHNvdXJjZSBMSUtFID8pIjsKICAgICAgY29uc3QgcyA9IGAlJHtzZWFyY2h9JWA7CiAgICAgIHNlYXJjaFBhcmFtcy5wdXNoKHMsIHMsIHMsIHMpOwogICAgfQoKICAgIC8vIFRvdGFsIGNvbiBmaWx0cm8gZGUgYsO6c3F1ZWRhIChwYXJhIHJlY29yZHNGaWx0ZXJlZCkKICAgIGNvbnN0IFtbeyByZWNvcmRzRmlsdGVyZWQgfV1dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyByZWNvcmRzRmlsdGVyZWQgRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9YCwgc2VhcmNoUGFyYW1zCiAgICApKSBhcyBhbnk7CgogICAgLy8gRGF0b3MgZGUgbGEgcMOhZ2luYQogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9IE9SREVSIEJZICR7b3JkZXJGaWVsZH0gJHtzYWZlRGlyfSBMSU1JVCA/IE9GRlNFVCA/YCwKICAgICAgWy4uLnNlYXJjaFBhcmFtcywgbGVuZ3RoLCBzdGFydF0KICAgICk7CgogICAgcmV0dXJuIHsKICAgICAgZHJhdywKICAgICAgcmVjb3Jkc1RvdGFsOiBOdW1iZXIocmVjb3Jkc1RvdGFsKSwKICAgICAgcmVjb3Jkc0ZpbHRlcmVkOiBOdW1iZXIocmVjb3Jkc0ZpbHRlcmVkKSwKICAgICAgZGF0YTogcm93cyBhcyBQcm9wZXJ0eVtdLAogICAgfTsKICB9LAp9Owo=","afterExisted":true,"afterHash":"27cd395535c8904166f3ede535ef1acdef5b490afe9e9ebbc81b4c52af570bb8","afterContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IFJvd0RhdGFQYWNrZXQsIFJlc3VsdFNldEhlYWRlciB9IGZyb20gIm15c3FsMiI7CgpleHBvcnQgY29uc3QgUHJvcGVydHlNb2RlbCA9IHsKICBhc3luYyBmaW5kQWxsKGZpbHRlcnM/OiBQYXJ0aWFsPFByb3BlcnR5Pik6IFByb21pc2U8UHJvcGVydHlbXT4gewogICAgbGV0IHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwiOwogICAgY29uc3QgcGFyYW1zOiBhbnlbXSA9IFtdOwogICAgaWYgKGZpbHRlcnM/Lm11bmljaXBhbGl0eSkgewogICAgICBxdWVyeSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsKICAgICAgcGFyYW1zLnB1c2goYCUke2ZpbHRlcnMubXVuaWNpcGFsaXR5fSVgKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5wcm9wZXJ0eV90eXBlKSB7CiAgICAgIHF1ZXJ5ICs9ICIgQU5EIHByb3BlcnR5X3R5cGUgPSA/IjsKICAgICAgcGFyYW1zLnB1c2goZmlsdGVycy5wcm9wZXJ0eV90eXBlKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5vcGVyYXRpb25fdHlwZSkgewogICAgICBxdWVyeSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOwogICAgICBwYXJhbXMucHVzaChmaWx0ZXJzLm9wZXJhdGlvbl90eXBlKTsKICAgIH0KICAgIHF1ZXJ5ICs9ICIgT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIjsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkocXVlcnksIHBhcmFtcyk7CiAgICByZXR1cm4gcm93cyBhcyBQcm9wZXJ0eVtdOwogIH0sCgogIC8qKiBFc3RhZMOtc3RpY2FzIGdsb2JhbGVzIGRlbCBkYXNoYm9hcmQgKHNpbiBjYXJnYXIgdG9kYXMgbGFzIGZpbGFzKSAqLwogIGFzeW5jIGdldFN0YXRzKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyOyBzb3VyY2VfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtbc11dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwKICAgICAgICAgICAgICBDT0FMRVNDRShBVkcocHJpY2UpLDApIEFTIGF2Z19wcmljZSwKICAgICAgICAgICAgICBDT0FMRVNDRShNSU4ocHJpY2UpLDApIEFTIG1pbl9wcmljZSwKICAgICAgICAgICAgICBDT1VOVChESVNUSU5DVCBzb3VyY2UpIEFTIHNvdXJjZV9jb3VudAogICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCR7d2hlcmVPcGVyYXRpb259YCwKICAgICAgb3BQYXJhbXMKICAgICkpIGFzIGFueTsKICAgIHJldHVybiB7CiAgICAgIHRvdGFsOiBOdW1iZXIocy50b3RhbCksCiAgICAgIGF2Z19wcmljZTogTnVtYmVyKHMuYXZnX3ByaWNlKSwKICAgICAgbWluX3ByaWNlOiBOdW1iZXIocy5taW5fcHJpY2UpLAogICAgICBzb3VyY2VfY291bnQ6IE51bWJlcihzLnNvdXJjZV9jb3VudCksCiAgICB9OwogIH0sCgogIC8qKiBAZGVwcmVjYXRlZCB1c2FyIGdldFN0YXRzKCkgKyBmaW5kUGFnaW5hdGVkRFQoKSBlbiBzdSBsdWdhciAqLwogIGFzeW5jIGZpbmRGb3JEYXNoYm9hcmQobGltaXQgPSA0MDApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyIH0+IHsKICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgUHJvcGVydHlNb2RlbC5nZXRTdGF0cygpOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBPUkRFUiBCWSBDT0FMRVNDRShzY29yZSwwKSBERVNDLCB1cGRhdGVkX2F0IERFU0MgTElNSVQgP2AsCiAgICAgIFtsaW1pdF0KICAgICk7CiAgICByZXR1cm4geyByb3dzOiByb3dzIGFzIFByb3BlcnR5W10sIHRvdGFsOiBzdGF0cy50b3RhbCwgYXZnX3ByaWNlOiBzdGF0cy5hdmdfcHJpY2UsIG1pbl9wcmljZTogc3RhdHMubWluX3ByaWNlIH07CiAgfSwKCiAgLyoqIENhcmdhIG3DrW5pbWEgcGFyYSBlbCBtYXBhOiBzw7NsbyBjb2x1bW5hcyBuZWNlc2FyaWFzIHBhcmEgbG9zIG1hcmtlcnMgKi8KICBhc3luYyBmaW5kRm9yTWFwKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPFBpY2s8UHJvcGVydHksICJpZCIgfCAidGl0bGUiIHwgInByaWNlIiB8ICJsYXQiIHwgImxuZyIgfCAic291cmNlIiB8ICJtdW5pY2lwYWxpdHkiIHwgInByb3BlcnR5X3R5cGUiIHwgImltYWdlX3VybCIgfCAib3BlcmF0aW9uX3R5cGUiPltdPiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBpZCwgdGl0bGUsIHByaWNlLCBsYXQsIGxuZywgc291cmNlLCBtdW5pY2lwYWxpdHksIHByb3BlcnR5X3R5cGUsIGltYWdlX3VybCwgb3BlcmF0aW9uX3R5cGUKICAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBsYXQgSVMgTk9UIE5VTEwgQU5EIGxuZyBJUyBOT1QgTlVMTCBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMCiAgICAgICAke3doZXJlT3BlcmF0aW9ufQogICAgICAgT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIExJTUlUIDIwMDBgLAogICAgICBvcFBhcmFtcwogICAgKTsKICAgIHJldHVybiByb3dzIGFzIGFueTsKICB9LAoKICBhc3luYyBmaW5kQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTxQcm9wZXJ0eSB8IG51bGw+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLCBbaWRdKTsKICAgIGNvbnN0IGFyciA9IHJvd3MgYXMgUHJvcGVydHlbXTsKICAgIHJldHVybiBhcnIubGVuZ3RoID4gMCA/IGFyclswXSA6IG51bGw7CiAgfSwKCiAgYXN5bmMgdXBzZXJ0KHByb3A6IFByb3BlcnR5ICYgeyBwcmljZV9wZXJfbTI/OiBudW1iZXIgfSk6IFByb21pc2U8bnVtYmVyPiB7CiAgICBjb25zdCBxID0gYElOU0VSVCBJTlRPIHByb3BlcnRpZXMKICAgICAgKHRpdGxlLCBwcmljZSwgbG9jYXRpb24sIG11bmljaXBhbGl0eSwgcHJvcGVydHlfdHlwZSwgb3BlcmF0aW9uX3R5cGUsIHJvb21zLCBiYXRocm9vbXMsIHNpemVfbTIsIGRlc2NyaXB0aW9uLCBpbWFnZV91cmwsIHVybCwgc291cmNlLCBsYXQsIGxuZywgcHJpY2VfcGVyX20yLCB1cGRhdGVkX2F0KQogICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sIE5PVygpKQogICAgICBPTiBEVVBMSUNBVEUgS0VZIFVQREFURQogICAgICAgIHRpdGxlPVZBTFVFUyh0aXRsZSksIHByaWNlPVZBTFVFUyhwcmljZSksIGxvY2F0aW9uPVZBTFVFUyhsb2NhdGlvbiksCiAgICAgICAgbXVuaWNpcGFsaXR5PVZBTFVFUyhtdW5pY2lwYWxpdHkpLCBwcm9wZXJ0eV90eXBlPVZBTFVFUyhwcm9wZXJ0eV90eXBlKSwgb3BlcmF0aW9uX3R5cGU9VkFMVUVTKG9wZXJhdGlvbl90eXBlKSwKICAgICAgICByb29tcz1WQUxVRVMocm9vbXMpLCBiYXRocm9vbXM9VkFMVUVTKGJhdGhyb29tcyksIHNpemVfbTI9VkFMVUVTKHNpemVfbTIpLAogICAgICAgIGRlc2NyaXB0aW9uPVZBTFVFUyhkZXNjcmlwdGlvbiksIGltYWdlX3VybD1WQUxVRVMoaW1hZ2VfdXJsKSwKICAgICAgICBzb3VyY2U9VkFMVUVTKHNvdXJjZSksIGxhdD1WQUxVRVMobGF0KSwgbG5nPVZBTFVFUyhsbmcpLAogICAgICAgIHByaWNlX3Blcl9tMj1WQUxVRVMocHJpY2VfcGVyX20yKSwgZGVsZXRlZF9hdD1OVUxMLCB1cGRhdGVkX2F0PU5PVygpYDsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KHEsIFsKICAgICAgcHJvcC50aXRsZSwgcHJvcC5wcmljZSwgcHJvcC5sb2NhdGlvbiwgcHJvcC5tdW5pY2lwYWxpdHkgfHwgbnVsbCwKICAgICAgcHJvcC5wcm9wZXJ0eV90eXBlLCBwcm9wLm9wZXJhdGlvbl90eXBlIHx8ICJzYWxlIiwgcHJvcC5yb29tcyB8fCBudWxsLCBwcm9wLmJhdGhyb29tcyB8fCBudWxsLCBwcm9wLnNpemVfbTIgfHwgbnVsbCwKICAgICAgcHJvcC5kZXNjcmlwdGlvbiB8fCBudWxsLCBwcm9wLmltYWdlX3VybCB8fCBudWxsLCBwcm9wLnVybCwgcHJvcC5zb3VyY2UsCiAgICAgIHByb3AubGF0IHx8IG51bGwsIHByb3AubG5nIHx8IG51bGwsIHByb3AucHJpY2VfcGVyX20yIHx8IG51bGwsCiAgICBdKTsKICAgIC8vIE9uIGluc2VydDogaW5zZXJ0SWQgaXMgbmV3IGlkOyBvbiB1cGRhdGU6IGluc2VydElkIGlzIDAsIGdldCBieSBVUkwKICAgIGlmIChyZXN1bHQuaW5zZXJ0SWQgPiAwKSByZXR1cm4gcmVzdWx0Lmluc2VydElkOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KCJTRUxFQ1QgaWQgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIHVybCA9ID8iLCBbcHJvcC51cmxdKTsKICAgIHJldHVybiByb3dzWzBdPy5pZCB8fCAwOwogIH0sCgogIC8qKiBTb2Z0LWRlbGV0ZTogbWFyY2EgY29tbyBlbGltaW5hZG8gKHF1ZWRhIGVuIGFyY2hpdm8gMzAgZMOtYXMpICovCiAgYXN5bmMgZGVsZXRlQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJVUERBVEUgcHJvcGVydGllcyBTRVQgZGVsZXRlZF9hdCA9IE5PVygpIFdIRVJFIGlkID0gPyBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMIiwgW2lkXSk7CiAgfSwKCiAgLyoqIFJlc3RhdXJhIHVuYSBwcm9waWVkYWQgZWxpbWluYWRhIGFsIGxpc3RhZG8gYWN0aXZvICovCiAgYXN5bmMgcmVzdG9yZUJ5SWQoaWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4gewogICAgYXdhaXQgcG9vbC5xdWVyeSgiVVBEQVRFIHByb3BlcnRpZXMgU0VUIGRlbGV0ZWRfYXQgPSBOVUxMIFdIRVJFIGlkID0gPyIsIFtpZF0pOwogIH0sCgogIC8qKiBFbGltaW5hY2nDs24gcGVybWFuZW50ZSBlIGlycmVjdXBlcmFibGUgKi8KICBhc3luYyBoYXJkRGVsZXRlQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJERUxFVEUgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlkID0gPyIsIFtpZF0pOwogIH0sCgogIC8qKiBEZXZ1ZWx2ZSBwcm9waWVkYWRlcyBlbiBlbCBhcmNoaXZvIChzb2Z0LWRlbGV0ZWQpLCBwYWdpbmFkYXMgKi8KICBhc3luYyBmaW5kRGVsZXRlZChwYWdlID0gMSwgcGVyUGFnZSA9IDEwMCk6IFByb21pc2U8eyByb3dzOiBQcm9wZXJ0eVtdOyB0b3RhbDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IG9mZnNldCA9IChwYWdlIC0gMSkgKiBwZXJQYWdlOwogICAgY29uc3QgW1t7IHRvdGFsIH1dXSA9IChhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgICJTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTk9UIE5VTEwiCiAgICApKSBhcyBhbnk7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgIGBTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgV0hFUkUgZGVsZXRlZF9hdCBJUyBOT1QgTlVMTAogICAgICAgT1JERVIgQlkgZGVsZXRlZF9hdCBERVNDIExJTUlUID8gT0ZGU0VUID9gLAogICAgICBbcGVyUGFnZSwgb2Zmc2V0XQogICAgKTsKICAgIHJldHVybiB7IHJvd3M6IHJvd3MgYXMgUHJvcGVydHlbXSwgdG90YWw6IE51bWJlcih0b3RhbCkgfTsKICB9LAoKICAvKiogUHVyZ2EgcHJvcGllZGFkZXMgZWxpbWluYWRhcyBoYWNlIG3DoXMgZGUgMzAgZMOtYXMgKi8KICBhc3luYyBwdXJnZU9sZERlbGV0ZWQoKTogUHJvbWlzZTxudW1iZXI+IHsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICAiREVMRVRFIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5PVCBOVUxMIEFORCBkZWxldGVkX2F0IDwgREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDMwIERBWSkiCiAgICApOwogICAgcmV0dXJuIHJlc3VsdC5hZmZlY3RlZFJvd3M7CiAgfSwKCiAgLyoqCiAgICogQXJjaGl2YSAoc29mdC1kZWxldGUpIHByb3BpZWRhZGVzIGRlIHVuIHBvcnRhbCB5IG9wZXJhY2nDs24gcXVlIE5PIGZ1ZXJvbgogICAqIGRldGVjdGFkYXMgZW4gZWwgw7psdGltbyBzY3JhcGluZyAoc3UgYHVwZGF0ZWRfYXRgIGVzIGFudGVyaW9yIGFsIGluaWNpbykuCiAgICogQHBhcmFtIHNvdXJjZSAgIE5vbWJyZSBkZWwgcG9ydGFsLCBwLiBlai4gIklkZWFsaXN0YSIKICAgKiBAcGFyYW0gb3BlcmF0aW9uVHlwZSBPcGVyYWNpw7NuIGRlbCBjaWNsbzsgdmVudGEgbnVuY2EgZGViZSBhcmNoaXZhciBhbHF1aWxlcgogICAqIEBwYXJhbSBvbGRlclRoYW4gRmVjaGEgZGUgaW5pY2lvIGRlbCBzY3JhcGluZyDigJQgdG9kbyBsbyBubyBhY3R1YWxpemFkbyBkZXNkZSBlbnRvbmNlcyBzZSBhcmNoaXZhCiAgICogQHJldHVybnMgTsO6bWVybyBkZSBwcm9waWVkYWRlcyBhcmNoaXZhZGFzCiAgICovCiAgYXN5bmMgYXJjaGl2ZVN0YWxlQnlTb3VyY2UoCiAgICBzb3VyY2U6IHN0cmluZywKICAgIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiwKICAgIG9sZGVyVGhhbjogRGF0ZQogICk6IFByb21pc2U8bnVtYmVyPiB7CiAgICAvLyBFeGlnaW1vcyBxdWUgbGEgcHJvcGllZGFkIGxsZXZlIEFMIE1FTk9TIDIgZMOtYXMgc2luIGFwYXJlY2VyIGVuIG5pbmfDum4gY2ljbG8KICAgIC8vIGRlIHNjcmFwaW5nIGFudGVzIGRlIGFyY2hpdmFybGEuIEVzdG8gZXZpdGEgcXVlIHVuIGZhbGxvIHB1bnR1YWwgZGVsIHNjcmFwZXIKICAgIC8vICg0MDMsIGFudGktYm90LCByZWQpIGJvcnJlIHByb3BpZWRhZGVzIHF1ZSBzaWd1ZW4gcHVibGljYWRhcyBlbiBlbCBwb3J0YWwuCiAgICBjb25zdCBncmFjZVBlcmlvZE1zID0gMiAqIDI0ICogNjAgKiA2MCAqIDEwMDA7IC8vIDIgZMOtYXMgZW4gbXMKICAgIGNvbnN0IHRocmVzaG9sZCA9IG5ldyBEYXRlKG9sZGVyVGhhbi5nZXRUaW1lKCkgLSBncmFjZVBlcmlvZE1zKTsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICBgVVBEQVRFIHByb3BlcnRpZXMgU0VUIGRlbGV0ZWRfYXQgPSBOT1coKQogICAgICAgV0hFUkUgc291cmNlID0gPyBBTkQgb3BlcmF0aW9uX3R5cGUgPSA/CiAgICAgICAgIEFORCB1cGRhdGVkX2F0IDwgPyBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMYCwKICAgICAgW3NvdXJjZSwgb3BlcmF0aW9uVHlwZSwgdGhyZXNob2xkXQogICAgKTsKICAgIHJldHVybiByZXN1bHQuYWZmZWN0ZWRSb3dzOwogIH0sCgogIGFzeW5jIGZpbHRlckFkdmFuY2VkKG1pbl9wcmljZT86IG51bWJlciwgbWF4X3ByaWNlPzogbnVtYmVyLCBwcm9wZXJ0eV90eXBlPzogc3RyaW5nLCBtdW5pY2lwYWxpdHk/OiBzdHJpbmcsIG1pbl9yb29tcz86IG51bWJlciwgbWluX3NpemVfbTI/OiBudW1iZXIsIG9wZXJhdGlvbl90eXBlPzogInNhbGUiIHwgInJlbnQiLCB2YWxlbmNpYV96b25lPzogc3RyaW5nKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICBsZXQgcXVlcnkgPSAiU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCI7CiAgICBjb25zdCBwYXJhbXM6IGFueVtdID0gW107CiAgICBpZiAobWluX3ByaWNlICE9IG51bGwpIHsgcXVlcnkgKz0gIiBBTkQgcHJpY2UgPj0gPyI7IHBhcmFtcy5wdXNoKG1pbl9wcmljZSk7IH0KICAgIGlmIChtYXhfcHJpY2UgIT0gbnVsbCkgeyBxdWVyeSArPSAiIEFORCBwcmljZSA8PSA/IjsgcGFyYW1zLnB1c2gobWF4X3ByaWNlKTsgfQogICAgaWYgKHByb3BlcnR5X3R5cGUpIHsgcXVlcnkgKz0gIiBBTkQgcHJvcGVydHlfdHlwZSA9ID8iOyBwYXJhbXMucHVzaChwcm9wZXJ0eV90eXBlKTsgfQogICAgaWYgKG11bmljaXBhbGl0eSkgeyBxdWVyeSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsgcGFyYW1zLnB1c2goYCUke211bmljaXBhbGl0eX0lYCk7IH0KICAgIGlmIChvcGVyYXRpb25fdHlwZSkgeyBxdWVyeSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOyBwYXJhbXMucHVzaChvcGVyYXRpb25fdHlwZSk7IH0KICAgIGlmICh2YWxlbmNpYV96b25lKSB7CiAgICAgIHF1ZXJ5ICs9ICIgQU5EIG11bmljaXBhbGl0eSBMSUtFICclVmFsZW5jaWElJyBBTkQgKGxvY2F0aW9uIExJS0UgPyBPUiB0aXRsZSBMSUtFID8pIjsKICAgICAgcGFyYW1zLnB1c2goYCUke3ZhbGVuY2lhX3pvbmV9JWAsIGAlJHt2YWxlbmNpYV96b25lfSVgKTsKICAgIH0KICAgIGlmIChtaW5fcm9vbXMgIT0gbnVsbCkgeyBxdWVyeSArPSAiIEFORCByb29tcyA+PSA/IjsgcGFyYW1zLnB1c2gobWluX3Jvb21zKTsgfQogICAgaWYgKG1pbl9zaXplX20yICE9IG51bGwpIHsgcXVlcnkgKz0gIiBBTkQgc2l6ZV9tMiA+PSA/IjsgcGFyYW1zLnB1c2gobWluX3NpemVfbTIpOyB9CiAgICBxdWVyeSArPSAiIE9SREVSIEJZIHByaWNlIEFTQyI7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpOwogICAgcmV0dXJuIHJvd3MgYXMgUHJvcGVydHlbXTsKICB9LAoKICBhc3luYyB0b2dnbGVGYXZvcml0ZShpZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICAiVVBEQVRFIHByb3BlcnRpZXMgU0VUIGlzX2Zhdm9yaXRlID0gSUYoaXNfZmF2b3JpdGUgPSAxLCAwLCAxKSBXSEVSRSBpZCA9ID8iLAogICAgICBbaWRdCiAgICApOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICAiU0VMRUNUIGlzX2Zhdm9yaXRlIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLAogICAgICBbaWRdCiAgICApOwogICAgcmV0dXJuIEJvb2xlYW4ocm93c1swXT8uaXNfZmF2b3JpdGUpOwogIH0sCgogIGFzeW5jIHVwZGF0ZU5vdGVzKGlkOiBudW1iZXIsIG5vdGVzOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IHBvb2wucXVlcnkoIlVQREFURSBwcm9wZXJ0aWVzIFNFVCBub3RlcyA9ID8gV0hFUkUgaWQgPSA/IiwgW25vdGVzIHx8IG51bGwsIGlkXSk7CiAgfSwKCiAgYXN5bmMgZmluZEZhdm9yaXRlcygpOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoCiAgICAgICJTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgV0hFUkUgaXNfZmF2b3JpdGUgPSAxIEFORCBkZWxldGVkX2F0IElTIE5VTEwgT1JERVIgQlkgc2NvcmUgREVTQywgdXBkYXRlZF9hdCBERVNDIgogICAgKTsKICAgIHJldHVybiByb3dzIGFzIFByb3BlcnR5W107CiAgfSwKCiAgYXN5bmMgZmluZFBhZ2luYXRlZCgKICAgIHBhZ2U6IG51bWJlciwKICAgIHBlclBhZ2U6IG51bWJlciwKICAgIHNlYXJjaD86IHN0cmluZwogICk6IFByb21pc2U8eyByb3dzOiBQcm9wZXJ0eVtdOyB0b3RhbDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IG9mZnNldCA9IChwYWdlIC0gMSkgKiBwZXJQYWdlOwogICAgbGV0IHdoZXJlID0gIldIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCI7CiAgICBjb25zdCBwYXJhbXM6IGFueVtdID0gW107CiAgICBpZiAoc2VhcmNoKSB7CiAgICAgIHdoZXJlICs9ICIgQU5EICh0aXRsZSBMSUtFID8gT1IgbG9jYXRpb24gTElLRSA/IE9SIG11bmljaXBhbGl0eSBMSUtFID8pIjsKICAgICAgcGFyYW1zLnB1c2goYCUke3NlYXJjaH0lYCwgYCUke3NlYXJjaH0lYCwgYCUke3NlYXJjaH0lYCk7CiAgICB9CiAgICBjb25zdCBbW3sgdG90YWwgfV1dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX1gLAogICAgICBwYXJhbXMKICAgICkpIGFzIGFueTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoCiAgICAgIGBTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX0gT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIExJTUlUID8gT0ZGU0VUID9gLAogICAgICBbLi4ucGFyYW1zLCBwZXJQYWdlLCBvZmZzZXRdCiAgICApOwogICAgcmV0dXJuIHsgcm93czogcm93cyBhcyBQcm9wZXJ0eVtdLCB0b3RhbDogTnVtYmVyKHRvdGFsKSB9OwogIH0sCgogIC8qKgogICAqIEVuZHBvaW50IHByaW5jaXBhbCBwYXJhIERhdGFUYWJsZXMgc2VydmVyLXNpZGUuCiAgICogU29wb3J0YSBiw7pzcXVlZGEgZ2xvYmFsLCBmaWx0cm9zIHBvciBjb2x1bW5hLCBvcmRlbmFjacOzbiB5IHBhZ2luYWNpw7NuLgogICAqIEN1YW5kbyBkZWxldGVkPXRydWUgZGV2dWVsdmUgZWwgYXJjaGl2byBkZSBlbGltaW5hZG9zLgogICAqLwogIGFzeW5jIGZpbmRQYWdpbmF0ZWREVChwYXJhbXM6IHsKICAgIGRyYXc6IG51bWJlcjsKICAgIHN0YXJ0OiBudW1iZXI7CiAgICBsZW5ndGg6IG51bWJlcjsKICAgIHNlYXJjaD86IHN0cmluZzsKICAgIG9yZGVyQ29sPzogbnVtYmVyOwogICAgb3JkZXJEaXI/OiAiYXNjIiB8ICJkZXNjIjsKICAgIG11bmljaXBhbGl0eT86IHN0cmluZzsKICAgIHByb3BlcnR5X3R5cGU/OiBzdHJpbmc7CiAgICBtaW5fcHJpY2U/OiBudW1iZXI7CiAgICBtYXhfcHJpY2U/OiBudW1iZXI7CiAgICBtaW5fcm9vbXM/OiBudW1iZXI7CiAgICBzb3VyY2U/OiBzdHJpbmc7CiAgICBkZWxldGVkPzogYm9vbGVhbjsKICAgIG9wZXJhdGlvbl90eXBlPzogInNhbGUiIHwgInJlbnQiOwogICAgdmFsZW5jaWFfem9uZT86IHN0cmluZzsKICB9KTogUHJvbWlzZTx7IGRyYXc6IG51bWJlcjsgcmVjb3Jkc1RvdGFsOiBudW1iZXI7IHJlY29yZHNGaWx0ZXJlZDogbnVtYmVyOyBkYXRhOiBQcm9wZXJ0eVtdIH0+IHsKICAgIGNvbnN0IHsKICAgICAgZHJhdywgc3RhcnQsIGxlbmd0aCwgc2VhcmNoLAogICAgICBvcmRlckNvbCA9IDIsIG9yZGVyRGlyID0gImFzYyIsCiAgICAgIG11bmljaXBhbGl0eSwgcHJvcGVydHlfdHlwZSwKICAgICAgbWluX3ByaWNlLCBtYXhfcHJpY2UsIG1pbl9yb29tcywgc291cmNlLCBvcGVyYXRpb25fdHlwZSwgdmFsZW5jaWFfem9uZSwKICAgICAgZGVsZXRlZCA9IGZhbHNlLAogICAgfSA9IHBhcmFtczsKCiAgICAvLyBDb2x1bW5hcyBvcmRlbmFibGVzICjDrW5kaWNlIERUIOKGkiBjYW1wbyBEQikKICAgIGNvbnN0IHNvcnRhYmxlRmllbGRzOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0gewogICAgICAxOiAidGl0bGUiLCAyOiAicHJpY2UiLCAzOiAicHJpY2VfcGVyX20yIiwgNDogInNjb3JlIiwKICAgICAgNTogIm11bmljaXBhbGl0eSIsIDY6ICJwcm9wZXJ0eV90eXBlIiwgNzogInJvb21zIiwgODogInNpemVfbTIiLCA5OiAic291cmNlIiwKICAgIH07CiAgICBjb25zdCBvcmRlckZpZWxkID0gc29ydGFibGVGaWVsZHNbb3JkZXJDb2xdID8/ICJwcmljZSI7CiAgICBjb25zdCBzYWZlRGlyID0gb3JkZXJEaXIgPT09ICJkZXNjIiA/ICJERVNDIiA6ICJBU0MiOwoKICAgIC8vIEJhc2UgV0hFUkUKICAgIGNvbnN0IGRlbGV0ZWRDb25kaXRpb24gPSBkZWxldGVkID8gImRlbGV0ZWRfYXQgSVMgTk9UIE5VTEwiIDogImRlbGV0ZWRfYXQgSVMgTlVMTCI7CiAgICBsZXQgd2hlcmUgPSBgV0hFUkUgJHtkZWxldGVkQ29uZGl0aW9ufWA7CiAgICBjb25zdCBxdWVyeVBhcmFtczogYW55W10gPSBbXTsKCiAgICAvLyBGaWx0cm9zIHBlcnNvbmFsaXphZG9zCiAgICBpZiAobXVuaWNpcGFsaXR5KSB7IHdoZXJlICs9ICIgQU5EIG11bmljaXBhbGl0eSBMSUtFID8iOyBxdWVyeVBhcmFtcy5wdXNoKGAlJHttdW5pY2lwYWxpdHl9JWApOyB9CiAgICBpZiAocHJvcGVydHlfdHlwZSkgeyB3aGVyZSArPSAiIEFORCBwcm9wZXJ0eV90eXBlID0gPyI7IHF1ZXJ5UGFyYW1zLnB1c2gocHJvcGVydHlfdHlwZSk7IH0KICAgIGlmIChtaW5fcHJpY2UgIT0gbnVsbCAmJiBtaW5fcHJpY2UgPiAwKSB7IHdoZXJlICs9ICIgQU5EIHByaWNlID49ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG1pbl9wcmljZSk7IH0KICAgIGlmIChtYXhfcHJpY2UgIT0gbnVsbCAmJiBtYXhfcHJpY2UgPiAwKSB7IHdoZXJlICs9ICIgQU5EIHByaWNlIDw9ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG1heF9wcmljZSk7IH0KICAgIGlmIChtaW5fcm9vbXMgIT0gbnVsbCAmJiBtaW5fcm9vbXMgPiAwKSB7IHdoZXJlICs9ICIgQU5EIHJvb21zID49ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG1pbl9yb29tcyk7IH0KICAgIGlmIChzb3VyY2UpIHsgd2hlcmUgKz0gIiBBTkQgc291cmNlIExJS0UgPyI7IHF1ZXJ5UGFyYW1zLnB1c2goYCUke3NvdXJjZX0lYCk7IH0KICAgIGlmIChvcGVyYXRpb25fdHlwZSkgeyB3aGVyZSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG9wZXJhdGlvbl90eXBlKTsgfQogICAgaWYgKHZhbGVuY2lhX3pvbmUpIHsKICAgICAgd2hlcmUgKz0gIiBBTkQgbXVuaWNpcGFsaXR5IExJS0UgJyVWYWxlbmNpYSUnIEFORCAobG9jYXRpb24gTElLRSA/IE9SIHRpdGxlIExJS0UgPykiOwogICAgICBxdWVyeVBhcmFtcy5wdXNoKGAlJHt2YWxlbmNpYV96b25lfSVgLCBgJSR7dmFsZW5jaWFfem9uZX0lYCk7CiAgICB9CgogICAgLy8gVG90YWwgc2luIGZpbHRybyBkZSBiw7pzcXVlZGEgKHBhcmEgcmVjb3Jkc1RvdGFsKQogICAgY29uc3QgW1t7IHJlY29yZHNUb3RhbCB9XV0gPSAoYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUIENPVU5UKCopIEFTIHJlY29yZHNUb3RhbCBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX1gLCBxdWVyeVBhcmFtcwogICAgKSkgYXMgYW55OwoKICAgIC8vIELDunNxdWVkYSBnbG9iYWwKICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IFsuLi5xdWVyeVBhcmFtc107CiAgICBpZiAoc2VhcmNoKSB7CiAgICAgIHdoZXJlICs9ICIgQU5EICh0aXRsZSBMSUtFID8gT1IgbG9jYXRpb24gTElLRSA/IE9SIG11bmljaXBhbGl0eSBMSUtFID8gT1Igc291cmNlIExJS0UgPykiOwogICAgICBjb25zdCBzID0gYCUke3NlYXJjaH0lYDsKICAgICAgc2VhcmNoUGFyYW1zLnB1c2gocywgcywgcywgcyk7CiAgICB9CgogICAgLy8gVG90YWwgY29uIGZpbHRybyBkZSBiw7pzcXVlZGEgKHBhcmEgcmVjb3Jkc0ZpbHRlcmVkKQogICAgY29uc3QgW1t7IHJlY29yZHNGaWx0ZXJlZCB9XV0gPSAoYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUIENPVU5UKCopIEFTIHJlY29yZHNGaWx0ZXJlZCBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX1gLCBzZWFyY2hQYXJhbXMKICAgICkpIGFzIGFueTsKCiAgICAvLyBEYXRvcyBkZSBsYSBww6FnaW5hCiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgIGBTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX0gT1JERVIgQlkgJHtvcmRlckZpZWxkfSAke3NhZmVEaXJ9IExJTUlUID8gT0ZGU0VUID9gLAogICAgICBbLi4uc2VhcmNoUGFyYW1zLCBsZW5ndGgsIHN0YXJ0XQogICAgKTsKCiAgICByZXR1cm4gewogICAgICBkcmF3LAogICAgICByZWNvcmRzVG90YWw6IE51bWJlcihyZWNvcmRzVG90YWwpLAogICAgICByZWNvcmRzRmlsdGVyZWQ6IE51bWJlcihyZWNvcmRzRmlsdGVyZWQpLAogICAgICBkYXRhOiByb3dzIGFzIFByb3BlcnR5W10sCiAgICB9OwogIH0sCn07Cg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\fotocasaPlaywrightScraper.ts","beforeExisted":true,"beforeHash":"ac29489c4c7d525eead84c5f0424222c9cc448cecd7c94262eabfa9024eb2627","beforeContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IGNocm9taXVtIH0gZnJvbSAicGxheXdyaWdodCI7DQppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsNCmltcG9ydCB7IFpvbmUgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsNCmltcG9ydCB7IFBsYXl3cmlnaHRCYXNlU2NyYXBlciB9IGZyb20gIi4vcGxheXdyaWdodEJhc2VTY3JhcGVyIjsNCmltcG9ydCB7IFZBTEVOQ0lBX0RJU1RSSUNUUyB9IGZyb20gIi4uL2NvbmZpZy92YWxlbmNpYURpc3RyaWN0cyI7DQppbXBvcnQgeyBWYWxlbmNpYURpc3RyaWN0TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvdmFsZW5jaWFEaXN0cmljdE1vZGVsIjsNCg0KLyoqDQogKiBTY3JhcGVyIHBhcmEgRm90b2Nhc2EgKFBsYXl3cmlnaHQgY29uIGVzcGVyYSBpbnRlbGlnZW50ZSkuDQogKg0KICogRm90b2Nhc2EgZXMgdW4gU1BBIFJlYWN0OiBlbCBTU1Igc29sbyByZW5kZXJpemEgMSB0YXJqZXRhLCBlbCByZXN0byBzZSBoaWRyYXRhDQogKiB2w61hIEFQSSBpbnRlcm5hIGN1YW5kbyBlbCBicm93c2VyIGVqZWN1dGEgSlMuIFVzYW1vcyBQbGF5d3JpZ2h0IGNvbiB3YWl0Rm9yRnVuY3Rpb24NCiAqIHF1ZSBlc3BlcmEgaGFzdGEgcXVlIGFsIG1lbm9zIDUgYXJ0w61jdWxvcyB0ZW5nYW4gbGlua3MgcmVhbGVzIChubyBlc3F1ZWxldG9zKS4NCiAqDQogKiBVUkwgdmVudGE6IC9lcy9jb21wcmFyL3ZpdmllbmRhcy97c2x1Z30vdG9kYXMtbGFzLXpvbmFzL2wNCiAqIFVSTCBhbHF1aWxlcjogL2VzL2FscXVpbGVyL3ZpdmllbmRhcy97c2x1Z30vdG9kYXMtbGFzLXpvbmFzL2wNCiAqIFBhZ2luYWNpw7NuOiBhcHBlbmQgL3B7bn0gYWwgZmluYWwNCiAqLw0KZXhwb3J0IGNsYXNzIEZvdG9jYXNhUGxheXdyaWdodFNjcmFwZXIgZXh0ZW5kcyBQbGF5d3JpZ2h0QmFzZVNjcmFwZXIgew0KICAgIHByaXZhdGUgYXN5bmMgZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMoKTogUHJvbWlzZTxBcnJheTx7IHNsdWc6IHN0cmluZzsgem9uZUxhYmVsOiBzdHJpbmcgfT4+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBWYWxlbmNpYURpc3RyaWN0TW9kZWwuZmluZEFjdGl2ZSgpOw0KICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJvd3MNCiAgICAgICAgICAgICAgICAuZmlsdGVyKHIgPT4gISFyLmZvdG9jYXNhX3NsdWcpDQogICAgICAgICAgICAgICAgLm1hcChyID0+ICh7IHNsdWc6IHIuZm90b2Nhc2Ffc2x1Zywgem9uZUxhYmVsOiBgJHtyLm5hbWV9LCBWYWxlbmNpYWAgfSkpOw0KICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMCkgcmV0dXJuIGRhdGE7DQogICAgICAgIH0gY2F0Y2ggeyAvKiBmYWxsYmFjayAqLyB9DQogICAgICAgIHJldHVybiBWQUxFTkNJQV9ESVNUUklDVFMubWFwKGQgPT4gKHsgc2x1ZzogZC5mb3RvY2FzYSwgem9uZUxhYmVsOiBgJHtkLm5hbWV9LCBWYWxlbmNpYWAgfSkpOw0KICAgIH0NCg0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlcigiaHR0cHM6Ly93d3cuZm90b2Nhc2EuZXMiLCAiRm90b2Nhc2EiKTsNCiAgICAgICAgdGhpcy5wYWdlVGltZW91dE1zID0gNjAwMDA7DQogICAgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3QgdGFyZ2V0czogQXJyYXk8eyBzbHVnOiBzdHJpbmc7IHpvbmVMYWJlbD86IHN0cmluZyB9PiA9IFtdOw0KICAgICAgICBpZiAoem9uZXMubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgZm9yIChjb25zdCB6IG9mIHpvbmVzKSB7DQogICAgICAgICAgICAgICAgaWYgKHouc2x1ZyA9PT0gInZhbGVuY2lhIikgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0cmljdHMgPSBhd2FpdCB0aGlzLmdldFZhbGVuY2lhRGlzdHJpY3RUYXJnZXRzKCk7DQogICAgICAgICAgICAgICAgICAgIHRhcmdldHMucHVzaCguLi5kaXN0cmljdHMpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHRhcmdldHMucHVzaCh7IHNsdWc6IHouc2x1Zywgem9uZUxhYmVsOiB6Lm5hbWUgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKHsgc2x1ZzogImxsaXJpYSIsIHpvbmVMYWJlbDogIkxsw61yaWEiIH0pOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gU2x1ZyBtYXBwaW5nOiB6b25hIERCIOKGkiBzbHVnIEZvdG9jYXNhIChub21icmVzIHZhbGVuY2lhbm9zIG8gYWJyZXZpYWRvcykNCiAgICAgICAgY29uc3QgZm90b2Nhc2FTbHVnTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gew0KICAgICAgICAgICAgImVsaWFuYSI6ICJsLWVsaWFuYSIsDQogICAgICAgICAgICAicmliYS1yb2phIjogInJpYmEtcm9qYS1kZS10dXJpYSIsDQogICAgICAgICAgICAicG9ibGEtZGUtdmFsbGJvbmEiOiAibGEtcG9ibGEtZGUtdmFsbGJvbmEiLA0KICAgICAgICAgICAgInZpbGxhbWFyY2hhbnRlIjogInZpbGFtYXJ4YW50IiwNCiAgICAgICAgfTsNCg0KICAgICAgICBjb25zdCBwcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdID0gW107DQogICAgICAgIGNvbnN0IHNlZW5VcmxzID0gbmV3IFNldDxzdHJpbmc+KCk7DQoNCiAgICAgICAgZm9yIChjb25zdCB0IG9mIHRhcmdldHMpIHsNCiAgICAgICAgICAgIGNvbnN0IHNsdWcgPSB0LnNsdWc7DQogICAgICAgICAgICBjb25zdCBmb3RvY2FzYVNsdWcgPSBmb3RvY2FzYVNsdWdNYXBbc2x1Z10gPz8gc2x1ZzsNCiAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvblBhdGggPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAiYWxxdWlsZXIiIDogImNvbXByYXIiOw0KICAgICAgICAgICAgY29uc3QgYmFzZVBhZ2VVcmwgPSBgJHt0aGlzLmJhc2VVcmx9L2VzLyR7b3BlcmF0aW9uUGF0aH0vdml2aWVuZGFzLyR7Zm90b2Nhc2FTbHVnfS90b2Rhcy1sYXMtem9uYXMvbGA7DQoNCiAgICAgICAgICAgIC8vIFBhZ2luYWNpw7NuOiBoYXN0YSAxMCBww6FnaW5hcyBwb3Igem9uYQ0KICAgICAgICAgICAgZm9yIChsZXQgcGFnZSA9IDE7IHBhZ2UgPD0gMTA7IHBhZ2UrKykgew0KICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VVcmwgPSBwYWdlID09PSAxID8gYmFzZVBhZ2VVcmwgOiBgJHtiYXNlUGFnZVVybH0vcCR7cGFnZX1gOw0KICAgICAgICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLmZldGNoRm90b2Nhc2FQYWdlKHBhZ2VVcmwpOw0KICAgICAgICAgICAgICAgIGlmICghaHRtbCkgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBjb25zdCBwYWdlUHJvcHMgPSB0aGlzLnBhcnNlSHRtbChodG1sLCBzbHVnLCB6b25lcywgc2VlblVybHMsIHQuem9uZUxhYmVsKTsNCiAgICAgICAgICAgICAgICBpZiAocGFnZVByb3BzLmxlbmd0aCA9PT0gMCkgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goLi4ucGFnZVByb3BzKTsNCg0KICAgICAgICAgICAgICAgIC8vIFNpIGhheSBtZW5vcyBkZSAyMCByZXN1bHRhZG9zLCBlcyBsYSDDumx0aW1hIHDDoWdpbmENCiAgICAgICAgICAgICAgICBpZiAocGFnZVByb3BzLmxlbmd0aCA8IDIwKSBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUmVzdWx0cyhwcm9wZXJ0aWVzKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBDYXJnYSBsYSBww6FnaW5hIGNvbiBQbGF5d3JpZ2h0IHkgZXNwZXJhIGEgcXVlIGVsIFNQQSBSZWFjdCBoYXlhIGhpZHJhdGFkbw0KICAgICAqIHN1ZmljaWVudGVzIGFydMOtY3Vsb3MgKD49IDUgY29uIGxpbmtzIHJlYWxlcywgbm8gZXNxdWVsZXRvcykuDQogICAgICovDQogICAgcHJpdmF0ZSBhc3luYyBmZXRjaEZvdG9jYXNhUGFnZSh1cmw6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7DQogICAgICAgIGNvbnN0IGJyb3dzZXIgPSBhd2FpdCBjaHJvbWl1bS5sYXVuY2goew0KICAgICAgICAgICAgaGVhZGxlc3M6IHRydWUsDQogICAgICAgICAgICBhcmdzOiBbDQogICAgICAgICAgICAgICAgIi0tZGlzYWJsZS1ibGluay1mZWF0dXJlcz1BdXRvbWF0aW9uQ29udHJvbGxlZCIsDQogICAgICAgICAgICAgICAgIi0tbm8tc2FuZGJveCIsDQogICAgICAgICAgICAgICAgIi0tZGlzYWJsZS1zZXR1aWQtc2FuZGJveCIsDQogICAgICAgICAgICBdLA0KICAgICAgICB9KTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBhd2FpdCBicm93c2VyLm5ld0NvbnRleHQoew0KICAgICAgICAgICAgICAgIHZpZXdwb3J0OiB7IHdpZHRoOiAxMjgwLCBoZWlnaHQ6IDgwMCB9LA0KICAgICAgICAgICAgICAgIGxvY2FsZTogImVzLUVTIiwNCiAgICAgICAgICAgICAgICB0aW1lem9uZUlkOiAiRXVyb3BlL01hZHJpZCIsDQogICAgICAgICAgICAgICAgdXNlckFnZW50OiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IiwNCiAgICAgICAgICAgICAgICBqYXZhU2NyaXB0RW5hYmxlZDogdHJ1ZSwNCiAgICAgICAgICAgICAgICBpZ25vcmVIVFRQU0Vycm9yczogdHJ1ZSwNCiAgICAgICAgICAgICAgICBleHRyYUhUVFBIZWFkZXJzOiB7DQogICAgICAgICAgICAgICAgICAgICJBY2NlcHQtTGFuZ3VhZ2UiOiAiZXMtRVMsZXM7cT0wLjkiLA0KICAgICAgICAgICAgICAgICAgICAiQWNjZXB0IjogInRleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LGltYWdlL2F2aWYsaW1hZ2Uvd2VicCwqLyo7cT0wLjgiLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgYXdhaXQgY29udGV4dC5hZGRJbml0U2NyaXB0KCgpID0+IHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmF2aWdhdG9yLCAid2ViZHJpdmVyIiwgeyBnZXQ6ICgpID0+IHVuZGVmaW5lZCB9KTsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmF2aWdhdG9yLCAibGFuZ3VhZ2VzIiwgeyBnZXQ6ICgpID0+IFsiZXMtRVMiLCAiZXMiXSB9KTsNCiAgICAgICAgICAgICAgICAod2luZG93IGFzIGFueSkuY2hyb21lID0geyBydW50aW1lOiB7fSB9Ow0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBjb250ZXh0Lm5ld1BhZ2UoKTsNCg0KICAgICAgICAgICAgLy8gbmV0d29ya2lkbGUgZXNwZXJhIGEgcXVlIGxhIFNQQSBjb21wbGV0ZSB0b2RhcyBzdXMgcGV0aWNpb25lcw0KICAgICAgICAgICAgYXdhaXQgcGFnZS5nb3RvKHVybCwgeyB3YWl0VW50aWw6ICJuZXR3b3JraWRsZSIsIHRpbWVvdXQ6IHRoaXMucGFnZVRpbWVvdXRNcyB9KTsNCg0KICAgICAgICAgICAgLy8gRGlzbWlzcyBjb29raWUgYmFubmVyIHNpIGFwYXJlY2UNCiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGlzbWlzc0Nvb2tpZUJhbm5lcihwYWdlKTsNCg0KICAgICAgICAgICAgLy8gU2Nyb2xsIHBhcmEgYWN0aXZhciBsYXp5IGxvYWRpbmcgZGUgRm90b2Nhc2ENCiAgICAgICAgICAgIGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4gd2luZG93LnNjcm9sbEJ5KDAsIDYwMCkpOw0KICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDIwMDApKTsNCiAgICAgICAgICAgIGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4gd2luZG93LnNjcm9sbEJ5KDAsIDEyMDApKTsNCiAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxNTAwKSk7DQoNCiAgICAgICAgICAgIC8vIENvbnRhciBhcnTDrWN1bG9zIHJlYWxlcyBwYXJhIGRpYWduw7NzdGljbw0KICAgICAgICAgICAgY29uc3QgYXJ0aWNsZUNvdW50ID0gYXdhaXQgcGFnZS5ldmFsdWF0ZSgNCiAgICAgICAgICAgICAgICAoKSA9PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhcnRpY2xlIGgzIGFbaHJlZl0nKS5sZW5ndGgNCiAgICAgICAgICAgICkuY2F0Y2goKCkgPT4gMCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhgWyR7dGhpcy5zb3VyY2VOYW1lfV0gJHt1cmx9IOKGkiAke2FydGljbGVDb3VudH0gYXJ0w61jdWxvcyBjb24gbGluayByZWFsYCk7DQoNCiAgICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCBwYWdlLmNvbnRlbnQoKTsNCiAgICAgICAgICAgIHJldHVybiBodG1sOw0KICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7DQogICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbJHt0aGlzLnNvdXJjZU5hbWV9XSBFcnJvciBQbGF5d3JpZ2h0IGVuICR7dXJsfTogJHtlcnJvci5tZXNzYWdlfWApOw0KICAgICAgICAgICAgcmV0dXJuICIiOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgYXdhaXQgYnJvd3Nlci5jbG9zZSgpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgcHJpdmF0ZSBwYXJzZUh0bWwoDQogICAgICAgIGh0bWw6IHN0cmluZywNCiAgICAgICAgc2x1Zzogc3RyaW5nLA0KICAgICAgICB6b25lczogWm9uZVtdLA0KICAgICAgICBzZWVuVXJsczogU2V0PHN0cmluZz4sDQogICAgICAgIHpvbmVMYWJlbD86IHN0cmluZw0KICAgICk6IFByb3BlcnR5W10gew0KICAgICAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKGh0bWwpOw0KICAgICAgICBjb25zdCByZXN1bHRzOiBQcm9wZXJ0eVtdID0gW107DQoNCiAgICAgICAgJCgnYXJ0aWNsZScpLmVhY2goKF9pLCBlbCkgPT4gew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAvLyBTb2xvIHRhcmpldGFzIGNvbiBsaW5rIHJlYWwgKG5vIGVzcXVlbGV0b3MpDQogICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9DQogICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoImgzIGFbaHJlZio9Jy9lcy9jb21wcmFyLyddLCBoMyBhW2hyZWYqPScvZXMvYWxxdWlsZXIvJ10iKS5maXJzdCgpLmF0dHIoImhyZWYiKSB8fA0KICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCJhW2hyZWYqPScvZXMvY29tcHJhci8nXSwgYVtocmVmKj0nL2VzL2FscXVpbGVyLyddIikuZmlyc3QoKS5hdHRyKCJocmVmIikgfHwgIiI7DQogICAgICAgICAgICAgICAgaWYgKCFocmVmKSByZXR1cm47DQogICAgICAgICAgICAgICAgY29uc3QgYWJzVXJsID0gaHJlZi5zdGFydHNXaXRoKCJodHRwIikgPyBocmVmIDogYCR7dGhpcy5iYXNlVXJsfSR7aHJlZn1gOw0KICAgICAgICAgICAgICAgIGlmIChzZWVuVXJscy5oYXMoYWJzVXJsKSkgcmV0dXJuOw0KICAgICAgICAgICAgICAgIHNlZW5VcmxzLmFkZChhYnNVcmwpOw0KDQogICAgICAgICAgICAgICAgLy8gVMOtdHVsbw0KICAgICAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5zYW5pdGl6ZVRleHQoDQogICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoImgzIikudGV4dCgpIHx8ICJQcm9waWVkYWQgZW4gTGxpcmlhIg0KICAgICAgICAgICAgICAgICk7DQoNCiAgICAgICAgICAgICAgICAvLyBQcmVjaW86IGJ1c2NhciBzcGFuL2RpdiBjb24gcGF0csOzbiAiMjQwLjAwMCDigqwiDQogICAgICAgICAgICAgICAgbGV0IHByaWNlUmF3ID0gIiI7DQogICAgICAgICAgICAgICAgJChlbCkuZmluZCgic3BhbiwgZGl2IikuZWFjaCgoX2osIGUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9ICQoZSkudGV4dCgpLnRyaW0oKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmljZVJhdyAmJiAvXlxkW1xkLixcc10q4oKsLy50ZXN0KHQpKSBwcmljZVJhdyA9IHQ7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnBhcnNlUHJpY2UocHJpY2VSYXcpOw0KICAgICAgICAgICAgICAgIGlmIChwcmljZSA8PSAwKSByZXR1cm47DQoNCiAgICAgICAgICAgICAgICAvLyBMb2NhbGl6YWNpw7NuOiB1c2FyIGVsIG5vbWJyZSBkZSBsYSB6b25hIGRpcmVjdGFtZW50ZSBwYXJhIGV2aXRhciBjYXB0dXJhcg0KICAgICAgICAgICAgICAgIC8vIHRleHRvIGV4dHJhIGRlbCBhbHQgZGUgaW1hZ2VuIChwLmVqLiAiQ2FzYSBlbiB2ZW50YSBlbiBCZW5hZ3Vhc2lsIGNvbiBBaXJlIGFjb25kaWNpb25hZG8iKQ0KICAgICAgICAgICAgICAgIGNvbnN0IHpvbmVPYmogPSB6b25lcy5maW5kKHogPT4gei5zbHVnID09PSBzbHVnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHpvbmVPYmogPyB6b25lT2JqLm5hbWUgOiB0aGlzLnNhbml0aXplVGV4dChzbHVnKTsNCg0KICAgICAgICAgICAgICAgIC8vIEhhYml0YWNpb25lcyB5IHN1cGVyZmljaWUNCiAgICAgICAgICAgICAgICBsZXQgcm9vbXMgPSAwLCBzaXplX20yID0gMDsNCiAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCJsaSIpLmVhY2goKF9qLCBsaSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB0eHQgPSAkKGxpKS50ZXh0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJtID0gdHh0Lm1hdGNoKC8oXGQrKVxzKmhhYnM/L2kpOw0KICAgICAgICAgICAgICAgICAgICBpZiAocm0pIHJvb21zID0gcGFyc2VJbnQocm1bMV0pOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzbSA9IHR4dC5tYXRjaCgvKFxkKylccyptwrIvaSk7DQogICAgICAgICAgICAgICAgICAgIGlmIChzbSkgc2l6ZV9tMiA9IHBhcnNlSW50KHNtWzFdKTsNCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgICAgIC8vIEltYWdlbg0KICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlX3VybCA9DQogICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoInBpY3R1cmUgaW1nIikuZmlyc3QoKS5hdHRyKCJzcmMiKSB8fA0KICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCJpbWciKS5maXJzdCgpLmF0dHIoInNyYyIpIHx8ICIiOw0KDQogICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgdGl0bGUsIHByaWNlLCBsb2NhdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgbXVuaWNpcGFsaXR5OiB6b25lTGFiZWwgJiYgem9uZUxhYmVsLmluY2x1ZGVzKCJWYWxlbmNpYSIpID8gIlZhbGVuY2lhIiA6IHRoaXMuZGV0ZWN0TXVuaWNpcGFsaXR5KGxvY2F0aW9uICsgIiAiICsgc2x1Zywgem9uZXMpLA0KICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eV90eXBlOiB0aGlzLm5vcm1hbGl6ZVR5cGUodGl0bGUpLA0KICAgICAgICAgICAgICAgICAgICByb29tcywgc2l6ZV9tMiwNCiAgICAgICAgICAgICAgICAgICAgdXJsOiBhYnNVcmwsDQogICAgICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VOYW1lLA0KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25fdHlwZTogdGhpcy5fb3BlcmF0aW9uVHlwZSwNCiAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsLA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfSBjYXRjaCB7IC8qIHNraXAgKi8gfQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gcmVzdWx0czsNCiAgICB9DQp9DQo=","afterExisted":true,"afterHash":"aeb965775ad33b7b0a2e813e207265dff62406d903ce8393b96bf8b60aee4a75","afterContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IGNocm9taXVtIH0gZnJvbSAicGxheXdyaWdodCI7DQppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsNCmltcG9ydCB7IFpvbmUgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsNCmltcG9ydCB7IFBsYXl3cmlnaHRCYXNlU2NyYXBlciB9IGZyb20gIi4vcGxheXdyaWdodEJhc2VTY3JhcGVyIjsNCmltcG9ydCB7IFZBTEVOQ0lBX0RJU1RSSUNUUyB9IGZyb20gIi4uL2NvbmZpZy92YWxlbmNpYURpc3RyaWN0cyI7DQppbXBvcnQgeyBWYWxlbmNpYURpc3RyaWN0TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvdmFsZW5jaWFEaXN0cmljdE1vZGVsIjsNCg0KLyoqDQogKiBTY3JhcGVyIHBhcmEgRm90b2Nhc2EgKFBsYXl3cmlnaHQgY29uIGVzcGVyYSBpbnRlbGlnZW50ZSkuDQogKg0KICogRm90b2Nhc2EgZXMgdW4gU1BBIFJlYWN0OiBlbCBTU1Igc29sbyByZW5kZXJpemEgMSB0YXJqZXRhLCBlbCByZXN0byBzZSBoaWRyYXRhDQogKiB2w61hIEFQSSBpbnRlcm5hIGN1YW5kbyBlbCBicm93c2VyIGVqZWN1dGEgSlMuIFVzYW1vcyBQbGF5d3JpZ2h0IGNvbiB3YWl0Rm9yRnVuY3Rpb24NCiAqIHF1ZSBlc3BlcmEgaGFzdGEgcXVlIGFsIG1lbm9zIDUgYXJ0w61jdWxvcyB0ZW5nYW4gbGlua3MgcmVhbGVzIChubyBlc3F1ZWxldG9zKS4NCiAqDQogKiBVUkwgdmVudGE6IC9lcy9jb21wcmFyL3ZpdmllbmRhcy97c2x1Z30vdG9kYXMtbGFzLXpvbmFzL2wNCiAqIFVSTCBhbHF1aWxlcjogL2VzL2FscXVpbGVyL3ZpdmllbmRhcy97c2x1Z30vdG9kYXMtbGFzLXpvbmFzL2wNCiAqIFBhZ2luYWNpw7NuOiBhcHBlbmQgL3B7bn0gYWwgZmluYWwNCiAqLw0KZXhwb3J0IGNsYXNzIEZvdG9jYXNhUGxheXdyaWdodFNjcmFwZXIgZXh0ZW5kcyBQbGF5d3JpZ2h0QmFzZVNjcmFwZXIgew0KICAgIHByaXZhdGUgYXN5bmMgZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMoKTogUHJvbWlzZTxBcnJheTx7IHNsdWc6IHN0cmluZzsgem9uZUxhYmVsOiBzdHJpbmcgfT4+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBWYWxlbmNpYURpc3RyaWN0TW9kZWwuZmluZEFsbCgpOwogICAgICAgICAgICBpZiAocm93cy5sZW5ndGggPiAwKSByZXR1cm4gcm93cwogICAgICAgICAgICAgICAgLmZpbHRlcihyID0+IHIuYWN0aXZlICE9PSAwICYmICEhci5mb3RvY2FzYV9zbHVnKQogICAgICAgICAgICAgICAgLm1hcChyID0+ICh7IHNsdWc6IHIuZm90b2Nhc2Ffc2x1Zywgem9uZUxhYmVsOiBgJHtyLm5hbWV9LCBWYWxlbmNpYWAgfSkpOwogICAgICAgIH0gY2F0Y2ggeyAvKiBmYWxsYmFjayAqLyB9DQogICAgICAgIHJldHVybiBWQUxFTkNJQV9ESVNUUklDVFMubWFwKGQgPT4gKHsgc2x1ZzogZC5mb3RvY2FzYSwgem9uZUxhYmVsOiBgJHtkLm5hbWV9LCBWYWxlbmNpYWAgfSkpOw0KICAgIH0NCg0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlcigiaHR0cHM6Ly93d3cuZm90b2Nhc2EuZXMiLCAiRm90b2Nhc2EiKTsNCiAgICAgICAgdGhpcy5wYWdlVGltZW91dE1zID0gNjAwMDA7DQogICAgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3QgdGFyZ2V0czogQXJyYXk8eyBzbHVnOiBzdHJpbmc7IHpvbmVMYWJlbD86IHN0cmluZzsgaXNWYWxlbmNpYURpc3RyaWN0PzogYm9vbGVhbiB9PiA9IFtdOwogICAgICAgIGlmICh6b25lcy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICBmb3IgKGNvbnN0IHogb2Ygem9uZXMpIHsNCiAgICAgICAgICAgICAgICBpZiAoei5zbHVnID09PSAidmFsZW5jaWEiKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RyaWN0cyA9IGF3YWl0IHRoaXMuZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMoKTsNCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKC4uLmRpc3RyaWN0cy5tYXAoZCA9PiAoeyAuLi5kLCBpc1ZhbGVuY2lhRGlzdHJpY3Q6IHRydWUgfSkpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHRhcmdldHMucHVzaCh7IHNsdWc6IHouc2x1Zywgem9uZUxhYmVsOiB6Lm5hbWUgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKHsgc2x1ZzogImxsaXJpYSIsIHpvbmVMYWJlbDogIkxsw61yaWEiIH0pOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gU2x1ZyBtYXBwaW5nOiB6b25hIERCIOKGkiBzbHVnIEZvdG9jYXNhIChub21icmVzIHZhbGVuY2lhbm9zIG8gYWJyZXZpYWRvcykNCiAgICAgICAgY29uc3QgZm90b2Nhc2FTbHVnTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gew0KICAgICAgICAgICAgImVsaWFuYSI6ICJsLWVsaWFuYSIsDQogICAgICAgICAgICAicmliYS1yb2phIjogInJpYmEtcm9qYS1kZS10dXJpYSIsDQogICAgICAgICAgICAicG9ibGEtZGUtdmFsbGJvbmEiOiAibGEtcG9ibGEtZGUtdmFsbGJvbmEiLA0KICAgICAgICAgICAgInZpbGxhbWFyY2hhbnRlIjogInZpbGFtYXJ4YW50IiwNCiAgICAgICAgfTsNCg0KICAgICAgICBjb25zdCBwcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdID0gW107DQogICAgICAgIGNvbnN0IHNlZW5VcmxzID0gbmV3IFNldDxzdHJpbmc+KCk7DQoNCiAgICAgICAgZm9yIChjb25zdCB0IG9mIHRhcmdldHMpIHsNCiAgICAgICAgICAgIGNvbnN0IHNsdWcgPSB0LnNsdWc7DQogICAgICAgICAgICBjb25zdCBmb3RvY2FzYVNsdWcgPSBmb3RvY2FzYVNsdWdNYXBbc2x1Z10gPz8gc2x1ZzsNCiAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvblBhdGggPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAiYWxxdWlsZXIiIDogImNvbXByYXIiOw0KICAgICAgICAgICAgY29uc3QgbG9jYXRpb25QYXRoID0gdC5pc1ZhbGVuY2lhRGlzdHJpY3QKICAgICAgICAgICAgICAgID8gYHZhbGVuY2lhLWNhcGl0YWwvJHtmb3RvY2FzYVNsdWd9YAogICAgICAgICAgICAgICAgOiBgJHtmb3RvY2FzYVNsdWd9L3RvZGFzLWxhcy16b25hc2A7CiAgICAgICAgICAgIGNvbnN0IGJhc2VQYWdlVXJsID0gYCR7dGhpcy5iYXNlVXJsfS9lcy8ke29wZXJhdGlvblBhdGh9L3ZpdmllbmRhcy8ke2xvY2F0aW9uUGF0aH0vbGA7Cg0KICAgICAgICAgICAgLy8gUGFnaW5hY2nDs246IGhhc3RhIDEwIHDDoWdpbmFzIHBvciB6b25hDQogICAgICAgICAgICBmb3IgKGxldCBwYWdlID0gMTsgcGFnZSA8PSAxMDsgcGFnZSsrKSB7DQogICAgICAgICAgICAgICAgY29uc3QgcGFnZVVybCA9IHBhZ2UgPT09IDEgPyBiYXNlUGFnZVVybCA6IGAke2Jhc2VQYWdlVXJsfS9wJHtwYWdlfWA7DQogICAgICAgICAgICAgICAgY29uc3QgaHRtbCA9IGF3YWl0IHRoaXMuZmV0Y2hGb3RvY2FzYVBhZ2UocGFnZVVybCk7DQogICAgICAgICAgICAgICAgaWYgKCFodG1sKSBicmVhazsNCg0KICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VQcm9wcyA9IHRoaXMucGFyc2VIdG1sKGh0bWwsIHNsdWcsIHpvbmVzLCBzZWVuVXJscywgdC56b25lTGFiZWwpOw0KICAgICAgICAgICAgICAgIGlmIChwYWdlUHJvcHMubGVuZ3RoID09PSAwKSBicmVhazsNCg0KICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaCguLi5wYWdlUHJvcHMpOw0KDQogICAgICAgICAgICAgICAgLy8gU2kgaGF5IG1lbm9zIGRlIDIwIHJlc3VsdGFkb3MsIGVzIGxhIMO6bHRpbWEgcMOhZ2luYQ0KICAgICAgICAgICAgICAgIGlmIChwYWdlUHJvcHMubGVuZ3RoIDwgMjApIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVSZXN1bHRzKHByb3BlcnRpZXMpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIENhcmdhIGxhIHDDoWdpbmEgY29uIFBsYXl3cmlnaHQgeSBlc3BlcmEgYSBxdWUgZWwgU1BBIFJlYWN0IGhheWEgaGlkcmF0YWRvDQogICAgICogc3VmaWNpZW50ZXMgYXJ0w61jdWxvcyAoPj0gNSBjb24gbGlua3MgcmVhbGVzLCBubyBlc3F1ZWxldG9zKS4NCiAgICAgKi8NCiAgICBwcml2YXRlIGFzeW5jIGZldGNoRm90b2Nhc2FQYWdlKHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHsNCiAgICAgICAgY29uc3QgYnJvd3NlciA9IGF3YWl0IGNocm9taXVtLmxhdW5jaCh7DQogICAgICAgICAgICBoZWFkbGVzczogdHJ1ZSwNCiAgICAgICAgICAgIGFyZ3M6IFsNCiAgICAgICAgICAgICAgICAiLS1kaXNhYmxlLWJsaW5rLWZlYXR1cmVzPUF1dG9tYXRpb25Db250cm9sbGVkIiwNCiAgICAgICAgICAgICAgICAiLS1uby1zYW5kYm94IiwNCiAgICAgICAgICAgICAgICAiLS1kaXNhYmxlLXNldHVpZC1zYW5kYm94IiwNCiAgICAgICAgICAgIF0sDQogICAgICAgIH0pOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCh7DQogICAgICAgICAgICAgICAgdmlld3BvcnQ6IHsgd2lkdGg6IDEyODAsIGhlaWdodDogODAwIH0sDQogICAgICAgICAgICAgICAgbG9jYWxlOiAiZXMtRVMiLA0KICAgICAgICAgICAgICAgIHRpbWV6b25lSWQ6ICJFdXJvcGUvTWFkcmlkIiwNCiAgICAgICAgICAgICAgICB1c2VyQWdlbnQ6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTIwLjAuMC4wIFNhZmFyaS81MzcuMzYiLA0KICAgICAgICAgICAgICAgIGphdmFTY3JpcHRFbmFibGVkOiB0cnVlLA0KICAgICAgICAgICAgICAgIGlnbm9yZUhUVFBTRXJyb3JzOiB0cnVlLA0KICAgICAgICAgICAgICAgIGV4dHJhSFRUUEhlYWRlcnM6IHsNCiAgICAgICAgICAgICAgICAgICAgIkFjY2VwdC1MYW5ndWFnZSI6ICJlcy1FUyxlcztxPTAuOSIsDQogICAgICAgICAgICAgICAgICAgICJBY2NlcHQiOiAidGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2UvYXZpZixpbWFnZS93ZWJwLCovKjtxPTAuOCIsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhd2FpdCBjb250ZXh0LmFkZEluaXRTY3JpcHQoKCkgPT4gew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICJ3ZWJkcml2ZXIiLCB7IGdldDogKCkgPT4gdW5kZWZpbmVkIH0pOw0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICJsYW5ndWFnZXMiLCB7IGdldDogKCkgPT4gWyJlcy1FUyIsICJlcyJdIH0pOw0KICAgICAgICAgICAgICAgICh3aW5kb3cgYXMgYW55KS5jaHJvbWUgPSB7IHJ1bnRpbWU6IHt9IH07DQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IGNvbnRleHQubmV3UGFnZSgpOw0KDQogICAgICAgICAgICAvLyBuZXR3b3JraWRsZSBlc3BlcmEgYSBxdWUgbGEgU1BBIGNvbXBsZXRlIHRvZGFzIHN1cyBwZXRpY2lvbmVzDQogICAgICAgICAgICBhd2FpdCBwYWdlLmdvdG8odXJsLCB7IHdhaXRVbnRpbDogIm5ldHdvcmtpZGxlIiwgdGltZW91dDogdGhpcy5wYWdlVGltZW91dE1zIH0pOw0KDQogICAgICAgICAgICAvLyBEaXNtaXNzIGNvb2tpZSBiYW5uZXIgc2kgYXBhcmVjZQ0KICAgICAgICAgICAgYXdhaXQgdGhpcy5kaXNtaXNzQ29va2llQmFubmVyKHBhZ2UpOw0KDQogICAgICAgICAgICAvLyBTY3JvbGwgcGFyYSBhY3RpdmFyIGxhenkgbG9hZGluZyBkZSBGb3RvY2FzYQ0KICAgICAgICAgICAgYXdhaXQgcGFnZS5ldmFsdWF0ZSgoKSA9PiB3aW5kb3cuc2Nyb2xsQnkoMCwgNjAwKSk7DQogICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMjAwMCkpOw0KICAgICAgICAgICAgYXdhaXQgcGFnZS5ldmFsdWF0ZSgoKSA9PiB3aW5kb3cuc2Nyb2xsQnkoMCwgMTIwMCkpOw0KICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDE1MDApKTsNCg0KICAgICAgICAgICAgLy8gQ29udGFyIGFydMOtY3Vsb3MgcmVhbGVzIHBhcmEgZGlhZ27Ds3N0aWNvDQogICAgICAgICAgICBjb25zdCBhcnRpY2xlQ291bnQgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKA0KICAgICAgICAgICAgICAgICgpID0+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FydGljbGUgaDMgYVtocmVmXScpLmxlbmd0aA0KICAgICAgICAgICAgKS5jYXRjaCgoKSA9PiAwKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbJHt0aGlzLnNvdXJjZU5hbWV9XSAke3VybH0g4oaSICR7YXJ0aWNsZUNvdW50fSBhcnTDrWN1bG9zIGNvbiBsaW5rIHJlYWxgKTsNCg0KICAgICAgICAgICAgY29uc3QgaHRtbCA9IGF3YWl0IHBhZ2UuY29udGVudCgpOw0KICAgICAgICAgICAgcmV0dXJuIGh0bWw7DQogICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHsNCiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFske3RoaXMuc291cmNlTmFtZX1dIEVycm9yIFBsYXl3cmlnaHQgZW4gJHt1cmx9OiAke2Vycm9yLm1lc3NhZ2V9YCk7DQogICAgICAgICAgICByZXR1cm4gIiI7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBhd2FpdCBicm93c2VyLmNsb3NlKCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBwcml2YXRlIHBhcnNlSHRtbCgNCiAgICAgICAgaHRtbDogc3RyaW5nLA0KICAgICAgICBzbHVnOiBzdHJpbmcsDQogICAgICAgIHpvbmVzOiBab25lW10sDQogICAgICAgIHNlZW5VcmxzOiBTZXQ8c3RyaW5nPiwNCiAgICAgICAgem9uZUxhYmVsPzogc3RyaW5nDQogICAgKTogUHJvcGVydHlbXSB7DQogICAgICAgIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQoaHRtbCk7DQogICAgICAgIGNvbnN0IHJlc3VsdHM6IFByb3BlcnR5W10gPSBbXTsNCg0KICAgICAgICAkKCdhcnRpY2xlJykuZWFjaCgoX2ksIGVsKSA9PiB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIC8vIFNvbG8gdGFyamV0YXMgY29uIGxpbmsgcmVhbCAobm8gZXNxdWVsZXRvcykNCiAgICAgICAgICAgICAgICBjb25zdCBocmVmID0NCiAgICAgICAgICAgICAgICAgICAgJChlbCkuZmluZCgiaDMgYVtocmVmKj0nL2VzL2NvbXByYXIvJ10sIGgzIGFbaHJlZio9Jy9lcy9hbHF1aWxlci8nXSIpLmZpcnN0KCkuYXR0cigiaHJlZiIpIHx8DQogICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoImFbaHJlZio9Jy9lcy9jb21wcmFyLyddLCBhW2hyZWYqPScvZXMvYWxxdWlsZXIvJ10iKS5maXJzdCgpLmF0dHIoImhyZWYiKSB8fCAiIjsNCiAgICAgICAgICAgICAgICBpZiAoIWhyZWYpIHJldHVybjsNCiAgICAgICAgICAgICAgICBjb25zdCBhYnNVcmwgPSBocmVmLnN0YXJ0c1dpdGgoImh0dHAiKSA/IGhyZWYgOiBgJHt0aGlzLmJhc2VVcmx9JHtocmVmfWA7DQogICAgICAgICAgICAgICAgaWYgKHNlZW5VcmxzLmhhcyhhYnNVcmwpKSByZXR1cm47DQogICAgICAgICAgICAgICAgc2VlblVybHMuYWRkKGFic1VybCk7DQoNCiAgICAgICAgICAgICAgICAvLyBUw610dWxvDQogICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNhbml0aXplVGV4dCgNCiAgICAgICAgICAgICAgICAgICAgJChlbCkuZmluZCgiaDMiKS50ZXh0KCkgfHwgIlByb3BpZWRhZCBlbiBMbGlyaWEiDQogICAgICAgICAgICAgICAgKTsNCg0KICAgICAgICAgICAgICAgIC8vIFByZWNpbzogYnVzY2FyIHNwYW4vZGl2IGNvbiBwYXRyw7NuICIyNDAuMDAwIOKCrCINCiAgICAgICAgICAgICAgICBsZXQgcHJpY2VSYXcgPSAiIjsNCiAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCJzcGFuLCBkaXYiKS5lYWNoKChfaiwgZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gJChlKS50ZXh0KCkudHJpbSgpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXByaWNlUmF3ICYmIC9eXGRbXGQuLFxzXSrigqwvLnRlc3QodCkpIHByaWNlUmF3ID0gdDsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBjb25zdCBwcmljZSA9IHRoaXMucGFyc2VQcmljZShwcmljZVJhdyk7DQogICAgICAgICAgICAgICAgaWYgKHByaWNlIDw9IDApIHJldHVybjsNCg0KICAgICAgICAgICAgICAgIC8vIExvY2FsaXphY2nDs246IHVzYXIgZWwgbm9tYnJlIGRlIGxhIHpvbmEgZGlyZWN0YW1lbnRlIHBhcmEgZXZpdGFyIGNhcHR1cmFyDQogICAgICAgICAgICAgICAgLy8gdGV4dG8gZXh0cmEgZGVsIGFsdCBkZSBpbWFnZW4gKHAuZWouICJDYXNhIGVuIHZlbnRhIGVuIEJlbmFndWFzaWwgY29uIEFpcmUgYWNvbmRpY2lvbmFkbyIpDQogICAgICAgICAgICAgICAgY29uc3Qgem9uZU9iaiA9IHpvbmVzLmZpbmQoeiA9PiB6LnNsdWcgPT09IHNsdWcpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gem9uZU9iaj8ubmFtZSB8fCB6b25lTGFiZWwgfHwgdGhpcy5zYW5pdGl6ZVRleHQoc2x1Zyk7Cg0KICAgICAgICAgICAgICAgIC8vIEhhYml0YWNpb25lcyB5IHN1cGVyZmljaWUNCiAgICAgICAgICAgICAgICBsZXQgcm9vbXMgPSAwLCBzaXplX20yID0gMDsNCiAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCJsaSIpLmVhY2goKF9qLCBsaSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB0eHQgPSAkKGxpKS50ZXh0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJtID0gdHh0Lm1hdGNoKC8oXGQrKVxzKmhhYnM/L2kpOw0KICAgICAgICAgICAgICAgICAgICBpZiAocm0pIHJvb21zID0gcGFyc2VJbnQocm1bMV0pOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzbSA9IHR4dC5tYXRjaCgvKFxkKylccyptwrIvaSk7DQogICAgICAgICAgICAgICAgICAgIGlmIChzbSkgc2l6ZV9tMiA9IHBhcnNlSW50KHNtWzFdKTsNCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgICAgIC8vIEltYWdlbg0KICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlX3VybCA9DQogICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoInBpY3R1cmUgaW1nIikuZmlyc3QoKS5hdHRyKCJzcmMiKSB8fA0KICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCJpbWciKS5maXJzdCgpLmF0dHIoInNyYyIpIHx8ICIiOw0KDQogICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgdGl0bGUsIHByaWNlLCBsb2NhdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgbXVuaWNpcGFsaXR5OiB6b25lTGFiZWwgJiYgem9uZUxhYmVsLmluY2x1ZGVzKCJWYWxlbmNpYSIpID8gIlZhbGVuY2lhIiA6IHRoaXMuZGV0ZWN0TXVuaWNpcGFsaXR5KGxvY2F0aW9uICsgIiAiICsgc2x1Zywgem9uZXMpLA0KICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eV90eXBlOiB0aGlzLm5vcm1hbGl6ZVR5cGUodGl0bGUpLA0KICAgICAgICAgICAgICAgICAgICByb29tcywgc2l6ZV9tMiwNCiAgICAgICAgICAgICAgICAgICAgdXJsOiBhYnNVcmwsDQogICAgICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VOYW1lLA0KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25fdHlwZTogdGhpcy5fb3BlcmF0aW9uVHlwZSwNCiAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsLA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfSBjYXRjaCB7IC8qIHNraXAgKi8gfQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gcmVzdWx0czsNCiAgICB9DQp9DQo=","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\globalizaScraper.ts","beforeExisted":true,"beforeHash":"413adc4ed70b0bce35f45dd83380c1a7b85c22186377ef592d7e66fa9922f23b","beforeContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCg0KLyoqDQogKiBTY3JhcGVyIHBhcmEgR2xvYmFsaXphIChwb3J0YWwgaW5tb2JpbGlhcmlvIGNvbiBmdWVydGUgcHJlc2VuY2lhIGVuIENvbXVuaWRhZCBWYWxlbmNpYW5hKQ0KICogVVJMOiBodHRwczovL3d3dy5nbG9iYWxpemEuY29tL3ZlbnRhL3ZpdmllbmRhcy97c2x1Z30NCiAqIFBhZ2luYWNpw7NuOiA/cGFnaW5hQW51bmNpb3M9Mg0KICovDQpleHBvcnQgY2xhc3MgR2xvYmFsaXphU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyIHsNCiAgICBwcml2YXRlIHJlYWRvbmx5IE1BWF9QQUdFUyA9IDQ7DQogICAgY29uc3RydWN0b3IoKSB7IHN1cGVyKCJodHRwczovL3d3dy5nbG9iYWxpemEuY29tIiwgIkdsb2JhbGl6YSIpOyB9DQoNCiAgICBhc3luYyBzY3JhcGUoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7DQogICAgICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVab25lcygpOw0KICAgICAgICBjb25zdCBvcGVyYXRpb25QYXRoID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gImFscXVpbGVyIiA6ICJ2ZW50YSI7DQogICAgICAgIGNvbnN0IHRhcmdldHMgPSB6b25lcy5sZW5ndGggPiAwDQogICAgICAgICAgICA/IHpvbmVzDQogICAgICAgICAgICAgICAgLmZpbHRlcih6ID0+ICh6IGFzIGFueSkuZ2xvYmFsaXphX3NsdWcgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAubWFwKHogPT4gKHsgYmFzZVVybDogYCR7dGhpcy5iYXNlVXJsfS8ke29wZXJhdGlvblBhdGh9L3ZpdmllbmRhcy8keyh6IGFzIGFueSkuZ2xvYmFsaXphX3NsdWd9YCwgem9uZTogeiB9KSkNCiAgICAgICAgICAgIDogW3sgYmFzZVVybDogYCR7dGhpcy5iYXNlVXJsfS8ke29wZXJhdGlvblBhdGh9L3ZpdmllbmRhcy9sbGlyaWFgLCB6b25lOiB7IG5hbWU6ICJMbMOtcmlhIiwgc2x1ZzogImxsaXJpYSIgfSBhcyBhbnkgfV07DQoNCiAgICAgICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlbXSA9IFtdOw0KICAgICAgICBjb25zdCBzZWVuVXJscyA9IG5ldyBTZXQ8c3RyaW5nPigpOw0KDQogICAgICAgIGZvciAoY29uc3QgeyBiYXNlVXJsLCB6b25lIH0gb2YgdGFyZ2V0cykgew0KICAgICAgICAgICAgZm9yIChsZXQgcGFnZSA9IDE7IHBhZ2UgPD0gdGhpcy5NQVhfUEFHRVM7IHBhZ2UrKykgew0KICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHBhZ2UgPT09IDEgPyBiYXNlVXJsIDogYCR7YmFzZVVybH0/cGFnaW5hQW51bmNpb3M9JHtwYWdlfWA7DQogICAgICAgICAgICAgICAgY29uc3QgaHRtbCA9IGF3YWl0IHRoaXMuZmV0Y2hIdG1sKHVybCk7DQogICAgICAgICAgICAgICAgaWYgKCFodG1sIHx8IGh0bWwubGVuZ3RoIDwgMzAwMCkgYnJlYWs7DQogICAgICAgICAgICAgICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTsNCg0KICAgICAgICAgICAgICAgIGxldCBmb3VuZCA9IDA7DQogICAgICAgICAgICAgICAgJCgiaDIgYVtocmVmKj0nL2lubXVlYmxlLyddLCBoMiBhW2hyZWYqPScvZ2xvYmFsaXphLmNvbS9pbm11ZWJsZS8nXSIpLmVhY2goKF9pLCBlbCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gJChlbCkuYXR0cigiaHJlZiIpIHx8ICIiOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwyID0gaHJlZi5zdGFydHNXaXRoKCJodHRwIikgPyBocmVmIDogYCR7dGhpcy5iYXNlVXJsfSR7aHJlZn1gOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXVybDIgfHwgIXVybDIuaW5jbHVkZXMoIi9pbm11ZWJsZS8iKSB8fCBzZWVuVXJscy5oYXModXJsMikpIHJldHVybjsNCg0KICAgICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2FuaXRpemVUZXh0KCQoZWwpLnRleHQoKSk7DQogICAgICAgICAgICAgICAgICAgIGlmICghdGl0bGUgfHwgdGl0bGUubGVuZ3RoIDwgMykgcmV0dXJuOw0KDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhcmQgPSAkKGVsKS5jbG9zZXN0KCJhcnRpY2xlLCBsaSwgLnNyLWl0ZW0sIC5wcm9wZXJ0eS1pdGVtLCAubGlzdGluZy1pdGVtLCBbY2xhc3MqPSdpbm11ZWJsZSddIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhd0Jsb2NrID0gY2FyZC5sZW5ndGggPyBjYXJkLnRleHQoKSA6ICQoZWwpLnBhcmVudCgpLnBhcmVudCgpLnBhcmVudCgpLnRleHQoKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2VNYXRjaCA9IHJhd0Jsb2NrLm1hdGNoKC8oW1xkXXsyLDN9Wy4sXHNdW1xkXXszfSg/OlsuLFxzXVtcZF17M30pPylccyrigqwvKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2UgPSBwcmljZU1hdGNoID8gdGhpcy5wYXJzZVByaWNlKHByaWNlTWF0Y2hbMF0pIDogMDsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VfdXJsID0gY2FyZC5maW5kKCJpbWciKS5hdHRyKCJzcmMiKSB8fCBjYXJkLmZpbmQoImltZyIpLmF0dHIoImRhdGEtc3JjIikgfHwgIiI7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHByaWNlID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZW50YXIgZGV0ZWN0YXIgZWwgbXVuaWNpcGlvIHJlYWwgZGVzZGUgZWwgdMOtdHVsby4NCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIGEgem9uZS5uYW1lIGN1YW5kbyBlbCB0w610dWxvIG5vIG1lbmNpb25hIGNpdWRhZDoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzw60gbnVuY2Egc2UgZGVzY2FydGEgdW4gYW51bmNpbyBhY3Rpdm8gcG9yIGZhbHRhIGRlIGNvaW5jaWRlbmNpYS4NCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRldGVjdGVkTXVuaSA9IHRoaXMuZGV0ZWN0TXVuaWNpcGFsaXR5KHRpdGxlLCB6b25lcywgem9uZS5uYW1lKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlZW5VcmxzLmFkZCh1cmwyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kKys7DQogICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLCBwcmljZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogZGV0ZWN0ZWRNdW5pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bmljaXBhbGl0eTogZGV0ZWN0ZWRNdW5pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X3R5cGU6IHRoaXMubm9ybWFsaXplVHlwZSh0aXRsZSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGU6IHRoaXMuX29wZXJhdGlvblR5cGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmwyLCBzb3VyY2U6IHRoaXMuc291cmNlTmFtZSwgaW1hZ2VfdXJsLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgICAgIGlmIChmb3VuZCA8IDIpIGJyZWFrOyAvLyBTaW4gbcOhcyByZXN1bHRhZG9zIGVuIGVzdGEgcMOhZ2luYQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUmVzdWx0cyhwcm9wZXJ0aWVzKTsNCiAgICB9DQp9DQoNCg==","afterExisted":true,"afterHash":"17014fe5f7f1a2e5a1adce9867dd3429eca470697a0a500dc99fb36d9c7fbe4b","afterContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCg0KLyoqDQogKiBTY3JhcGVyIHBhcmEgR2xvYmFsaXphIChwb3J0YWwgaW5tb2JpbGlhcmlvIGNvbiBmdWVydGUgcHJlc2VuY2lhIGVuIENvbXVuaWRhZCBWYWxlbmNpYW5hKQ0KICogVVJMOiBodHRwczovL3d3dy5nbG9iYWxpemEuY29tL3ZlbnRhL3ZpdmllbmRhcy97c2x1Z30NCiAqIFBhZ2luYWNpw7NuOiA/cGFnaW5hQW51bmNpb3M9Mg0KICovDQpleHBvcnQgY2xhc3MgR2xvYmFsaXphU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyIHsNCiAgICBwcml2YXRlIHJlYWRvbmx5IE1BWF9QQUdFUyA9IDQ7DQogICAgY29uc3RydWN0b3IoKSB7IHN1cGVyKCJodHRwczovL3d3dy5nbG9iYWxpemEuY29tIiwgIkdsb2JhbGl6YSIpOyB9DQoNCiAgICBhc3luYyBzY3JhcGUoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7DQogICAgICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVab25lcygpOw0KICAgICAgICBjb25zdCBvcGVyYXRpb25QYXRoID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gImFscXVpbGVyIiA6ICJ2ZW50YSI7DQogICAgICAgIGNvbnN0IHRhcmdldHMgPSB6b25lcy5sZW5ndGggPiAwDQogICAgICAgICAgICA/IHpvbmVzDQogICAgICAgICAgICAgICAgLmZpbHRlcih6ID0+ICh6IGFzIGFueSkuZ2xvYmFsaXphX3NsdWcgIT0gbnVsbCkNCiAgICAgICAgICAgICAgICAubWFwKHogPT4gKHsgYmFzZVVybDogYCR7dGhpcy5iYXNlVXJsfS8ke29wZXJhdGlvblBhdGh9L3ZpdmllbmRhcy8keyh6IGFzIGFueSkuZ2xvYmFsaXphX3NsdWd9YCwgem9uZTogeiB9KSkNCiAgICAgICAgICAgIDogW3sgYmFzZVVybDogYCR7dGhpcy5iYXNlVXJsfS8ke29wZXJhdGlvblBhdGh9L3ZpdmllbmRhcy9sbGlyaWFgLCB6b25lOiB7IG5hbWU6ICJMbMOtcmlhIiwgc2x1ZzogImxsaXJpYSIgfSBhcyBhbnkgfV07DQoNCiAgICAgICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlbXSA9IFtdOw0KICAgICAgICBjb25zdCBzZWVuVXJscyA9IG5ldyBTZXQ8c3RyaW5nPigpOw0KDQogICAgICAgIGZvciAoY29uc3QgeyBiYXNlVXJsLCB6b25lIH0gb2YgdGFyZ2V0cykgew0KICAgICAgICAgICAgZm9yIChsZXQgcGFnZSA9IDE7IHBhZ2UgPD0gdGhpcy5NQVhfUEFHRVM7IHBhZ2UrKykgew0KICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHBhZ2UgPT09IDEgPyBiYXNlVXJsIDogYCR7YmFzZVVybH0/cGFnaW5hQW51bmNpb3M9JHtwYWdlfWA7DQogICAgICAgICAgICAgICAgY29uc3QgaHRtbCA9IGF3YWl0IHRoaXMuZmV0Y2hIdG1sKHVybCk7DQogICAgICAgICAgICAgICAgaWYgKCFodG1sIHx8IGh0bWwubGVuZ3RoIDwgMzAwMCkgYnJlYWs7DQogICAgICAgICAgICAgICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTsNCg0KICAgICAgICAgICAgICAgIGxldCBmb3VuZCA9IDA7DQogICAgICAgICAgICAgICAgJCgiaDIgYVtocmVmKj0nL2lubXVlYmxlLyddLCBoMiBhW2hyZWYqPScvZ2xvYmFsaXphLmNvbS9pbm11ZWJsZS8nXSIpLmVhY2goKF9pLCBlbCkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gJChlbCkuYXR0cigiaHJlZiIpIHx8ICIiOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwyID0gaHJlZi5zdGFydHNXaXRoKCJodHRwIikgPyBocmVmIDogYCR7dGhpcy5iYXNlVXJsfSR7aHJlZn1gOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXVybDIgfHwgIXVybDIuaW5jbHVkZXMoIi9pbm11ZWJsZS8iKSB8fCBzZWVuVXJscy5oYXModXJsMikpIHJldHVybjsNCg0KICAgICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2FuaXRpemVUZXh0KCQoZWwpLnRleHQoKSk7DQogICAgICAgICAgICAgICAgICAgIGlmICghdGl0bGUgfHwgdGl0bGUubGVuZ3RoIDwgMykgcmV0dXJuOw0KDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhcmQgPSAkKGVsKS5jbG9zZXN0KCJhcnRpY2xlLCBsaSwgLnNyLWl0ZW0sIC5wcm9wZXJ0eS1pdGVtLCAubGlzdGluZy1pdGVtLCBbY2xhc3MqPSdpbm11ZWJsZSddIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhd0Jsb2NrID0gY2FyZC5sZW5ndGggPyBjYXJkLnRleHQoKSA6ICQoZWwpLnBhcmVudCgpLnBhcmVudCgpLnBhcmVudCgpLnRleHQoKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVmVudGEgc3VlbGUgdXNhciAiMTUwLjAwMCDigqwiLCBwZXJvIGFscXVpbGVyIHVzYSB0YW1iacOpbgogICAgICAgICAgICAgICAgICAgIC8vICI5ODAg4oKsIiBvICIxLjIwMCDigqwiLiBMYSByZWdleCBhbnRlcmlvciBleGlnw61hIDItMwogICAgICAgICAgICAgICAgICAgIC8vIGTDrWdpdG9zIGFudGVzIGRlbCBzZXBhcmFkb3IgeSBkZXNjYXJ0YWJhIHRvZG9zIGVzb3MgY2Fzb3MuCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2VNYXRjaCA9IHJhd0Jsb2NrLm1hdGNoKAogICAgICAgICAgICAgICAgICAgICAgICAvKD86XGR7MSwzfSg/OlsuLFxzXVxkezN9KSt8XGR7Miw4fSkoPzosXGR7Mn0pP1xzKuKCrC91CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmljZSA9IHByaWNlTWF0Y2ggPyB0aGlzLnBhcnNlUHJpY2UocHJpY2VNYXRjaFswXSkgOiAwOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZV91cmwgPSBjYXJkLmZpbmQoImltZyIpLmF0dHIoInNyYyIpIHx8IGNhcmQuZmluZCgiaW1nIikuYXR0cigiZGF0YS1zcmMiKSB8fCAiIjsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAocHJpY2UgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnRlbnRhciBkZXRlY3RhciBlbCBtdW5pY2lwaW8gcmVhbCBkZXNkZSBlbCB0w610dWxvLg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgYSB6b25lLm5hbWUgY3VhbmRvIGVsIHTDrXR1bG8gbm8gbWVuY2lvbmEgY2l1ZGFkOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXPDrSBudW5jYSBzZSBkZXNjYXJ0YSB1biBhbnVuY2lvIGFjdGl2byBwb3IgZmFsdGEgZGUgY29pbmNpZGVuY2lhLg0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV0ZWN0ZWRNdW5pID0gdGhpcy5kZXRlY3RNdW5pY2lwYWxpdHkodGl0bGUsIHpvbmVzLCB6b25lLm5hbWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc2VlblVybHMuYWRkKHVybDIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQrKzsNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaCh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUsIHByaWNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBkZXRlY3RlZE11bmksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVuaWNpcGFsaXR5OiBkZXRlY3RlZE11bmksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfdHlwZTogdGhpcy5ub3JtYWxpemVUeXBlKHRpdGxlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25fdHlwZTogdGhpcy5fb3BlcmF0aW9uVHlwZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVybDIsIHNvdXJjZTogdGhpcy5zb3VyY2VOYW1lLCBpbWFnZV91cmwsDQogICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAgICAgaWYgKGZvdW5kIDwgMikgYnJlYWs7IC8vIFNpbiBtw6FzIHJlc3VsdGFkb3MgZW4gZXN0YSBww6FnaW5hDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVSZXN1bHRzKHByb3BlcnRpZXMpOw0KICAgIH0NCn0NCg0K","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\idealistaPlaywrightScraper.ts","beforeExisted":true,"beforeHash":"26cc94eef28090d6f3b693533d290a36c9256f741fc9ef282af69daae1b49119","beforeContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IGNocm9taXVtLCBCcm93c2VyQ29udGV4dCwgQnJvd3NlciB9IGZyb20gInBsYXl3cmlnaHQiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgVkFMRU5DSUFfRElTVFJJQ1RTIH0gZnJvbSAiLi4vY29uZmlnL3ZhbGVuY2lhRGlzdHJpY3RzIjsNCmltcG9ydCB7IFZhbGVuY2lhRGlzdHJpY3RNb2RlbCB9IGZyb20gIi4uL21vZGVscy92YWxlbmNpYURpc3RyaWN0TW9kZWwiOw0KDQovLyBTY3JpcHQgZGUgc3RlYWx0aCBwYXJhIGV2YWRpciBkZXRlY2Npw7NuIGRlIGJvdCAoY29tcGF0aWJsZSBjb24gSWRlYWxpc3RhL0RhdGFEb21lKQ0KY29uc3QgU1RFQUxUSF9JTklUX1NDUklQVCA9IGANCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICd3ZWJkcml2ZXInLCB7IGdldDogKCkgPT4gdW5kZWZpbmVkIH0pOw0Kd2luZG93LmNocm9tZSA9IHsNCiAgICBhcHA6IHsgaXNJbnN0YWxsZWQ6IGZhbHNlIH0sDQogICAgY3NpOiBmdW5jdGlvbigpIHt9LA0KICAgIGxvYWRUaW1lczogZnVuY3Rpb24oKSB7IHJldHVybiB7fTsgfSwNCiAgICBydW50aW1lOiB7fQ0KfTsNCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICdsYW5ndWFnZXMnLCB7IGdldDogKCkgPT4gWydlcy1FUycsICdlcycsICdlbi1VUycsICdlbiddIH0pOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KG5hdmlnYXRvciwgJ2hhcmR3YXJlQ29uY3VycmVuY3knLCB7IGdldDogKCkgPT4gOCB9KTsNCmlmICh0eXBlb2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0ICE9PSAndW5kZWZpbmVkJykgew0KICAgIGNvbnN0IGdldFBhcmFtZXRlciA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUuZ2V0UGFyYW1ldGVyOw0KICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUuZ2V0UGFyYW1ldGVyID0gZnVuY3Rpb24ocCkgew0KICAgICAgICBpZiAocCA9PT0gMzc0NDUpIHJldHVybiAnSW50ZWwgSW5jLic7DQogICAgICAgIGlmIChwID09PSAzNzQ0NikgcmV0dXJuICdJbnRlbChSKSBVSEQgR3JhcGhpY3MgNjIwJzsNCiAgICAgICAgcmV0dXJuIGdldFBhcmFtZXRlci5jYWxsKHRoaXMsIHApOw0KICAgIH07DQp9DQppZiAobmF2aWdhdG9yLnBlcm1pc3Npb25zICYmIG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSkgew0KICAgIGNvbnN0IG9yaWdRdWVyeSA9IG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeS5iaW5kKG5hdmlnYXRvci5wZXJtaXNzaW9ucyk7DQogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5hdmlnYXRvci5wZXJtaXNzaW9ucywgJ3F1ZXJ5Jywgew0KICAgICAgICB2YWx1ZTogKHApID0+IHAubmFtZSA9PT0gJ25vdGlmaWNhdGlvbnMnDQogICAgICAgICAgICA/IFByb21pc2UucmVzb2x2ZSh7IHN0YXRlOiBOb3RpZmljYXRpb24ucGVybWlzc2lvbiB9KQ0KICAgICAgICAgICAgOiBvcmlnUXVlcnkocCkNCiAgICB9KTsNCn0NCmA7DQoNCi8qKiBHZW5lcmEgZWwgdmFsb3IgZGVsIGNvb2tpZSBkaWRvbWlfdG9rZW4gY29uIGxhIGZlY2hhIGFjdHVhbCAqLw0KZnVuY3Rpb24gbWFrZURpZG9taVRva2VuKCk6IHN0cmluZyB7DQogICAgY29uc3Qgbm93SXNvID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGR7M31aJC8sICIuMDAwWiIpOw0KICAgIGNvbnN0IHBheWxvYWQgPSB7DQogICAgICAgIHVzZXJJZDogIjZmZWM1M2RkLWExOTctNmIyYi1iNDdiLWM4Mzk1ZDc5OTkyNyIsDQogICAgICAgIGNyZWF0ZWQ6IG5vd0lzbywNCiAgICAgICAgdXBkYXRlZDogbm93SXNvLA0KICAgICAgICB2ZXJzaW9uOiAyLA0KICAgICAgICB2ZW5kb3JzOiB7IGVuYWJsZWQ6IFtdIGFzIHN0cmluZ1tdIH0sDQogICAgICAgIHB1cnBvc2VzOiB7IGVuYWJsZWQ6IFtdIGFzIHN0cmluZ1tdIH0sDQogICAgfTsNCiAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpLnRvU3RyaW5nKCJiYXNlNjQiKTsNCn0NCg0KZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4gew0KICAgIHJldHVybiBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgbXMpKTsNCn0NCg0KLy8gU2x1Z3MgZXNwZWNpYWxlczogem9uYS5zbHVnIOKGkiBzbHVnIGRlIElkZWFsaXN0YSAoc2luIHN1ZmlqbyBkZSBwcm92aW5jaWEpDQpjb25zdCBpZGVhbGlzdGFTbHVnTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gew0KICAgICJlbGlhbmEiOiAibC1lbGlhbmEiLA0KICAgICJyaWJhLXJvamEiOiAicmliYS1yb2phLWRlLXR1cmlhIiwNCiAgICAicG9ibGEtZGUtdmFsbGJvbmEiOiAibGEtcG9ibGEtZGUtdmFsbGJvbmEiLA0KICAgICJ2aWxsYW1hcmNoYW50ZSI6ICJ2aWxhbWFyeGFudCIsDQp9Ow0KDQovLyBTdWZpam8gZGUgcHJvdmluY2lhIHBvciB6b25hIChwb3IgZGVmZWN0bzogIi12YWxlbmNpYSIpDQpjb25zdCBpZGVhbGlzdGFQcm92aW5jZVN1ZmZpeDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsNCiAgICAibW9uY29mYSI6ICItY2FzdGVsbG9uIiwNCn07DQoNCi8vIFpvbmFzIHF1ZSBzZSBvbWl0ZW4gZW4gSWRlYWxpc3RhIChkZW1hc2lhZG8gZ2Vuw6lyaWNhcyBvIHNpbiBww6FnaW5hIHByb3BpYSkNCmNvbnN0IGlkZWFsaXN0YVNraXAgPSBuZXcgU2V0PHN0cmluZz4oWyJ2YWxlbmNpYSJdKTsNCg0KZXhwb3J0IGNsYXNzIElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXIgew0KICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZVRpbWVvdXRNcyA9IDQ1MDAwOw0KICAgIHByaXZhdGUgYXN5bmMgZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMoKTogUHJvbWlzZTxBcnJheTx7IHNsdWc6IHN0cmluZzsgem9uZUxhYmVsOiBzdHJpbmcgfT4+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBWYWxlbmNpYURpc3RyaWN0TW9kZWwuZmluZEFjdGl2ZSgpOw0KICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJvd3MNCiAgICAgICAgICAgICAgICAuZmlsdGVyKHIgPT4gISFyLmlkZWFsaXN0YV9zbHVnKQ0KICAgICAgICAgICAgICAgIC5tYXAociA9PiAoeyBzbHVnOiByLmlkZWFsaXN0YV9zbHVnLCB6b25lTGFiZWw6IGAke3IubmFtZX0sIFZhbGVuY2lhYCB9KSk7DQogICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSByZXR1cm4gZGF0YTsNCiAgICAgICAgfSBjYXRjaCB7IC8qIGZhbGxiYWNrIHRvIHN0YXRpYyAqLyB9DQogICAgICAgIHJldHVybiBWQUxFTkNJQV9ESVNUUklDVFMubWFwKGQgPT4gKHsgc2x1ZzogZC5pZGVhbGlzdGEsIHpvbmVMYWJlbDogYCR7ZC5uYW1lfSwgVmFsZW5jaWFgIH0pKTsNCiAgICB9DQoNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoImh0dHBzOi8vd3d3LmlkZWFsaXN0YS5jb20iLCAiSWRlYWxpc3RhIik7DQogICAgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3QgdGFyZ2V0czogQXJyYXk8eyBzbHVnOiBzdHJpbmc7IHpvbmVMYWJlbD86IHN0cmluZyB9PiA9IFtdOw0KICAgICAgICBpZiAoem9uZXMubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgZm9yIChjb25zdCB6IG9mIHpvbmVzKSB7DQogICAgICAgICAgICAgICAgaWYgKHouc2x1ZyA9PT0gInZhbGVuY2lhIikgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0cmljdHMgPSBhd2FpdCB0aGlzLmdldFZhbGVuY2lhRGlzdHJpY3RUYXJnZXRzKCk7DQogICAgICAgICAgICAgICAgICAgIHRhcmdldHMucHVzaCguLi5kaXN0cmljdHMpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHRhcmdldHMucHVzaCh7IHNsdWc6IHouc2x1Zywgem9uZUxhYmVsOiB6Lm5hbWUgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKHsgc2x1ZzogImxsaXJpYSIsIHpvbmVMYWJlbDogIkxsw61yaWEiIH0pOw0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlbXSA9IFtdOw0KICAgICAgICBjb25zdCBzZWVuVXJscyA9IG5ldyBTZXQ8c3RyaW5nPigpOw0KDQogICAgICAgIGxldCBicm93c2VyOiBCcm93c2VyIHwgbnVsbCA9IG51bGw7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBicm93c2VyID0gYXdhaXQgY2hyb21pdW0ubGF1bmNoKHsNCiAgICAgICAgICAgICAgICBoZWFkbGVzczogdHJ1ZSwNCiAgICAgICAgICAgICAgICBhcmdzOiBbDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtYmxpbmstZmVhdHVyZXM9QXV0b21hdGlvbkNvbnRyb2xsZWQiLA0KICAgICAgICAgICAgICAgICAgICAiLS1uby1zYW5kYm94IiwNCiAgICAgICAgICAgICAgICAgICAgIi0tZGlzYWJsZS1zZXR1aWQtc2FuZGJveCIsDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtZGV2LXNobS11c2FnZSIsDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtZ3B1IiwNCiAgICAgICAgICAgICAgICAgICAgIi0tbGFuZz1lcy1FUyIsDQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBmb3IgKGNvbnN0IHQgb2YgdGFyZ2V0cykgew0KICAgICAgICAgICAgICAgIGNvbnN0IHNsdWcgPSB0LnNsdWc7DQogICAgICAgICAgICAgICAgaWYgKGlkZWFsaXN0YVNraXAuaGFzKHNsdWcpKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbSWRlYWxpc3RhXSBPbWl0aWVuZG8gJHtzbHVnfSAoem9uYSBtdXkgYW1wbGlhLCBzaW4gcMOhZ2luYSBlc3BlY8OtZmljYSlgKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnN0IGlkZWFsaXN0YVNsdWcgPSBpZGVhbGlzdGFTbHVnTWFwW3NsdWddID8/IHNsdWc7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvdmluY2UgPSBpZGVhbGlzdGFQcm92aW5jZVN1ZmZpeFtzbHVnXSA/PyAiLXZhbGVuY2lhIjsNCiAgICAgICAgICAgICAgICBjb25zdCBvcFBhdGggPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAiYWxxdWlsZXItdml2aWVuZGFzIiA6ICJ2ZW50YS12aXZpZW5kYXMiOw0KICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vJHtvcFBhdGh9LyR7aWRlYWxpc3RhU2x1Z30ke3Byb3ZpbmNlfS9gOw0KDQogICAgICAgICAgICAgICAgY29uc3QgcHJvcHMgPSBhd2FpdCB0aGlzLnNjcmFwZVpvbmUoYnJvd3NlciwgdXJsLCB6b25lcywgc2VlblVybHMsIHQuem9uZUxhYmVsKTsNCiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goLi4ucHJvcHMpOw0KDQogICAgICAgICAgICAgICAgLy8gUGF1c2EgYWxlYXRvcmlhIGVudHJlIHpvbmFzIHBhcmEgZXZpdGFyIGRldGVjY2nDs24NCiAgICAgICAgICAgICAgICBhd2FpdCBzbGVlcCgyMDAwICsgTWF0aC5yYW5kb20oKSAqIDIwMDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkgew0KICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW0lkZWFsaXN0YV0gRXJyb3IgZ2VuZXJhbDogJHtlcnIubWVzc2FnZX1gKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGlmIChicm93c2VyKSBhd2FpdCBicm93c2VyLmNsb3NlKCk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVJlc3VsdHMocHJvcGVydGllcyk7DQogICAgfQ0KDQogICAgLyoqIENhcmdhIHVuYSBVUkwgZGUgSWRlYWxpc3RhIHVzYW5kbyB1biBCcm93c2VyQ29udGV4dCBudWV2byB5IGRldnVlbHZlIGVsIEhUTUwgKi8NCiAgICBwcml2YXRlIGFzeW5jIGxvYWRQYWdlKGJyb3dzZXI6IEJyb3dzZXIsIHVybDogc3RyaW5nLCBpc0ZpcnN0UGFnZTogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7DQogICAgICAgIGxldCBjb250ZXh0OiBCcm93c2VyQ29udGV4dCB8IG51bGwgPSBudWxsOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCh7DQogICAgICAgICAgICAgICAgdmlld3BvcnQ6IHsgd2lkdGg6IDEzNjYsIGhlaWdodDogNzY4IH0sDQogICAgICAgICAgICAgICAgbG9jYWxlOiAiZXMtRVMiLA0KICAgICAgICAgICAgICAgIHRpbWV6b25lSWQ6ICJFdXJvcGUvTWFkcmlkIiwNCiAgICAgICAgICAgICAgICB1c2VyQWdlbnQ6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMxLjAuMC4wIFNhZmFyaS81MzcuMzYiLA0KICAgICAgICAgICAgICAgIGV4dHJhSFRUUEhlYWRlcnM6IHsNCiAgICAgICAgICAgICAgICAgICAgIkFjY2VwdC1MYW5ndWFnZSI6ICJlcy1FUyxlcztxPTAuOSxlbi1VUztxPTAuOCxlbjtxPTAuNyIsDQogICAgICAgICAgICAgICAgICAgICJBY2NlcHQiOiAidGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2UvYXZpZixpbWFnZS93ZWJwLCovKjtxPTAuOCIsDQogICAgICAgICAgICAgICAgICAgICJSZWZlcmVyIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIiwNCiAgICAgICAgICAgICAgICAgICAgIlNlYy1GZXRjaC1EZXN0IjogImRvY3VtZW50IiwNCiAgICAgICAgICAgICAgICAgICAgIlNlYy1GZXRjaC1Nb2RlIjogIm5hdmlnYXRlIiwNCiAgICAgICAgICAgICAgICAgICAgIlNlYy1GZXRjaC1TaXRlIjogImNyb3NzLXNpdGUiLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUNILVVBIjogJyJDaHJvbWl1bSI7dj0iMTMxIiwgIkdvb2dsZSBDaHJvbWUiO3Y9IjEzMSIsICJOb3RfQSBCcmFuZCI7dj0iMjQiJywNCiAgICAgICAgICAgICAgICAgICAgIlNlYy1DSC1VQS1Nb2JpbGUiOiAiPzAiLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUNILVVBLVBsYXRmb3JtIjogJyJXaW5kb3dzIicsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhd2FpdCBjb250ZXh0LmFkZEluaXRTY3JpcHQoU1RFQUxUSF9JTklUX1NDUklQVCk7DQoNCiAgICAgICAgICAgIC8vIFByZS1zZXRlYXIgY29va2llcyBEaWRvbWkNCiAgICAgICAgICAgIGF3YWl0IGNvbnRleHQuYWRkQ29va2llcyhbDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZGlkb21pX3Rva2VuIiwNCiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG1ha2VEaWRvbWlUb2tlbigpLA0KICAgICAgICAgICAgICAgICAgICBkb21haW46ICIuaWRlYWxpc3RhLmNvbSIsIHBhdGg6ICIvIiwgc2FtZVNpdGU6ICJOb25lIiBhcyBjb25zdCwgc2VjdXJlOiB0cnVlLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXVjb25zZW50LXYyIiwNCiAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICJDUHdKZGtBUHdKZGtBRXNBQkJFU0NnQUFBQUFBQUFBQUFBQUFBQUFBQUEuWUFBQUFBQUFBQUFBIiwNCiAgICAgICAgICAgICAgICAgICAgZG9tYWluOiAiLmlkZWFsaXN0YS5jb20iLCBwYXRoOiAiLyIsIHNhbWVTaXRlOiAiTm9uZSIgYXMgY29uc3QsIHNlY3VyZTogdHJ1ZSwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgXSk7DQoNCiAgICAgICAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBjb250ZXh0Lm5ld1BhZ2UoKTsNCiAgICAgICAgICAgIGF3YWl0IHBhZ2UuZ290byh1cmwsIHsgd2FpdFVudGlsOiAiZG9tY29udGVudGxvYWRlZCIsIHRpbWVvdXQ6IHRoaXMucGFnZVRpbWVvdXRNcyB9KTsNCiAgICAgICAgICAgIGF3YWl0IHNsZWVwKDgwMCk7DQoNCiAgICAgICAgICAgIC8vIERldGVjdGFyIGJsb3F1ZW8gcG9yIERhdGFEb21lIG8gYW50aWJvdA0KICAgICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHBhZ2UudXJsKCk7DQogICAgICAgICAgICBjb25zdCBwYWdlVGl0bGUgPSBhd2FpdCBwYWdlLnRpdGxlKCkuY2F0Y2goKCkgPT4gIiIpOw0KICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgIGN1cnJlbnRVcmwuaW5jbHVkZXMoIi9hbnRpYm90LyIpIHx8DQogICAgICAgICAgICAgICAgY3VycmVudFVybC5pbmNsdWRlcygiZGF0YWRvbWUiKSB8fA0KICAgICAgICAgICAgICAgIGN1cnJlbnRVcmwuaW5jbHVkZXMoImNhcHRjaGEiKSB8fA0KICAgICAgICAgICAgICAgIHBhZ2VUaXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJyb2JvdCIpIHx8DQogICAgICAgICAgICAgICAgcGFnZVRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImNhcHRjaGEiKQ0KICAgICAgICAgICAgKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBbSWRlYWxpc3RhXSBCbG9xdWVhZG8gcG9yIGFudGlib3QgZW4gJHt1cmx9IC0gc2FsdGFuZG9gKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gIiI7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChpc0ZpcnN0UGFnZSkgew0KICAgICAgICAgICAgICAgIC8vIFNvbG8gZW4gbGEgcHJpbWVyYSBww6FnaW5hIGFjZXB0YW1vcyBjb29raWVzIHkgZXNwZXJhbW9zIG5ldHdvcmtpZGxlDQogICAgICAgICAgICAgICAgYXdhaXQgcGFnZS5ldmFsdWF0ZSgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHRyeSB7IGlmICgod2luZG93IGFzIGFueSkuRGlkb21pPy5zZXRVc2VyQWdyZWVUb0FsbCkgKHdpbmRvdyBhcyBhbnkpLkRpZG9taS5zZXRVc2VyQWdyZWVUb0FsbCgpOyB9IGNhdGNoIHsgLyogaWdub3JlICovIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBhd2FpdCBwYWdlLndhaXRGb3JMb2FkU3RhdGUoIm5ldHdvcmtpZGxlIiwgeyB0aW1lb3V0OiAyMDAwMCB9KS5jYXRjaCgoKSA9PiB7IH0pOw0KICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKDgwMCk7DQogICAgICAgICAgICAgICAgYXdhaXQgcGFnZS5sb2NhdG9yKCIjZGlkb21pLW5vdGljZS1hZ3JlZS1idXR0b24sIC5kaWRvbWktY29udGludWUtYnRuIikuZmlyc3QoKQ0KICAgICAgICAgICAgICAgICAgICAuY2xpY2soeyB0aW1lb3V0OiAyMDAwLCBmb3JjZTogdHJ1ZSB9KS5jYXRjaCgoKSA9PiB7IH0pOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAvLyBQw6FnaW5hcyBzaWd1aWVudGVzOiBuZXR3b3JraWRsZSBub3JtYWxtZW50ZSBlcyBtw6FzIHLDoXBpZG8NCiAgICAgICAgICAgICAgICBhd2FpdCBwYWdlLndhaXRGb3JMb2FkU3RhdGUoIm5ldHdvcmtpZGxlIiwgeyB0aW1lb3V0OiAxNTAwMCB9KS5jYXRjaCgoKSA9PiB7IH0pOw0KICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKDUwMCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGNvbnN0IGZvdW5kID0gYXdhaXQgcGFnZS53YWl0Rm9yU2VsZWN0b3IoImFydGljbGUuaXRlbSIsIHsgdGltZW91dDogODAwMCB9KQ0KICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRydWUpLmNhdGNoKCgpID0+IGZhbHNlKTsNCg0KICAgICAgICAgICAgaWYgKCFmb3VuZCkgcmV0dXJuICIiOw0KICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHBhZ2UuY29udGVudCgpOw0KICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkgew0KICAgICAgICAgICAgY29uc29sZS53YXJuKGBbSWRlYWxpc3RhXSBFcnJvciBjYXJnYW5kbyAke3VybH06ICR7ZXJyLm1lc3NhZ2V9YCk7DQogICAgICAgICAgICByZXR1cm4gIiI7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBpZiAoY29udGV4dCkgYXdhaXQgY29udGV4dC5jbG9zZSgpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqIEV4dHJhZSBlbCBuw7ptZXJvIG3DoXhpbW8gZGUgcMOhZ2luYSBkZWwgSFRNTCAqLw0KICAgIHByaXZhdGUgZ2V0TGFzdFBhZ2UoaHRtbDogc3RyaW5nKTogbnVtYmVyIHsNCiAgICAgICAgLy8gSWRlYWxpc3RhIHBhZ2luYSBjb24gdXJsIC4uLi9wYWdpbmEtTiDigJQgYnVzY2Ftb3MgZWwgbcOheGltbyBlbiBsb3MgbGlua3MgZGVsIHBhZ2luYWRvcg0KICAgICAgICBjb25zdCBtYXRjaGVzID0gaHRtbC5tYXRjaCgvcGFnaW5hLShcZCspL2cpIHx8IFtdOw0KICAgICAgICBjb25zdCBudW1zID0gbWF0Y2hlcy5tYXAobSA9PiBwYXJzZUludChtLnJlcGxhY2UoInBhZ2luYS0iLCAiIiksIDEwKSk7DQogICAgICAgIHJldHVybiBudW1zLmxlbmd0aCA+IDAgPyBNYXRoLm1heCguLi5udW1zKSA6IDE7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogRXh0cmFlIGxhIGRpcmVjY2nDs24gbGltcGlhIGRlbCB0w610dWxvIGRlIElkZWFsaXN0YS4NCiAgICAgKiBFajogIlBpc28gZW4gdmVudGEgZW4gQ2FsbGUgTWF5b3IsIExsw61yaWEiIOKGkiAiQ2FsbGUgTWF5b3IsIExsw61yaWEiDQogICAgICovDQogICAgcHJpdmF0ZSBleHRyYWN0QWRkcmVzcyhmdWxsVGl0bGU6IHN0cmluZyk6IHN0cmluZyB7DQogICAgICAgIHJldHVybiBmdWxsVGl0bGUNCiAgICAgICAgICAgIC5yZXBsYWNlKC9eKHBpc298Y2FzYXxjaGFsZXR8ZFx1MDBmYXBsZXh8XHUwMGUxdGljb3xhcGFydGFtZW50b3xlc3R1ZGlvfGxvY2FsfGdhcmFqZXx0ZXJyZW5vKVxzK2VuXHMrKHZlbnRhfGFscXVpbGVyKVxzK2VuXHMrL2ksICIiKQ0KICAgICAgICAgICAgLnRyaW0oKSB8fCBmdWxsVGl0bGU7DQogICAgfQ0KDQogICAgLyoqIFBhcnNlYSBsb3MgYXJ0aWNsZS5pdGVtIGRlbCBIVE1MIHkgZGV2dWVsdmUgbGFzIHByb3BpZWRhZGVzICovDQogICAgcHJpdmF0ZSBwYXJzZUl0ZW1zKA0KICAgICAgICBodG1sOiBzdHJpbmcsDQogICAgICAgIHpvbmVzOiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHRoaXMuZ2V0QWN0aXZlWm9uZXM+PiwNCiAgICAgICAgc2VlblVybHM6IFNldDxzdHJpbmc+LA0KICAgICAgICB6b25lTGFiZWw/OiBzdHJpbmcNCiAgICApOiBQcm9wZXJ0eVtdIHsNCiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBbXTsNCiAgICAgICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTsNCg0KICAgICAgICAkKCJhcnRpY2xlLml0ZW0iKS5lYWNoKChfaSwgZWwpID0+IHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgbGlua0VsID0gJChlbCkuZmluZCgiYS5pdGVtLWxpbmsiKTsNCiAgICAgICAgICAgICAgICBjb25zdCBmdWxsVGl0bGUgPSB0aGlzLnNhbml0aXplVGV4dChsaW5rRWwuYXR0cigidGl0bGUiKSB8fCBsaW5rRWwudGV4dCgpKTsNCiAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gbGlua0VsLmF0dHIoImhyZWYiKSB8fCAiIjsNCiAgICAgICAgICAgICAgICBjb25zdCBhYnNVcmwgPSBocmVmLnN0YXJ0c1dpdGgoImh0dHAiKSA/IGhyZWYgOiBgJHt0aGlzLmJhc2VVcmx9JHtocmVmfWA7DQoNCiAgICAgICAgICAgICAgICAvLyBQcmVjaW86IGludGVudGFyIHNlbGVjdG9yIGVzcGVjw61maWNvLCBsdWVnbyBnZW7DqXJpY28NCiAgICAgICAgICAgICAgICBjb25zdCBwcmljZVRleHQgPSB0aGlzLnNhbml0aXplVGV4dCgNCiAgICAgICAgICAgICAgICAgICAgJChlbCkuZmluZCgiLml0ZW0tcHJpY2UgaDIsIC5wcmljZS1yb3cgLml0ZW0tcHJpY2UsIC5pdGVtLXByaWNlIikuZmlyc3QoKS50ZXh0KCkNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5wYXJzZVByaWNlKHByaWNlVGV4dCk7DQoNCiAgICAgICAgICAgICAgICAvLyBIYWJpdGFjaW9uZXMgeSBtwrIgYnVzY2FuZG8gcG9yIHRleHRvIGRlbCBkZXRhbGxlIChtw6FzIHJvYnVzdG8gcXVlIHBvciBwb3NpY2nDs24pDQogICAgICAgICAgICAgICAgbGV0IHJvb21zID0gMDsNCiAgICAgICAgICAgICAgICBsZXQgc2l6ZV9tMiA9IDA7DQogICAgICAgICAgICAgICAgJChlbCkuZmluZCgiLml0ZW0tZGV0YWlsIikuZWFjaCgoX2osIGRldEVsKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSAkKGRldEVsKS50ZXh0KCkudHJpbSgpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIXJvb21zICYmIC9oYWIvaS50ZXN0KHQpKSByb29tcyA9IHBhcnNlSW50KHQpIHx8IDA7DQogICAgICAgICAgICAgICAgICAgIGlmICghc2l6ZV9tMiAmJiAvbVx1MDBiMi9pLnRlc3QodCkpIHNpemVfbTIgPSBwYXJzZUludCh0KSB8fCAwOw0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VfdXJsID0gJChlbCkuZmluZCgicGljdHVyZSBpbWciKS5hdHRyKCJzcmMiKQ0KICAgICAgICAgICAgICAgICAgICB8fCAkKGVsKS5maW5kKCJpbWciKS5maXJzdCgpLmF0dHIoInNyYyIpIHx8ICIiOw0KDQogICAgICAgICAgICAgICAgLy8gRGlyZWNjacOzbiBsaW1waWE6IHF1aXRhciDCq1Bpc28gZW4gdmVudGEgZW7CuyBkZWwgaW5pY2lvDQogICAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmV4dHJhY3RBZGRyZXNzKGZ1bGxUaXRsZSk7DQoNCiAgICAgICAgICAgICAgICBpZiAocHJpY2UgPiAwICYmIGZ1bGxUaXRsZSAmJiAhc2VlblVybHMuaGFzKGFic1VybCkpIHsNCiAgICAgICAgICAgICAgICAgICAgc2VlblVybHMuYWRkKGFic1VybCk7DQogICAgICAgICAgICAgICAgICAgIHByb3BzLnB1c2goew0KICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGZ1bGxUaXRsZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHByaWNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgICAgICBtdW5pY2lwYWxpdHk6IHpvbmVMYWJlbCAmJiB6b25lTGFiZWwuaW5jbHVkZXMoIlZhbGVuY2lhIikgPyAiVmFsZW5jaWEiIDogdGhpcy5kZXRlY3RNdW5pY2lwYWxpdHkobG9jYXRpb24sIHpvbmVzKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X3R5cGU6IHRoaXMubm9ybWFsaXplVHlwZShmdWxsVGl0bGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGU6IHRoaXMuX29wZXJhdGlvblR5cGUsDQogICAgICAgICAgICAgICAgICAgICAgICByb29tcywgc2l6ZV9tMiwNCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYWJzVXJsLCBzb3VyY2U6IHRoaXMuc291cmNlTmFtZSwgaW1hZ2VfdXJsLA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIHsgLyogc2tpcCBtYWxmb3JtZWQgKi8gfQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gcHJvcHM7DQogICAgfQ0KDQogICAgcHJpdmF0ZSBhc3luYyBzY3JhcGVab25lKA0KICAgICAgICBicm93c2VyOiBCcm93c2VyLA0KICAgICAgICBiYXNlWm9uZVVybDogc3RyaW5nLA0KICAgICAgICB6b25lczogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmdldEFjdGl2ZVpvbmVzPj4sDQogICAgICAgIHNlZW5VcmxzOiBTZXQ8c3RyaW5nPiwNCiAgICAgICAgem9uZUxhYmVsPzogc3RyaW5nDQogICAgKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7DQogICAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gW107DQoNCiAgICAgICAgLy8gUMOhZ2luYSAxDQogICAgICAgIGNvbnN0IGh0bWwxID0gYXdhaXQgdGhpcy5sb2FkUGFnZShicm93c2VyLCBiYXNlWm9uZVVybCwgdHJ1ZSk7DQogICAgICAgIGlmICghaHRtbDEpIHsNCiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0lkZWFsaXN0YV0gU2luIGFydMOtY3Vsb3MgZW4gJHtiYXNlWm9uZVVybH1gKTsNCiAgICAgICAgICAgIHJldHVybiBwcm9wczsNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IHBhZ2UxUHJvcHMgPSB0aGlzLnBhcnNlSXRlbXMoaHRtbDEsIHpvbmVzLCBzZWVuVXJscywgem9uZUxhYmVsKTsNCiAgICAgICAgcHJvcHMucHVzaCguLi5wYWdlMVByb3BzKTsNCg0KICAgICAgICBjb25zdCBsYXN0UGFnZSA9IHRoaXMuZ2V0TGFzdFBhZ2UoaHRtbDEpOw0KICAgICAgICBjb25zb2xlLmxvZyhgW0lkZWFsaXN0YV0gJHtiYXNlWm9uZVVybH0g4oaSICR7cGFnZTFQcm9wcy5sZW5ndGh9IHByb3BzIChww6FnIDEvJHtsYXN0UGFnZX0pYCk7DQoNCiAgICAgICAgLy8gUMOhZ2luYXMgMi4ubGFzdFBhZ2UgKG3DoXggNSBwYXJhIGV2aXRhciBkZW1hc2lhZGFzIHBldGljaW9uZXMpDQogICAgICAgIGNvbnN0IG1heFBhZ2VzID0gTWF0aC5taW4obGFzdFBhZ2UsIDUpOw0KICAgICAgICBmb3IgKGxldCBwID0gMjsgcCA8PSBtYXhQYWdlczsgcCsrKSB7DQogICAgICAgICAgICBhd2FpdCBzbGVlcCgxNTAwICsgTWF0aC5yYW5kb20oKSAqIDE1MDApOw0KICAgICAgICAgICAgY29uc3QgcGFnZVVybCA9IGAke2Jhc2Vab25lVXJsfXBhZ2luYS0ke3B9Lmh0bWA7DQogICAgICAgICAgICBjb25zdCBodG1sTiA9IGF3YWl0IHRoaXMubG9hZFBhZ2UoYnJvd3NlciwgcGFnZVVybCwgZmFsc2UpOw0KICAgICAgICAgICAgaWYgKCFodG1sTikgYnJlYWs7DQoNCiAgICAgICAgICAgIGNvbnN0IHBhZ2VQcm9wcyA9IHRoaXMucGFyc2VJdGVtcyhodG1sTiwgem9uZXMsIHNlZW5VcmxzLCB6b25lTGFiZWwpOw0KICAgICAgICAgICAgcHJvcHMucHVzaCguLi5wYWdlUHJvcHMpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coYFtJZGVhbGlzdGFdICAgcMOhZyAke3B9LyR7bGFzdFBhZ2V9IOKGkiAke3BhZ2VQcm9wcy5sZW5ndGh9IHByb3BzIGFkaWNpb25hbGVzYCk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gcHJvcHM7DQogICAgfQ0KfQ0K","afterExisted":true,"afterHash":"88de0b3bafdfe426f5a37485ad6501a032178bd748849d829edd8e98d479fe04","afterContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IGNocm9taXVtLCBCcm93c2VyQ29udGV4dCwgQnJvd3NlciB9IGZyb20gInBsYXl3cmlnaHQiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgVkFMRU5DSUFfRElTVFJJQ1RTIH0gZnJvbSAiLi4vY29uZmlnL3ZhbGVuY2lhRGlzdHJpY3RzIjsNCmltcG9ydCB7IFZhbGVuY2lhRGlzdHJpY3RNb2RlbCB9IGZyb20gIi4uL21vZGVscy92YWxlbmNpYURpc3RyaWN0TW9kZWwiOw0KDQovLyBTY3JpcHQgZGUgc3RlYWx0aCBwYXJhIGV2YWRpciBkZXRlY2Npw7NuIGRlIGJvdCAoY29tcGF0aWJsZSBjb24gSWRlYWxpc3RhL0RhdGFEb21lKQ0KY29uc3QgU1RFQUxUSF9JTklUX1NDUklQVCA9IGANCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICd3ZWJkcml2ZXInLCB7IGdldDogKCkgPT4gdW5kZWZpbmVkIH0pOw0Kd2luZG93LmNocm9tZSA9IHsNCiAgICBhcHA6IHsgaXNJbnN0YWxsZWQ6IGZhbHNlIH0sDQogICAgY3NpOiBmdW5jdGlvbigpIHt9LA0KICAgIGxvYWRUaW1lczogZnVuY3Rpb24oKSB7IHJldHVybiB7fTsgfSwNCiAgICBydW50aW1lOiB7fQ0KfTsNCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICdsYW5ndWFnZXMnLCB7IGdldDogKCkgPT4gWydlcy1FUycsICdlcycsICdlbi1VUycsICdlbiddIH0pOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KG5hdmlnYXRvciwgJ2hhcmR3YXJlQ29uY3VycmVuY3knLCB7IGdldDogKCkgPT4gOCB9KTsNCmlmICh0eXBlb2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0ICE9PSAndW5kZWZpbmVkJykgew0KICAgIGNvbnN0IGdldFBhcmFtZXRlciA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUuZ2V0UGFyYW1ldGVyOw0KICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUuZ2V0UGFyYW1ldGVyID0gZnVuY3Rpb24ocCkgew0KICAgICAgICBpZiAocCA9PT0gMzc0NDUpIHJldHVybiAnSW50ZWwgSW5jLic7DQogICAgICAgIGlmIChwID09PSAzNzQ0NikgcmV0dXJuICdJbnRlbChSKSBVSEQgR3JhcGhpY3MgNjIwJzsNCiAgICAgICAgcmV0dXJuIGdldFBhcmFtZXRlci5jYWxsKHRoaXMsIHApOw0KICAgIH07DQp9DQppZiAobmF2aWdhdG9yLnBlcm1pc3Npb25zICYmIG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSkgew0KICAgIGNvbnN0IG9yaWdRdWVyeSA9IG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeS5iaW5kKG5hdmlnYXRvci5wZXJtaXNzaW9ucyk7DQogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5hdmlnYXRvci5wZXJtaXNzaW9ucywgJ3F1ZXJ5Jywgew0KICAgICAgICB2YWx1ZTogKHApID0+IHAubmFtZSA9PT0gJ25vdGlmaWNhdGlvbnMnDQogICAgICAgICAgICA/IFByb21pc2UucmVzb2x2ZSh7IHN0YXRlOiBOb3RpZmljYXRpb24ucGVybWlzc2lvbiB9KQ0KICAgICAgICAgICAgOiBvcmlnUXVlcnkocCkNCiAgICB9KTsNCn0NCmA7DQoNCi8qKiBHZW5lcmEgZWwgdmFsb3IgZGVsIGNvb2tpZSBkaWRvbWlfdG9rZW4gY29uIGxhIGZlY2hhIGFjdHVhbCAqLw0KZnVuY3Rpb24gbWFrZURpZG9taVRva2VuKCk6IHN0cmluZyB7DQogICAgY29uc3Qgbm93SXNvID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGR7M31aJC8sICIuMDAwWiIpOw0KICAgIGNvbnN0IHBheWxvYWQgPSB7DQogICAgICAgIHVzZXJJZDogIjZmZWM1M2RkLWExOTctNmIyYi1iNDdiLWM4Mzk1ZDc5OTkyNyIsDQogICAgICAgIGNyZWF0ZWQ6IG5vd0lzbywNCiAgICAgICAgdXBkYXRlZDogbm93SXNvLA0KICAgICAgICB2ZXJzaW9uOiAyLA0KICAgICAgICB2ZW5kb3JzOiB7IGVuYWJsZWQ6IFtdIGFzIHN0cmluZ1tdIH0sDQogICAgICAgIHB1cnBvc2VzOiB7IGVuYWJsZWQ6IFtdIGFzIHN0cmluZ1tdIH0sDQogICAgfTsNCiAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpLnRvU3RyaW5nKCJiYXNlNjQiKTsNCn0NCg0KZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4gew0KICAgIHJldHVybiBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgbXMpKTsNCn0NCg0KLy8gU2x1Z3MgZXNwZWNpYWxlczogem9uYS5zbHVnIOKGkiBzbHVnIGRlIElkZWFsaXN0YSAoc2luIHN1ZmlqbyBkZSBwcm92aW5jaWEpDQpjb25zdCBpZGVhbGlzdGFTbHVnTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gew0KICAgICJlbGlhbmEiOiAibC1lbGlhbmEiLA0KICAgICJyaWJhLXJvamEiOiAicmliYS1yb2phLWRlLXR1cmlhIiwNCiAgICAicG9ibGEtZGUtdmFsbGJvbmEiOiAibGEtcG9ibGEtZGUtdmFsbGJvbmEiLA0KICAgICJ2aWxsYW1hcmNoYW50ZSI6ICJ2aWxhbWFyeGFudCIsDQp9Ow0KDQovLyBTdWZpam8gZGUgcHJvdmluY2lhIHBvciB6b25hIChwb3IgZGVmZWN0bzogIi12YWxlbmNpYSIpDQpjb25zdCBpZGVhbGlzdGFQcm92aW5jZVN1ZmZpeDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsNCiAgICAibW9uY29mYSI6ICItY2FzdGVsbG9uIiwNCn07DQoNCi8vIFpvbmFzIHF1ZSBzZSBvbWl0ZW4gZW4gSWRlYWxpc3RhIChkZW1hc2lhZG8gZ2Vuw6lyaWNhcyBvIHNpbiBww6FnaW5hIHByb3BpYSkNCmNvbnN0IGlkZWFsaXN0YVNraXAgPSBuZXcgU2V0PHN0cmluZz4oWyJ2YWxlbmNpYSJdKTsNCg0KZXhwb3J0IGNsYXNzIElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXIgew0KICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZVRpbWVvdXRNcyA9IDQ1MDAwOw0KICAgIHByaXZhdGUgYXN5bmMgZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMoKTogUHJvbWlzZTxBcnJheTx7IHNsdWc6IHN0cmluZzsgem9uZUxhYmVsOiBzdHJpbmcgfT4+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBWYWxlbmNpYURpc3RyaWN0TW9kZWwuZmluZEFsbCgpOwogICAgICAgICAgICBpZiAocm93cy5sZW5ndGggPiAwKSByZXR1cm4gcm93cwogICAgICAgICAgICAgICAgLmZpbHRlcihyID0+IHIuYWN0aXZlICE9PSAwICYmICEhci5pZGVhbGlzdGFfc2x1ZykKICAgICAgICAgICAgICAgIC5tYXAociA9PiAoeyBzbHVnOiByLmlkZWFsaXN0YV9zbHVnLCB6b25lTGFiZWw6IGAke3IubmFtZX0sIFZhbGVuY2lhYCB9KSk7CiAgICAgICAgfSBjYXRjaCB7IC8qIGZhbGxiYWNrIHRvIHN0YXRpYyAqLyB9DQogICAgICAgIHJldHVybiBWQUxFTkNJQV9ESVNUUklDVFMubWFwKGQgPT4gKHsgc2x1ZzogZC5pZGVhbGlzdGEsIHpvbmVMYWJlbDogYCR7ZC5uYW1lfSwgVmFsZW5jaWFgIH0pKTsNCiAgICB9DQoNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoImh0dHBzOi8vd3d3LmlkZWFsaXN0YS5jb20iLCAiSWRlYWxpc3RhIik7DQogICAgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3QgdGFyZ2V0czogQXJyYXk8eyBzbHVnOiBzdHJpbmc7IHpvbmVMYWJlbD86IHN0cmluZzsgaXNWYWxlbmNpYURpc3RyaWN0PzogYm9vbGVhbiB9PiA9IFtdOwogICAgICAgIGlmICh6b25lcy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICBmb3IgKGNvbnN0IHogb2Ygem9uZXMpIHsNCiAgICAgICAgICAgICAgICBpZiAoei5zbHVnID09PSAidmFsZW5jaWEiKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RyaWN0cyA9IGF3YWl0IHRoaXMuZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMoKTsNCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKC4uLmRpc3RyaWN0cy5tYXAoZCA9PiAoeyAuLi5kLCBpc1ZhbGVuY2lhRGlzdHJpY3Q6IHRydWUgfSkpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHRhcmdldHMucHVzaCh7IHNsdWc6IHouc2x1Zywgem9uZUxhYmVsOiB6Lm5hbWUgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKHsgc2x1ZzogImxsaXJpYSIsIHpvbmVMYWJlbDogIkxsw61yaWEiIH0pOw0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlbXSA9IFtdOw0KICAgICAgICBjb25zdCBzZWVuVXJscyA9IG5ldyBTZXQ8c3RyaW5nPigpOw0KDQogICAgICAgIGxldCBicm93c2VyOiBCcm93c2VyIHwgbnVsbCA9IG51bGw7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBicm93c2VyID0gYXdhaXQgY2hyb21pdW0ubGF1bmNoKHsNCiAgICAgICAgICAgICAgICBoZWFkbGVzczogdHJ1ZSwNCiAgICAgICAgICAgICAgICBhcmdzOiBbDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtYmxpbmstZmVhdHVyZXM9QXV0b21hdGlvbkNvbnRyb2xsZWQiLA0KICAgICAgICAgICAgICAgICAgICAiLS1uby1zYW5kYm94IiwNCiAgICAgICAgICAgICAgICAgICAgIi0tZGlzYWJsZS1zZXR1aWQtc2FuZGJveCIsDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtZGV2LXNobS11c2FnZSIsDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtZ3B1IiwNCiAgICAgICAgICAgICAgICAgICAgIi0tbGFuZz1lcy1FUyIsDQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBmb3IgKGNvbnN0IHQgb2YgdGFyZ2V0cykgew0KICAgICAgICAgICAgICAgIGNvbnN0IHNsdWcgPSB0LnNsdWc7DQogICAgICAgICAgICAgICAgaWYgKGlkZWFsaXN0YVNraXAuaGFzKHNsdWcpKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbSWRlYWxpc3RhXSBPbWl0aWVuZG8gJHtzbHVnfSAoem9uYSBtdXkgYW1wbGlhLCBzaW4gcMOhZ2luYSBlc3BlY8OtZmljYSlgKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnN0IGlkZWFsaXN0YVNsdWcgPSBpZGVhbGlzdGFTbHVnTWFwW3NsdWddID8/IHNsdWc7DQogICAgICAgICAgICAgICAgY29uc3Qgb3BQYXRoID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gImFscXVpbGVyLXZpdmllbmRhcyIgOiAidmVudGEtdml2aWVuZGFzIjsKICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHQuaXNWYWxlbmNpYURpc3RyaWN0CiAgICAgICAgICAgICAgICAgICAgPyBgJHt0aGlzLmJhc2VVcmx9LyR7b3BQYXRofS92YWxlbmNpYS8ke2lkZWFsaXN0YVNsdWd9L2AKICAgICAgICAgICAgICAgICAgICA6IGAke3RoaXMuYmFzZVVybH0vJHtvcFBhdGh9LyR7aWRlYWxpc3RhU2x1Z30ke2lkZWFsaXN0YVByb3ZpbmNlU3VmZml4W3NsdWddID8/ICItdmFsZW5jaWEifS9gOwoNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9wcyA9IGF3YWl0IHRoaXMuc2NyYXBlWm9uZShicm93c2VyLCB1cmwsIHpvbmVzLCBzZWVuVXJscywgdC56b25lTGFiZWwpOw0KICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaCguLi5wcm9wcyk7DQoNCiAgICAgICAgICAgICAgICAvLyBQYXVzYSBhbGVhdG9yaWEgZW50cmUgem9uYXMgcGFyYSBldml0YXIgZGV0ZWNjacOzbg0KICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKDIwMDAgKyBNYXRoLnJhbmRvbSgpICogMjAwMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7DQogICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbSWRlYWxpc3RhXSBFcnJvciBnZW5lcmFsOiAke2Vyci5tZXNzYWdlfWApOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgaWYgKGJyb3dzZXIpIGF3YWl0IGJyb3dzZXIuY2xvc2UoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUmVzdWx0cyhwcm9wZXJ0aWVzKTsNCiAgICB9DQoNCiAgICAvKiogQ2FyZ2EgdW5hIFVSTCBkZSBJZGVhbGlzdGEgdXNhbmRvIHVuIEJyb3dzZXJDb250ZXh0IG51ZXZvIHkgZGV2dWVsdmUgZWwgSFRNTCAqLw0KICAgIHByaXZhdGUgYXN5bmMgbG9hZFBhZ2UoYnJvd3NlcjogQnJvd3NlciwgdXJsOiBzdHJpbmcsIGlzRmlyc3RQYWdlOiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmc+IHsNCiAgICAgICAgbGV0IGNvbnRleHQ6IEJyb3dzZXJDb250ZXh0IHwgbnVsbCA9IG51bGw7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb250ZXh0ID0gYXdhaXQgYnJvd3Nlci5uZXdDb250ZXh0KHsNCiAgICAgICAgICAgICAgICB2aWV3cG9ydDogeyB3aWR0aDogMTM2NiwgaGVpZ2h0OiA3NjggfSwNCiAgICAgICAgICAgICAgICBsb2NhbGU6ICJlcy1FUyIsDQogICAgICAgICAgICAgICAgdGltZXpvbmVJZDogIkV1cm9wZS9NYWRyaWQiLA0KICAgICAgICAgICAgICAgIHVzZXJBZ2VudDogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMzEuMC4wLjAgU2FmYXJpLzUzNy4zNiIsDQogICAgICAgICAgICAgICAgZXh0cmFIVFRQSGVhZGVyczogew0KICAgICAgICAgICAgICAgICAgICAiQWNjZXB0LUxhbmd1YWdlIjogImVzLUVTLGVzO3E9MC45LGVuLVVTO3E9MC44LGVuO3E9MC43IiwNCiAgICAgICAgICAgICAgICAgICAgIkFjY2VwdCI6ICJ0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS9hdmlmLGltYWdlL3dlYnAsKi8qO3E9MC44IiwNCiAgICAgICAgICAgICAgICAgICAgIlJlZmVyZXIiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8iLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUZldGNoLURlc3QiOiAiZG9jdW1lbnQiLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUZldGNoLU1vZGUiOiAibmF2aWdhdGUiLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUZldGNoLVNpdGUiOiAiY3Jvc3Mtc2l0ZSIsDQogICAgICAgICAgICAgICAgICAgICJTZWMtQ0gtVUEiOiAnIkNocm9taXVtIjt2PSIxMzEiLCAiR29vZ2xlIENocm9tZSI7dj0iMTMxIiwgIk5vdF9BIEJyYW5kIjt2PSIyNCInLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUNILVVBLU1vYmlsZSI6ICI/MCIsDQogICAgICAgICAgICAgICAgICAgICJTZWMtQ0gtVUEtUGxhdGZvcm0iOiAnIldpbmRvd3MiJywNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGF3YWl0IGNvbnRleHQuYWRkSW5pdFNjcmlwdChTVEVBTFRIX0lOSVRfU0NSSVBUKTsNCg0KICAgICAgICAgICAgLy8gUHJlLXNldGVhciBjb29raWVzIERpZG9taQ0KICAgICAgICAgICAgYXdhaXQgY29udGV4dC5hZGRDb29raWVzKFsNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5hbWU6ICJkaWRvbWlfdG9rZW4iLA0KICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbWFrZURpZG9taVRva2VuKCksDQogICAgICAgICAgICAgICAgICAgIGRvbWFpbjogIi5pZGVhbGlzdGEuY29tIiwgcGF0aDogIi8iLCBzYW1lU2l0ZTogIk5vbmUiIGFzIGNvbnN0LCBzZWN1cmU6IHRydWUsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIG5hbWU6ICJldWNvbnNlbnQtdjIiLA0KICAgICAgICAgICAgICAgICAgICB2YWx1ZTogIkNQd0pka0FQd0pka0FFc0FCQkVTQ2dBQUFBQUFBQUFBQUFBQUFBQUFBQS5ZQUFBQUFBQUFBQUEiLA0KICAgICAgICAgICAgICAgICAgICBkb21haW46ICIuaWRlYWxpc3RhLmNvbSIsIHBhdGg6ICIvIiwgc2FtZVNpdGU6ICJOb25lIiBhcyBjb25zdCwgc2VjdXJlOiB0cnVlLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICBdKTsNCg0KICAgICAgICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IGNvbnRleHQubmV3UGFnZSgpOw0KICAgICAgICAgICAgYXdhaXQgcGFnZS5nb3RvKHVybCwgeyB3YWl0VW50aWw6ICJkb21jb250ZW50bG9hZGVkIiwgdGltZW91dDogdGhpcy5wYWdlVGltZW91dE1zIH0pOw0KICAgICAgICAgICAgYXdhaXQgc2xlZXAoODAwKTsNCg0KICAgICAgICAgICAgLy8gRGV0ZWN0YXIgYmxvcXVlbyBwb3IgRGF0YURvbWUgbyBhbnRpYm90DQogICAgICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gcGFnZS51cmwoKTsNCiAgICAgICAgICAgIGNvbnN0IHBhZ2VUaXRsZSA9IGF3YWl0IHBhZ2UudGl0bGUoKS5jYXRjaCgoKSA9PiAiIik7DQogICAgICAgICAgICBpZiAoDQogICAgICAgICAgICAgICAgY3VycmVudFVybC5pbmNsdWRlcygiL2FudGlib3QvIikgfHwNCiAgICAgICAgICAgICAgICBjdXJyZW50VXJsLmluY2x1ZGVzKCJkYXRhZG9tZSIpIHx8DQogICAgICAgICAgICAgICAgY3VycmVudFVybC5pbmNsdWRlcygiY2FwdGNoYSIpIHx8DQogICAgICAgICAgICAgICAgcGFnZVRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoInJvYm90IikgfHwNCiAgICAgICAgICAgICAgICBwYWdlVGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiY2FwdGNoYSIpDQogICAgICAgICAgICApIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFtJZGVhbGlzdGFdIEJsb3F1ZWFkbyBwb3IgYW50aWJvdCBlbiAke3VybH0gLSBzYWx0YW5kb2ApOw0KICAgICAgICAgICAgICAgIHJldHVybiAiIjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGlzRmlyc3RQYWdlKSB7DQogICAgICAgICAgICAgICAgLy8gU29sbyBlbiBsYSBwcmltZXJhIHDDoWdpbmEgYWNlcHRhbW9zIGNvb2tpZXMgeSBlc3BlcmFtb3MgbmV0d29ya2lkbGUNCiAgICAgICAgICAgICAgICBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgaWYgKCh3aW5kb3cgYXMgYW55KS5EaWRvbWk/LnNldFVzZXJBZ3JlZVRvQWxsKSAod2luZG93IGFzIGFueSkuRGlkb21pLnNldFVzZXJBZ3JlZVRvQWxsKCk7IH0gY2F0Y2ggeyAvKiBpZ25vcmUgKi8gfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGF3YWl0IHBhZ2Uud2FpdEZvckxvYWRTdGF0ZSgibmV0d29ya2lkbGUiLCB7IHRpbWVvdXQ6IDIwMDAwIH0pLmNhdGNoKCgpID0+IHsgfSk7DQogICAgICAgICAgICAgICAgYXdhaXQgc2xlZXAoODAwKTsNCiAgICAgICAgICAgICAgICBhd2FpdCBwYWdlLmxvY2F0b3IoIiNkaWRvbWktbm90aWNlLWFncmVlLWJ1dHRvbiwgLmRpZG9taS1jb250aW51ZS1idG4iKS5maXJzdCgpDQogICAgICAgICAgICAgICAgICAgIC5jbGljayh7IHRpbWVvdXQ6IDIwMDAsIGZvcmNlOiB0cnVlIH0pLmNhdGNoKCgpID0+IHsgfSk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIC8vIFDDoWdpbmFzIHNpZ3VpZW50ZXM6IG5ldHdvcmtpZGxlIG5vcm1hbG1lbnRlIGVzIG3DoXMgcsOhcGlkbw0KICAgICAgICAgICAgICAgIGF3YWl0IHBhZ2Uud2FpdEZvckxvYWRTdGF0ZSgibmV0d29ya2lkbGUiLCB7IHRpbWVvdXQ6IDE1MDAwIH0pLmNhdGNoKCgpID0+IHsgfSk7DQogICAgICAgICAgICAgICAgYXdhaXQgc2xlZXAoNTAwKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgY29uc3QgZm91bmQgPSBhd2FpdCBwYWdlLndhaXRGb3JTZWxlY3RvcigiYXJ0aWNsZS5pdGVtIiwgeyB0aW1lb3V0OiA4MDAwIH0pDQogICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSkuY2F0Y2goKCkgPT4gZmFsc2UpOw0KDQogICAgICAgICAgICBpZiAoIWZvdW5kKSByZXR1cm4gIiI7DQogICAgICAgICAgICByZXR1cm4gYXdhaXQgcGFnZS5jb250ZW50KCk7DQogICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7DQogICAgICAgICAgICBjb25zb2xlLndhcm4oYFtJZGVhbGlzdGFdIEVycm9yIGNhcmdhbmRvICR7dXJsfTogJHtlcnIubWVzc2FnZX1gKTsNCiAgICAgICAgICAgIHJldHVybiAiIjsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGlmIChjb250ZXh0KSBhd2FpdCBjb250ZXh0LmNsb3NlKCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvKiogRXh0cmFlIGVsIG7Dum1lcm8gbcOheGltbyBkZSBww6FnaW5hIGRlbCBIVE1MICovDQogICAgcHJpdmF0ZSBnZXRMYXN0UGFnZShodG1sOiBzdHJpbmcpOiBudW1iZXIgew0KICAgICAgICAvLyBJZGVhbGlzdGEgcGFnaW5hIGNvbiB1cmwgLi4uL3BhZ2luYS1OIOKAlCBidXNjYW1vcyBlbCBtw6F4aW1vIGVuIGxvcyBsaW5rcyBkZWwgcGFnaW5hZG9yDQogICAgICAgIGNvbnN0IG1hdGNoZXMgPSBodG1sLm1hdGNoKC9wYWdpbmEtKFxkKykvZykgfHwgW107DQogICAgICAgIGNvbnN0IG51bXMgPSBtYXRjaGVzLm1hcChtID0+IHBhcnNlSW50KG0ucmVwbGFjZSgicGFnaW5hLSIsICIiKSwgMTApKTsNCiAgICAgICAgcmV0dXJuIG51bXMubGVuZ3RoID4gMCA/IE1hdGgubWF4KC4uLm51bXMpIDogMTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBFeHRyYWUgbGEgZGlyZWNjacOzbiBsaW1waWEgZGVsIHTDrXR1bG8gZGUgSWRlYWxpc3RhLg0KICAgICAqIEVqOiAiUGlzbyBlbiB2ZW50YSBlbiBDYWxsZSBNYXlvciwgTGzDrXJpYSIg4oaSICJDYWxsZSBNYXlvciwgTGzDrXJpYSINCiAgICAgKi8NCiAgICBwcml2YXRlIGV4dHJhY3RBZGRyZXNzKGZ1bGxUaXRsZTogc3RyaW5nKTogc3RyaW5nIHsNCiAgICAgICAgcmV0dXJuIGZ1bGxUaXRsZQ0KICAgICAgICAgICAgLnJlcGxhY2UoL14ocGlzb3xjYXNhfGNoYWxldHxkXHUwMGZhcGxleHxcdTAwZTF0aWNvfGFwYXJ0YW1lbnRvfGVzdHVkaW98bG9jYWx8Z2FyYWplfHRlcnJlbm8pXHMrZW5ccysodmVudGF8YWxxdWlsZXIpXHMrZW5ccysvaSwgIiIpDQogICAgICAgICAgICAudHJpbSgpIHx8IGZ1bGxUaXRsZTsNCiAgICB9DQoNCiAgICAvKiogUGFyc2VhIGxvcyBhcnRpY2xlLml0ZW0gZGVsIEhUTUwgeSBkZXZ1ZWx2ZSBsYXMgcHJvcGllZGFkZXMgKi8NCiAgICBwcml2YXRlIHBhcnNlSXRlbXMoDQogICAgICAgIGh0bWw6IHN0cmluZywNCiAgICAgICAgem9uZXM6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5nZXRBY3RpdmVab25lcz4+LA0KICAgICAgICBzZWVuVXJsczogU2V0PHN0cmluZz4sDQogICAgICAgIHpvbmVMYWJlbD86IHN0cmluZw0KICAgICk6IFByb3BlcnR5W10gew0KICAgICAgICBjb25zdCBwcm9wczogUHJvcGVydHlbXSA9IFtdOw0KICAgICAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKGh0bWwpOw0KDQogICAgICAgICQoImFydGljbGUuaXRlbSIpLmVhY2goKF9pLCBlbCkgPT4gew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCBsaW5rRWwgPSAkKGVsKS5maW5kKCJhLml0ZW0tbGluayIpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGZ1bGxUaXRsZSA9IHRoaXMuc2FuaXRpemVUZXh0KGxpbmtFbC5hdHRyKCJ0aXRsZSIpIHx8IGxpbmtFbC50ZXh0KCkpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGhyZWYgPSBsaW5rRWwuYXR0cigiaHJlZiIpIHx8ICIiOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFic1VybCA9IGhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpID8gaHJlZiA6IGAke3RoaXMuYmFzZVVybH0ke2hyZWZ9YDsNCg0KICAgICAgICAgICAgICAgIC8vIFByZWNpbzogaW50ZW50YXIgc2VsZWN0b3IgZXNwZWPDrWZpY28sIGx1ZWdvIGdlbsOpcmljbw0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlVGV4dCA9IHRoaXMuc2FuaXRpemVUZXh0KA0KICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCIuaXRlbS1wcmljZSBoMiwgLnByaWNlLXJvdyAuaXRlbS1wcmljZSwgLml0ZW0tcHJpY2UiKS5maXJzdCgpLnRleHQoKQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnBhcnNlUHJpY2UocHJpY2VUZXh0KTsNCg0KICAgICAgICAgICAgICAgIC8vIEhhYml0YWNpb25lcyB5IG3CsiBidXNjYW5kbyBwb3IgdGV4dG8gZGVsIGRldGFsbGUgKG3DoXMgcm9idXN0byBxdWUgcG9yIHBvc2ljacOzbikNCiAgICAgICAgICAgICAgICBsZXQgcm9vbXMgPSAwOw0KICAgICAgICAgICAgICAgIGxldCBzaXplX20yID0gMDsNCiAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCIuaXRlbS1kZXRhaWwiKS5lYWNoKChfaiwgZGV0RWwpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9ICQoZGV0RWwpLnRleHQoKS50cmltKCk7DQogICAgICAgICAgICAgICAgICAgIGlmICghcm9vbXMgJiYgL2hhYi9pLnRlc3QodCkpIHJvb21zID0gcGFyc2VJbnQodCkgfHwgMDsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFzaXplX20yICYmIC9tXHUwMGIyL2kudGVzdCh0KSkgc2l6ZV9tMiA9IHBhcnNlSW50KHQpIHx8IDA7DQogICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZV91cmwgPSAkKGVsKS5maW5kKCJwaWN0dXJlIGltZyIpLmF0dHIoInNyYyIpDQogICAgICAgICAgICAgICAgICAgIHx8ICQoZWwpLmZpbmQoImltZyIpLmZpcnN0KCkuYXR0cigic3JjIikgfHwgIiI7DQoNCiAgICAgICAgICAgICAgICAvLyBEaXJlY2Npw7NuIGxpbXBpYTogcXVpdGFyIMKrUGlzbyBlbiB2ZW50YSBlbsK7IGRlbCBpbmljaW8NCiAgICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuZXh0cmFjdEFkZHJlc3MoZnVsbFRpdGxlKTsNCg0KICAgICAgICAgICAgICAgIGlmIChwcmljZSA+IDAgJiYgZnVsbFRpdGxlICYmICFzZWVuVXJscy5oYXMoYWJzVXJsKSkgew0KICAgICAgICAgICAgICAgICAgICBzZWVuVXJscy5hZGQoYWJzVXJsKTsNCiAgICAgICAgICAgICAgICAgICAgcHJvcHMucHVzaCh7DQogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZnVsbFRpdGxlLA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2UsDQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgIG11bmljaXBhbGl0eTogem9uZUxhYmVsICYmIHpvbmVMYWJlbC5pbmNsdWRlcygiVmFsZW5jaWEiKSA/ICJWYWxlbmNpYSIgOiB0aGlzLmRldGVjdE11bmljaXBhbGl0eShsb2NhdGlvbiwgem9uZXMpLA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfdHlwZTogdGhpcy5ub3JtYWxpemVUeXBlKGZ1bGxUaXRsZSksDQogICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25fdHlwZTogdGhpcy5fb3BlcmF0aW9uVHlwZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvb21zLCBzaXplX20yLA0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBhYnNVcmwsIHNvdXJjZTogdGhpcy5zb3VyY2VOYW1lLCBpbWFnZV91cmwsDQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gY2F0Y2ggeyAvKiBza2lwIG1hbGZvcm1lZCAqLyB9DQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBwcm9wczsNCiAgICB9DQoNCiAgICBwcml2YXRlIGFzeW5jIHNjcmFwZVpvbmUoDQogICAgICAgIGJyb3dzZXI6IEJyb3dzZXIsDQogICAgICAgIGJhc2Vab25lVXJsOiBzdHJpbmcsDQogICAgICAgIHpvbmVzOiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHRoaXMuZ2V0QWN0aXZlWm9uZXM+PiwNCiAgICAgICAgc2VlblVybHM6IFNldDxzdHJpbmc+LA0KICAgICAgICB6b25lTGFiZWw/OiBzdHJpbmcNCiAgICApOiBQcm9taXNlPFByb3BlcnR5W10+IHsNCiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBbXTsNCg0KICAgICAgICAvLyBQw6FnaW5hIDENCiAgICAgICAgY29uc3QgaHRtbDEgPSBhd2FpdCB0aGlzLmxvYWRQYWdlKGJyb3dzZXIsIGJhc2Vab25lVXJsLCB0cnVlKTsNCiAgICAgICAgaWYgKCFodG1sMSkgew0KICAgICAgICAgICAgY29uc29sZS53YXJuKGBbSWRlYWxpc3RhXSBTaW4gYXJ0w61jdWxvcyBlbiAke2Jhc2Vab25lVXJsfWApOw0KICAgICAgICAgICAgcmV0dXJuIHByb3BzOw0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgcGFnZTFQcm9wcyA9IHRoaXMucGFyc2VJdGVtcyhodG1sMSwgem9uZXMsIHNlZW5VcmxzLCB6b25lTGFiZWwpOw0KICAgICAgICBwcm9wcy5wdXNoKC4uLnBhZ2UxUHJvcHMpOw0KDQogICAgICAgIGNvbnN0IGxhc3RQYWdlID0gdGhpcy5nZXRMYXN0UGFnZShodG1sMSk7DQogICAgICAgIGNvbnNvbGUubG9nKGBbSWRlYWxpc3RhXSAke2Jhc2Vab25lVXJsfSDihpIgJHtwYWdlMVByb3BzLmxlbmd0aH0gcHJvcHMgKHDDoWcgMS8ke2xhc3RQYWdlfSlgKTsNCg0KICAgICAgICAvLyBQw6FnaW5hcyAyLi5sYXN0UGFnZSAobcOheCA1IHBhcmEgZXZpdGFyIGRlbWFzaWFkYXMgcGV0aWNpb25lcykNCiAgICAgICAgY29uc3QgbWF4UGFnZXMgPSBNYXRoLm1pbihsYXN0UGFnZSwgNSk7DQogICAgICAgIGZvciAobGV0IHAgPSAyOyBwIDw9IG1heFBhZ2VzOyBwKyspIHsNCiAgICAgICAgICAgIGF3YWl0IHNsZWVwKDE1MDAgKyBNYXRoLnJhbmRvbSgpICogMTUwMCk7DQogICAgICAgICAgICBjb25zdCBwYWdlVXJsID0gYCR7YmFzZVpvbmVVcmx9cGFnaW5hLSR7cH0uaHRtYDsNCiAgICAgICAgICAgIGNvbnN0IGh0bWxOID0gYXdhaXQgdGhpcy5sb2FkUGFnZShicm93c2VyLCBwYWdlVXJsLCBmYWxzZSk7DQogICAgICAgICAgICBpZiAoIWh0bWxOKSBicmVhazsNCg0KICAgICAgICAgICAgY29uc3QgcGFnZVByb3BzID0gdGhpcy5wYXJzZUl0ZW1zKGh0bWxOLCB6b25lcywgc2VlblVybHMsIHpvbmVMYWJlbCk7DQogICAgICAgICAgICBwcm9wcy5wdXNoKC4uLnBhZ2VQcm9wcyk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhgW0lkZWFsaXN0YV0gICBww6FnICR7cH0vJHtsYXN0UGFnZX0g4oaSICR7cGFnZVByb3BzLmxlbmd0aH0gcHJvcHMgYWRpY2lvbmFsZXNgKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBwcm9wczsNCiAgICB9DQp9DQo=","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\milanunciosScraper.ts","beforeExisted":true,"beforeHash":"4cee3c3fa4be46ad12e45f002a24002362bb929787e4c3c5d0428345fc03dd8d","beforeContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IGNocm9taXVtLCBCcm93c2VyLCBCcm93c2VyQ29udGV4dCB9IGZyb20gInBsYXl3cmlnaHQiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KDQovKioNCiAqIFNjcmFwZXIgcGFyYSBNaWxhbnVuY2lvcyDigJQgY2xhc2lmaWNhZG9zIGlubW9iaWxpYXJpb3MuDQogKg0KICogTWlsYW51bmNpb3MgZXMgdW5hIFNQQSBOZXh0LmpzIHF1ZSByZW5kZXJpemEgZWwgRE9NIHbDrWEgUmVhY3Q7DQogKiB1bmEgcGV0aWNpw7NuIEhUVFAgZGlyZWN0YSAoQ2hlZXJpbykgZGV2dWVsdmUgdW4gc2hlbGwgdmFjw61vLg0KICogRXN0YSBpbXBsZW1lbnRhY2nDs24gdXNhIFBsYXl3cmlnaHQgKENocm9taXVtIGhlYWRsZXNzKSBwYXJhIGVzcGVyYXIgbGENCiAqIGhpZHJhdGFjacOzbiBkZSBSZWFjdCB5IGV4dHJhZXIgbG9zIGFudW5jaW9zIHJlYWxlcy4NCiAqDQogKiBVUkw6ICBodHRwczovL3d3dy5taWxhbnVuY2lvcy5jb20vaW5tb2JpbGlhcmlhLz9kZW1hbmRhPW4mcG9ibGFjaW9uPXtub21icmV9WyZwYWdpbmE9Tl0NCiAqLw0KDQpjb25zdCBNQV9VQSA9DQogICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMzEuMC4wLjAgU2FmYXJpLzUzNy4zNiI7DQoNCmNvbnN0IE1BX1NURUFMVEggPSBgDQpPYmplY3QuZGVmaW5lUHJvcGVydHkobmF2aWdhdG9yLCAnd2ViZHJpdmVyJywgeyBnZXQ6ICgpID0+IHVuZGVmaW5lZCB9KTsNCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICdsYW5ndWFnZXMnLCB7IGdldDogKCkgPT4gWydlcy1FUycsICdlcycsICdlbi1VUyddIH0pOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KG5hdmlnYXRvciwgJ2hhcmR3YXJlQ29uY3VycmVuY3knLCB7IGdldDogKCkgPT4gOCB9KTsNCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICdkZXZpY2VNZW1vcnknLCB7IGdldDogKCkgPT4gOCB9KTsNCndpbmRvdy5jaHJvbWUgPSB7IGFwcDogeyBpc0luc3RhbGxlZDogZmFsc2UgfSwgcnVudGltZToge30gfTsNCmA7DQoNCi8qKiBTZWxlY3RvciBlc3RhYmxlIGVuIE1pbGFudW5jaW9zIChkYXRhLXRlc3RpZCA+IGNsYXNlcyBjb24gaGFzaCBkZSBSZWFjdCkgKi8NCmNvbnN0IEFEX1NFTEVDVE9SID0NCiAgICAnW2RhdGEtdGVzdGlkPSJhZCJdLCBhcnRpY2xlW2NsYXNzKj0ibWEtQWQiXSwgbGlbY2xhc3MqPSJtYS1BZCJdLCAubWEtQWRDYXJkJzsNCg0KZXhwb3J0IGNsYXNzIE1pbGFudW5jaW9zU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyIHsNCiAgICBwcml2YXRlIHJlYWRvbmx5IE1BWF9QQUdFUyA9IDM7DQogICAgcHJpdmF0ZSByZWFkb25seSBQQUdFX1RJTUVPVVQgPSAzNV8wMDA7DQoNCiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoImh0dHBzOi8vd3d3Lm1pbGFudW5jaW9zLmNvbSIsICJNaWxhbnVuY2lvcyIpOyB9DQoNCiAgICBhc3luYyBzY3JhcGUoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7DQogICAgICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVab25lcygpOw0KICAgICAgICBjb25zdCB0YXJnZXRzID0gem9uZXMubGVuZ3RoID4gMA0KICAgICAgICAgICAgPyB6b25lcw0KICAgICAgICAgICAgOiBbeyBuYW1lOiAiTGzDrXJpYSIsIHNsdWc6ICJsbGlyaWEiIH0gYXMgKHR5cGVvZiB6b25lcylbMF1dOw0KDQogICAgICAgIGNvbnN0IHByb3BlcnRpZXM6IFByb3BlcnR5W10gPSBbXTsNCiAgICAgICAgY29uc3Qgc2VlblVybHMgPSBuZXcgU2V0PHN0cmluZz4oKTsNCg0KICAgICAgICBsZXQgYnJvd3NlcjogQnJvd3NlciB8IG51bGwgPSBudWxsOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYnJvd3NlciA9IGF3YWl0IGNocm9taXVtLmxhdW5jaCh7DQogICAgICAgICAgICAgICAgaGVhZGxlc3M6IHRydWUsDQogICAgICAgICAgICAgICAgYXJnczogWw0KICAgICAgICAgICAgICAgICAgICAiLS1kaXNhYmxlLWJsaW5rLWZlYXR1cmVzPUF1dG9tYXRpb25Db250cm9sbGVkIiwNCiAgICAgICAgICAgICAgICAgICAgIi0tbm8tc2FuZGJveCIsDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtc2V0dWlkLXNhbmRib3giLA0KICAgICAgICAgICAgICAgICAgICAiLS1kaXNhYmxlLWRldi1zaG0tdXNhZ2UiLA0KICAgICAgICAgICAgICAgICAgICAiLS1sYW5nPWVzLUVTIiwNCiAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGZvciAoY29uc3Qgem9uZSBvZiB0YXJnZXRzKSB7DQogICAgICAgICAgICAgICAgZm9yIChsZXQgcGFnZSA9IDE7IHBhZ2UgPD0gdGhpcy5NQVhfUEFHRVM7IHBhZ2UrKykgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmJ1aWxkVXJsKHpvbmUubmFtZSwgcGFnZSk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLmxvYWRQYWdlKGJyb3dzZXIsIHVybCk7DQogICAgICAgICAgICAgICAgICAgIGlmICghaHRtbCkgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gcHJvcGVydGllcy5sZW5ndGg7DQogICAgICAgICAgICAgICAgICAgIHRoaXMucGFyc2VIdG1sKGh0bWwsIHpvbmUsIHRhcmdldHMsIHNlZW5VcmxzLCBwcm9wZXJ0aWVzKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSBwcm9wZXJ0aWVzLmxlbmd0aCAtIGJlZm9yZTsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFtNaWxhbnVuY2lvc10gJHt6b25lLm5hbWV9IHDDoWcgJHtwYWdlfSDihpIgJHtmb3VuZH0gYW51bmNpb3NgKTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBTaW4gcmVzdWx0YWRvcyBlbiBlc3RhIHDDoWdpbmE6IG5vIGhheSBtw6FzDQogICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZCA9PT0gMCkgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vIFBhdXNhIGVkdWNhZGEgZW50cmUgem9uYXMgcGFyYSBldml0YXIgYmxvcXVlb3MNCiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMV81MDAgKyBNYXRoLnJhbmRvbSgpICogMV8wMDApKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHsNCiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtNaWxhbnVuY2lvc10gRXJyb3IgZ2VuZXJhbDogJHtlcnIubWVzc2FnZX1gKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGlmIChicm93c2VyKSBhd2FpdCBicm93c2VyLmNsb3NlKCk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVJlc3VsdHMocHJvcGVydGllcyk7DQogICAgfQ0KDQogICAgLy8g4pSA4pSA4pSAIGhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgICBwcml2YXRlIGJ1aWxkVXJsKHpvbmVOYW1lOiBzdHJpbmcsIHBhZ2U6IG51bWJlcik6IHN0cmluZyB7DQogICAgICAgIGNvbnN0IGJhc2UgPSBgJHt0aGlzLmJhc2VVcmx9L2lubW9iaWxpYXJpYS8/ZGVtYW5kYT1uJnBvYmxhY2lvbj0ke2VuY29kZVVSSUNvbXBvbmVudCh6b25lTmFtZSl9YDsNCiAgICAgICAgcmV0dXJuIHBhZ2UgPiAxID8gYCR7YmFzZX0mcGFnaW5hPSR7cGFnZX1gIDogYmFzZTsNCiAgICB9DQoNCiAgICBwcml2YXRlIGFzeW5jIGxvYWRQYWdlKGJyb3dzZXI6IEJyb3dzZXIsIHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHsNCiAgICAgICAgbGV0IGNvbnRleHQ6IEJyb3dzZXJDb250ZXh0IHwgbnVsbCA9IG51bGw7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb250ZXh0ID0gYXdhaXQgYnJvd3Nlci5uZXdDb250ZXh0KHsNCiAgICAgICAgICAgICAgICB2aWV3cG9ydDogeyB3aWR0aDogMTM2NiwgaGVpZ2h0OiA3NjggfSwNCiAgICAgICAgICAgICAgICBsb2NhbGU6ICJlcy1FUyIsDQogICAgICAgICAgICAgICAgdGltZXpvbmVJZDogIkV1cm9wZS9NYWRyaWQiLA0KICAgICAgICAgICAgICAgIHVzZXJBZ2VudDogTUFfVUEsDQogICAgICAgICAgICAgICAgZXh0cmFIVFRQSGVhZGVyczogew0KICAgICAgICAgICAgICAgICAgICAiQWNjZXB0IjogInRleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LGltYWdlL2F2aWYsaW1hZ2Uvd2VicCwqLyo7cT0wLjgiLA0KICAgICAgICAgICAgICAgICAgICAiQWNjZXB0LUxhbmd1YWdlIjogImVzLUVTLGVzO3E9MC45IiwNCiAgICAgICAgICAgICAgICAgICAgIlJlZmVyZXIiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlLmVzLyIsDQogICAgICAgICAgICAgICAgICAgICJTZWMtRmV0Y2gtRGVzdCI6ICJkb2N1bWVudCIsDQogICAgICAgICAgICAgICAgICAgICJTZWMtRmV0Y2gtTW9kZSI6ICJuYXZpZ2F0ZSIsDQogICAgICAgICAgICAgICAgICAgICJTZWMtRmV0Y2gtU2l0ZSI6ICJjcm9zcy1zaXRlIiwNCiAgICAgICAgICAgICAgICAgICAgIlNlYy1DSC1VQSI6ICciQ2hyb21pdW0iO3Y9IjEzMSIsICJHb29nbGUgQ2hyb21lIjt2PSIxMzEiLCAiTm90X0EgQnJhbmQiO3Y9IjI0IicsDQogICAgICAgICAgICAgICAgICAgICJTZWMtQ0gtVUEtTW9iaWxlIjogIj8wIiwNCiAgICAgICAgICAgICAgICAgICAgIlNlYy1DSC1VQS1QbGF0Zm9ybSI6ICciV2luZG93cyInLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgYXdhaXQgY29udGV4dC5hZGRJbml0U2NyaXB0KE1BX1NURUFMVEgpOw0KDQogICAgICAgICAgICBjb25zdCBwZyA9IGF3YWl0IGNvbnRleHQubmV3UGFnZSgpOw0KICAgICAgICAgICAgYXdhaXQgcGcuZ290byh1cmwsIHsgd2FpdFVudGlsOiAiZG9tY29udGVudGxvYWRlZCIsIHRpbWVvdXQ6IHRoaXMuUEFHRV9USU1FT1VUIH0pOw0KDQogICAgICAgICAgICAvLyBFc3BlcmFyIGEgcXVlIFJlYWN0IGhpZHJhdGUgbG9zIGFudW5jaW9zIChtw6F4IDEyIHMpDQogICAgICAgICAgICBhd2FpdCBwZw0KICAgICAgICAgICAgICAgIC53YWl0Rm9yU2VsZWN0b3IoQURfU0VMRUNUT1IsIHsgdGltZW91dDogMTJfMDAwIH0pDQogICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHsgLyogdGltZW91dCBhY2VwdGFibGU7IHByb2Nlc2Ftb3MgbG8gcXVlIGhheWEgKi8gfSk7DQoNCiAgICAgICAgICAgIC8vIEFjZXB0YXIgYmFubmVyIGRlIHByaXZhY2lkYWQgc2kgYXBhcmVjZQ0KICAgICAgICAgICAgYXdhaXQgcGcubG9jYXRvcigNCiAgICAgICAgICAgICAgICAiI0N5Ym90Q29va2llYm90RGlhbG9nQm9keUJ1dHRvbkFjY2VwdCwgIg0KICAgICAgICAgICAgICAgICsgIltpZCo9J2FjY2VwdC1jb29raWVzJ10sICINCiAgICAgICAgICAgICAgICArICJidXR0b246aGFzLXRleHQoJ0FjZXB0YXIgdG9kbycpLCAiDQogICAgICAgICAgICAgICAgKyAiYnV0dG9uOmhhcy10ZXh0KCdBY2VwdGFyJykiDQogICAgICAgICAgICApLmZpcnN0KCkuY2xpY2soeyB0aW1lb3V0OiAzXzAwMCwgZm9yY2U6IHRydWUgfSkuY2F0Y2goKCkgPT4geyB9KTsNCg0KICAgICAgICAgICAgLy8gQnJldmUgcGF1c2EgcGFyYSByZS1yZW5kZXJzIHBvc3QtY29va2llDQogICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgODAwKSk7DQoNCiAgICAgICAgICAgIHJldHVybiBhd2FpdCBwZy5jb250ZW50KCk7DQogICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7DQogICAgICAgICAgICBjb25zb2xlLndhcm4oYFtNaWxhbnVuY2lvc10gRXJyb3IgY2FyZ2FuZG8gJHt1cmx9OiAke2Vyci5tZXNzYWdlfWApOw0KICAgICAgICAgICAgcmV0dXJuICIiOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgaWYgKGNvbnRleHQpIGF3YWl0IGNvbnRleHQuY2xvc2UoKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHByaXZhdGUgcGFyc2VIdG1sKA0KICAgICAgICBodG1sOiBzdHJpbmcsDQogICAgICAgIHpvbmU6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5nZXRBY3RpdmVab25lcz4+WzBdLA0KICAgICAgICBhbGxab25lczogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmdldEFjdGl2ZVpvbmVzPj4sDQogICAgICAgIHNlZW5VcmxzOiBTZXQ8c3RyaW5nPiwNCiAgICAgICAgb3V0OiBQcm9wZXJ0eVtdDQogICAgKTogdm9pZCB7DQogICAgICAgIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQoaHRtbCk7DQoNCiAgICAgICAgJChBRF9TRUxFQ1RPUikuZWFjaCgoX2ksIGVsKSA9PiB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIC8vIFTDrXR1bG8NCiAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9DQogICAgICAgICAgICAgICAgICAgIHRoaXMuc2FuaXRpemVUZXh0KCQoZWwpLmZpbmQoImgyLCBoMywgW2NsYXNzKj0ndGl0bGUnXSwgW2NsYXNzKj0nVGl0bGUnXSIpLmZpcnN0KCkudGV4dCgpKQ0KICAgICAgICAgICAgICAgICAgICB8fCAiUHJvcGllZGFkIjsNCg0KICAgICAgICAgICAgICAgIC8vIFByZWNpbw0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlVGV4dCA9ICQoZWwpLmZpbmQoIltjbGFzcyo9J3ByaWNlJ10sIFtjbGFzcyo9J1ByaWNlJ10sIFtjbGFzcyo9J3ByZWNpbyddIikuZmlyc3QoKS50ZXh0KCk7DQogICAgICAgICAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnBhcnNlUHJpY2UocHJpY2VUZXh0KTsNCg0KICAgICAgICAgICAgICAgIC8vIFVSTCBkZWwgYW51bmNpbw0KICAgICAgICAgICAgICAgIGNvbnN0IGFuY2hvciA9ICQoZWwpLmZpbmQoImFbaHJlZl0iKS5maXJzdCgpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGhyZWYgPSBhbmNob3IuYXR0cigiaHJlZiIpIHx8ICIiOw0KICAgICAgICAgICAgICAgIGlmICghaHJlZikgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFic1VybCA9IGhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpID8gaHJlZiA6IGAke3RoaXMuYmFzZVVybH0ke2hyZWZ9YDsNCg0KICAgICAgICAgICAgICAgIC8vIFViaWNhY2nDs24NCiAgICAgICAgICAgICAgICBjb25zdCBsb2NUZXh0ID0gdGhpcy5zYW5pdGl6ZVRleHQoDQogICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoDQogICAgICAgICAgICAgICAgICAgICAgICAiW2NsYXNzKj0nbG9jYXRpb24nXSwgW2NsYXNzKj0nTG9jYXRpb24nXSwgIg0KICAgICAgICAgICAgICAgICAgICAgICAgKyAiW2NsYXNzKj0nY2l0eSddLCBbY2xhc3MqPSdwb2JsYWNpb24nXSwgIg0KICAgICAgICAgICAgICAgICAgICAgICAgKyAiW2NsYXNzKj0nYWRkcmVzcyddLCBbY2xhc3MqPSdBZGRyZXNzJ10iDQogICAgICAgICAgICAgICAgICAgICkuZmlyc3QoKS50ZXh0KCkNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gbG9jVGV4dCB8fCB6b25lLm5hbWU7DQoNCiAgICAgICAgICAgICAgICAvLyBJbWFnZW4NCiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZV91cmwgPQ0KICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCJpbWciKS5maXJzdCgpLmF0dHIoInNyYyIpDQogICAgICAgICAgICAgICAgICAgIHx8ICQoZWwpLmZpbmQoImltZyIpLmZpcnN0KCkuYXR0cigiZGF0YS1zcmMiKQ0KICAgICAgICAgICAgICAgICAgICB8fCAiIjsNCg0KICAgICAgICAgICAgICAgIGlmIChwcmljZSA+IDAgJiYgIXNlZW5VcmxzLmhhcyhhYnNVcmwpKSB7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRyYXIgcHJvcGllZGFkZXMgY3V5YSB1YmljYWNpw7NuIG5vIGNvcnJlc3BvbmRhIGEgbmluZ3VuYSB6b25hIGFjdGl2YQ0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXRlY3RlZE11bmkgPSB0aGlzLmRldGVjdE11bmljaXBhbGl0eShsb2NhdGlvbiwgYWxsWm9uZXMsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFkZXRlY3RlZE11bmkpIHJldHVybjsgLy8gRnVlcmEgZGUgem9uYXMgYWN0aXZhcyDigJQgb21pdGlyDQogICAgICAgICAgICAgICAgICAgIHNlZW5VcmxzLmFkZChhYnNVcmwpOw0KICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh7DQogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHByaWNlLA0KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgICAgICBtdW5pY2lwYWxpdHk6IGRldGVjdGVkTXVuaSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X3R5cGU6IHRoaXMubm9ybWFsaXplVHlwZSh0aXRsZSksDQogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGFic1VybCwNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2VOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfdXJsLA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIHsgLyogc2tpcCB0YXJqZXRhIG1hbGZvcm1hZGEgKi8gfQ0KICAgICAgICB9KTsNCiAgICB9DQp9DQo=","afterExisted":true,"afterHash":"d61fca31f3ec3dac5918d7c6de37b8014d6c05872e7d59d533a6c27421549b65","afterContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IGNocm9taXVtLCBCcm93c2VyLCBCcm93c2VyQ29udGV4dCB9IGZyb20gInBsYXl3cmlnaHQiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KDQovKioNCiAqIFNjcmFwZXIgcGFyYSBNaWxhbnVuY2lvcyDigJQgY2xhc2lmaWNhZG9zIGlubW9iaWxpYXJpb3MuDQogKg0KICogTWlsYW51bmNpb3MgZXMgdW5hIFNQQSBOZXh0LmpzIHF1ZSByZW5kZXJpemEgZWwgRE9NIHbDrWEgUmVhY3Q7DQogKiB1bmEgcGV0aWNpw7NuIEhUVFAgZGlyZWN0YSAoQ2hlZXJpbykgZGV2dWVsdmUgdW4gc2hlbGwgdmFjw61vLg0KICogRXN0YSBpbXBsZW1lbnRhY2nDs24gdXNhIFBsYXl3cmlnaHQgKENocm9taXVtIGhlYWRsZXNzKSBwYXJhIGVzcGVyYXIgbGENCiAqIGhpZHJhdGFjacOzbiBkZSBSZWFjdCB5IGV4dHJhZXIgbG9zIGFudW5jaW9zIHJlYWxlcy4NCiAqDQogKiBVUkw6ICBodHRwczovL3d3dy5taWxhbnVuY2lvcy5jb20vaW5tb2JpbGlhcmlhLz9kZW1hbmRhPW4mcG9ibGFjaW9uPXtub21icmV9WyZwYWdpbmE9Tl0NCiAqLw0KDQpjb25zdCBNQV9VQSA9DQogICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMzEuMC4wLjAgU2FmYXJpLzUzNy4zNiI7DQoNCmNvbnN0IE1BX1NURUFMVEggPSBgDQpPYmplY3QuZGVmaW5lUHJvcGVydHkobmF2aWdhdG9yLCAnd2ViZHJpdmVyJywgeyBnZXQ6ICgpID0+IHVuZGVmaW5lZCB9KTsNCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICdsYW5ndWFnZXMnLCB7IGdldDogKCkgPT4gWydlcy1FUycsICdlcycsICdlbi1VUyddIH0pOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KG5hdmlnYXRvciwgJ2hhcmR3YXJlQ29uY3VycmVuY3knLCB7IGdldDogKCkgPT4gOCB9KTsNCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICdkZXZpY2VNZW1vcnknLCB7IGdldDogKCkgPT4gOCB9KTsNCndpbmRvdy5jaHJvbWUgPSB7IGFwcDogeyBpc0luc3RhbGxlZDogZmFsc2UgfSwgcnVudGltZToge30gfTsNCmA7DQoNCi8qKiBTZWxlY3RvciBlc3RhYmxlIGVuIE1pbGFudW5jaW9zIChkYXRhLXRlc3RpZCA+IGNsYXNlcyBjb24gaGFzaCBkZSBSZWFjdCkgKi8NCmNvbnN0IEFEX1NFTEVDVE9SID0NCiAgICAnW2RhdGEtdGVzdGlkPSJhZCJdLCBhcnRpY2xlW2NsYXNzKj0ibWEtQWQiXSwgbGlbY2xhc3MqPSJtYS1BZCJdLCAubWEtQWRDYXJkJzsNCg0KZXhwb3J0IGNsYXNzIE1pbGFudW5jaW9zU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyIHsNCiAgICBwcml2YXRlIHJlYWRvbmx5IE1BWF9QQUdFUyA9IDM7DQogICAgcHJpdmF0ZSByZWFkb25seSBQQUdFX1RJTUVPVVQgPSAzNV8wMDA7DQoNCiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoImh0dHBzOi8vd3d3Lm1pbGFudW5jaW9zLmNvbSIsICJNaWxhbnVuY2lvcyIpOyB9DQoNCiAgICBhc3luYyBzY3JhcGUoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7DQogICAgICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVab25lcygpOw0KICAgICAgICBjb25zdCB0YXJnZXRzID0gem9uZXMubGVuZ3RoID4gMA0KICAgICAgICAgICAgPyB6b25lcw0KICAgICAgICAgICAgOiBbeyBuYW1lOiAiTGzDrXJpYSIsIHNsdWc6ICJsbGlyaWEiIH0gYXMgKHR5cGVvZiB6b25lcylbMF1dOw0KDQogICAgICAgIGNvbnN0IHByb3BlcnRpZXM6IFByb3BlcnR5W10gPSBbXTsNCiAgICAgICAgY29uc3Qgc2VlblVybHMgPSBuZXcgU2V0PHN0cmluZz4oKTsNCg0KICAgICAgICBsZXQgYnJvd3NlcjogQnJvd3NlciB8IG51bGwgPSBudWxsOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYnJvd3NlciA9IGF3YWl0IGNocm9taXVtLmxhdW5jaCh7DQogICAgICAgICAgICAgICAgaGVhZGxlc3M6IHRydWUsDQogICAgICAgICAgICAgICAgYXJnczogWw0KICAgICAgICAgICAgICAgICAgICAiLS1kaXNhYmxlLWJsaW5rLWZlYXR1cmVzPUF1dG9tYXRpb25Db250cm9sbGVkIiwNCiAgICAgICAgICAgICAgICAgICAgIi0tbm8tc2FuZGJveCIsDQogICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtc2V0dWlkLXNhbmRib3giLA0KICAgICAgICAgICAgICAgICAgICAiLS1kaXNhYmxlLWRldi1zaG0tdXNhZ2UiLA0KICAgICAgICAgICAgICAgICAgICAiLS1sYW5nPWVzLUVTIiwNCiAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGZvciAoY29uc3Qgem9uZSBvZiB0YXJnZXRzKSB7DQogICAgICAgICAgICAgICAgZm9yIChsZXQgcGFnZSA9IDE7IHBhZ2UgPD0gdGhpcy5NQVhfUEFHRVM7IHBhZ2UrKykgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmJ1aWxkVXJsKHpvbmUubmFtZSwgem9uZS5zbHVnLCBwYWdlKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gYXdhaXQgdGhpcy5sb2FkUGFnZShicm93c2VyLCB1cmwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoIWh0bWwpIGJyZWFrOw0KDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IHByb3BlcnRpZXMubGVuZ3RoOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnNlSHRtbChodG1sLCB6b25lLCB0YXJnZXRzLCBzZWVuVXJscywgcHJvcGVydGllcyk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvdW5kID0gcHJvcGVydGllcy5sZW5ndGggLSBiZWZvcmU7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbTWlsYW51bmNpb3NdICR7em9uZS5uYW1lfSBww6FnICR7cGFnZX0g4oaSICR7Zm91bmR9IGFudW5jaW9zYCk7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gU2luIHJlc3VsdGFkb3MgZW4gZXN0YSBww6FnaW5hOiBubyBoYXkgbcOhcw0KICAgICAgICAgICAgICAgICAgICBpZiAoZm91bmQgPT09IDApIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLyBQYXVzYSBlZHVjYWRhIGVudHJlIHpvbmFzIHBhcmEgZXZpdGFyIGJsb3F1ZW9zDQogICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDFfNTAwICsgTWF0aC5yYW5kb20oKSAqIDFfMDAwKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7DQogICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbTWlsYW51bmNpb3NdIEVycm9yIGdlbmVyYWw6ICR7ZXJyLm1lc3NhZ2V9YCk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBpZiAoYnJvd3NlcikgYXdhaXQgYnJvd3Nlci5jbG9zZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVSZXN1bHRzKHByb3BlcnRpZXMpOw0KICAgIH0NCg0KICAgIC8vIOKUgOKUgOKUgCBoZWxwZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogICAgcHJpdmF0ZSBidWlsZFVybCh6b25lTmFtZTogc3RyaW5nLCB6b25lU2x1Zzogc3RyaW5nLCBwYWdlOiBudW1iZXIpOiBzdHJpbmcgewogICAgICAgIGlmICh0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIpIHsKICAgICAgICAgICAgY29uc3QgcHJvdmluY2UgPSBbIm1vbmNvZmEiLCAibGEtdmFsbC1kdWl4byJdLmluY2x1ZGVzKHpvbmVTbHVnKSA/ICJjYXN0ZWxsb24iIDogInZhbGVuY2lhIjsKICAgICAgICAgICAgY29uc3QgYmFzZSA9IGAke3RoaXMuYmFzZVVybH0vYWxxdWlsZXItZGUtcGlzb3MtZW4tJHt6b25lU2x1Z30tJHtwcm92aW5jZX0vYDsKICAgICAgICAgICAgcmV0dXJuIHBhZ2UgPiAxID8gYCR7YmFzZX0/cGFnaW5hPSR7cGFnZX1gIDogYmFzZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgYmFzZSA9IGAke3RoaXMuYmFzZVVybH0vaW5tb2JpbGlhcmlhLz9kZW1hbmRhPW4mcG9ibGFjaW9uPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHpvbmVOYW1lKX1gOwogICAgICAgIHJldHVybiBwYWdlID4gMSA/IGAke2Jhc2V9JnBhZ2luYT0ke3BhZ2V9YCA6IGJhc2U7DQogICAgfQ0KDQogICAgcHJpdmF0ZSBhc3luYyBsb2FkUGFnZShicm93c2VyOiBCcm93c2VyLCB1cmw6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7DQogICAgICAgIGxldCBjb250ZXh0OiBCcm93c2VyQ29udGV4dCB8IG51bGwgPSBudWxsOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCh7DQogICAgICAgICAgICAgICAgdmlld3BvcnQ6IHsgd2lkdGg6IDEzNjYsIGhlaWdodDogNzY4IH0sDQogICAgICAgICAgICAgICAgbG9jYWxlOiAiZXMtRVMiLA0KICAgICAgICAgICAgICAgIHRpbWV6b25lSWQ6ICJFdXJvcGUvTWFkcmlkIiwNCiAgICAgICAgICAgICAgICB1c2VyQWdlbnQ6IE1BX1VBLA0KICAgICAgICAgICAgICAgIGV4dHJhSFRUUEhlYWRlcnM6IHsNCiAgICAgICAgICAgICAgICAgICAgIkFjY2VwdCI6ICJ0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS9hdmlmLGltYWdlL3dlYnAsKi8qO3E9MC44IiwNCiAgICAgICAgICAgICAgICAgICAgIkFjY2VwdC1MYW5ndWFnZSI6ICJlcy1FUyxlcztxPTAuOSIsDQogICAgICAgICAgICAgICAgICAgICJSZWZlcmVyIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5lcy8iLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUZldGNoLURlc3QiOiAiZG9jdW1lbnQiLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUZldGNoLU1vZGUiOiAibmF2aWdhdGUiLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUZldGNoLVNpdGUiOiAiY3Jvc3Mtc2l0ZSIsDQogICAgICAgICAgICAgICAgICAgICJTZWMtQ0gtVUEiOiAnIkNocm9taXVtIjt2PSIxMzEiLCAiR29vZ2xlIENocm9tZSI7dj0iMTMxIiwgIk5vdF9BIEJyYW5kIjt2PSIyNCInLA0KICAgICAgICAgICAgICAgICAgICAiU2VjLUNILVVBLU1vYmlsZSI6ICI/MCIsDQogICAgICAgICAgICAgICAgICAgICJTZWMtQ0gtVUEtUGxhdGZvcm0iOiAnIldpbmRvd3MiJywNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGF3YWl0IGNvbnRleHQuYWRkSW5pdFNjcmlwdChNQV9TVEVBTFRIKTsNCg0KICAgICAgICAgICAgY29uc3QgcGcgPSBhd2FpdCBjb250ZXh0Lm5ld1BhZ2UoKTsNCiAgICAgICAgICAgIGF3YWl0IHBnLmdvdG8odXJsLCB7IHdhaXRVbnRpbDogImRvbWNvbnRlbnRsb2FkZWQiLCB0aW1lb3V0OiB0aGlzLlBBR0VfVElNRU9VVCB9KTsNCg0KICAgICAgICAgICAgLy8gRXNwZXJhciBhIHF1ZSBSZWFjdCBoaWRyYXRlIGxvcyBhbnVuY2lvcyAobcOheCAxMiBzKQ0KICAgICAgICAgICAgYXdhaXQgcGcNCiAgICAgICAgICAgICAgICAud2FpdEZvclNlbGVjdG9yKEFEX1NFTEVDVE9SLCB7IHRpbWVvdXQ6IDEyXzAwMCB9KQ0KICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7IC8qIHRpbWVvdXQgYWNlcHRhYmxlOyBwcm9jZXNhbW9zIGxvIHF1ZSBoYXlhICovIH0pOw0KDQogICAgICAgICAgICAvLyBBY2VwdGFyIGJhbm5lciBkZSBwcml2YWNpZGFkIHNpIGFwYXJlY2UNCiAgICAgICAgICAgIGF3YWl0IHBnLmxvY2F0b3IoDQogICAgICAgICAgICAgICAgIiNDeWJvdENvb2tpZWJvdERpYWxvZ0JvZHlCdXR0b25BY2NlcHQsICINCiAgICAgICAgICAgICAgICArICJbaWQqPSdhY2NlcHQtY29va2llcyddLCAiDQogICAgICAgICAgICAgICAgKyAiYnV0dG9uOmhhcy10ZXh0KCdBY2VwdGFyIHRvZG8nKSwgIg0KICAgICAgICAgICAgICAgICsgImJ1dHRvbjpoYXMtdGV4dCgnQWNlcHRhcicpIg0KICAgICAgICAgICAgKS5maXJzdCgpLmNsaWNrKHsgdGltZW91dDogM18wMDAsIGZvcmNlOiB0cnVlIH0pLmNhdGNoKCgpID0+IHsgfSk7DQoNCiAgICAgICAgICAgIC8vIEJyZXZlIHBhdXNhIHBhcmEgcmUtcmVuZGVycyBwb3N0LWNvb2tpZQ0KICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDgwMCkpOw0KDQogICAgICAgICAgICByZXR1cm4gYXdhaXQgcGcuY29udGVudCgpOw0KICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkgew0KICAgICAgICAgICAgY29uc29sZS53YXJuKGBbTWlsYW51bmNpb3NdIEVycm9yIGNhcmdhbmRvICR7dXJsfTogJHtlcnIubWVzc2FnZX1gKTsNCiAgICAgICAgICAgIHJldHVybiAiIjsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGlmIChjb250ZXh0KSBhd2FpdCBjb250ZXh0LmNsb3NlKCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBwcml2YXRlIHBhcnNlSHRtbCgNCiAgICAgICAgaHRtbDogc3RyaW5nLA0KICAgICAgICB6b25lOiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHRoaXMuZ2V0QWN0aXZlWm9uZXM+PlswXSwNCiAgICAgICAgYWxsWm9uZXM6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5nZXRBY3RpdmVab25lcz4+LA0KICAgICAgICBzZWVuVXJsczogU2V0PHN0cmluZz4sDQogICAgICAgIG91dDogUHJvcGVydHlbXQ0KICAgICk6IHZvaWQgew0KICAgICAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKGh0bWwpOw0KDQogICAgICAgICQoQURfU0VMRUNUT1IpLmVhY2goKF9pLCBlbCkgPT4gew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAvLyBUw610dWxvDQogICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPQ0KICAgICAgICAgICAgICAgICAgICB0aGlzLnNhbml0aXplVGV4dCgkKGVsKS5maW5kKCJoMiwgaDMsIFtjbGFzcyo9J3RpdGxlJ10sIFtjbGFzcyo9J1RpdGxlJ10iKS5maXJzdCgpLnRleHQoKSkNCiAgICAgICAgICAgICAgICAgICAgfHwgIlByb3BpZWRhZCI7DQoNCiAgICAgICAgICAgICAgICAvLyBQcmVjaW8NCiAgICAgICAgICAgICAgICBjb25zdCBwcmljZVRleHQgPSAkKGVsKS5maW5kKCJbY2xhc3MqPSdwcmljZSddLCBbY2xhc3MqPSdQcmljZSddLCBbY2xhc3MqPSdwcmVjaW8nXSIpLmZpcnN0KCkudGV4dCgpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5wYXJzZVByaWNlKHByaWNlVGV4dCk7DQoNCiAgICAgICAgICAgICAgICAvLyBVUkwgZGVsIGFudW5jaW8NCiAgICAgICAgICAgICAgICBjb25zdCBhbmNob3IgPSAkKGVsKS5maW5kKCJhW2hyZWZdIikuZmlyc3QoKTsNCiAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gYW5jaG9yLmF0dHIoImhyZWYiKSB8fCAiIjsNCiAgICAgICAgICAgICAgICBpZiAoIWhyZWYpIHJldHVybjsNCiAgICAgICAgICAgICAgICBjb25zdCBhYnNVcmwgPSBocmVmLnN0YXJ0c1dpdGgoImh0dHAiKSA/IGhyZWYgOiBgJHt0aGlzLmJhc2VVcmx9JHtocmVmfWA7DQoNCiAgICAgICAgICAgICAgICAvLyBVYmljYWNpw7NuDQogICAgICAgICAgICAgICAgY29uc3QgbG9jVGV4dCA9IHRoaXMuc2FuaXRpemVUZXh0KA0KICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKA0KICAgICAgICAgICAgICAgICAgICAgICAgIltjbGFzcyo9J2xvY2F0aW9uJ10sIFtjbGFzcyo9J0xvY2F0aW9uJ10sICINCiAgICAgICAgICAgICAgICAgICAgICAgICsgIltjbGFzcyo9J2NpdHknXSwgW2NsYXNzKj0ncG9ibGFjaW9uJ10sICINCiAgICAgICAgICAgICAgICAgICAgICAgICsgIltjbGFzcyo9J2FkZHJlc3MnXSwgW2NsYXNzKj0nQWRkcmVzcyddIg0KICAgICAgICAgICAgICAgICAgICApLmZpcnN0KCkudGV4dCgpDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGxvY1RleHQgfHwgem9uZS5uYW1lOw0KDQogICAgICAgICAgICAgICAgLy8gSW1hZ2VuDQogICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VfdXJsID0NCiAgICAgICAgICAgICAgICAgICAgJChlbCkuZmluZCgiaW1nIikuZmlyc3QoKS5hdHRyKCJzcmMiKQ0KICAgICAgICAgICAgICAgICAgICB8fCAkKGVsKS5maW5kKCJpbWciKS5maXJzdCgpLmF0dHIoImRhdGEtc3JjIikNCiAgICAgICAgICAgICAgICAgICAgfHwgIiI7DQoNCiAgICAgICAgICAgICAgICBpZiAocHJpY2UgPiAwICYmICFzZWVuVXJscy5oYXMoYWJzVXJsKSkgew0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0cmFyIHByb3BpZWRhZGVzIGN1eWEgdWJpY2FjacOzbiBubyBjb3JyZXNwb25kYSBhIG5pbmd1bmEgem9uYSBhY3RpdmENCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV0ZWN0ZWRNdW5pID0gdGhpcy5kZXRlY3RNdW5pY2lwYWxpdHkobG9jYXRpb24sIGFsbFpvbmVzLCAiIik7DQogICAgICAgICAgICAgICAgICAgIGlmICghZGV0ZWN0ZWRNdW5pKSByZXR1cm47IC8vIEZ1ZXJhIGRlIHpvbmFzIGFjdGl2YXMg4oCUIG9taXRpcg0KICAgICAgICAgICAgICAgICAgICBzZWVuVXJscy5hZGQoYWJzVXJsKTsNCiAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2goew0KICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUsDQogICAgICAgICAgICAgICAgICAgICAgICBwcmljZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLA0KICAgICAgICAgICAgICAgICAgICAgICAgbXVuaWNpcGFsaXR5OiBkZXRlY3RlZE11bmksCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X3R5cGU6IHRoaXMubm9ybWFsaXplVHlwZSh0aXRsZSksCiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlOiB0aGlzLl9vcGVyYXRpb25UeXBlLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGFic1VybCwKICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZU5hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICBpbWFnZV91cmwsDQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gY2F0Y2ggeyAvKiBza2lwIHRhcmpldGEgbWFsZm9ybWFkYSAqLyB9DQogICAgICAgIH0pOw0KICAgIH0NCn0NCg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\pisosScraper.ts","beforeExisted":true,"beforeHash":"c2e79a816b7d5a0bbb31ece95b0711bbc53218cc8c87207aa274dc0ab7935152","beforeContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IEJhc2VTY3JhcGVyIH0gZnJvbSAiLi9iYXNlU2NyYXBlciI7CmltcG9ydCB7IFZBTEVOQ0lBX0RJU1RSSUNUUyB9IGZyb20gIi4uL2NvbmZpZy92YWxlbmNpYURpc3RyaWN0cyI7CmltcG9ydCB7IFZhbGVuY2lhRGlzdHJpY3RNb2RlbCB9IGZyb20gIi4uL21vZGVscy92YWxlbmNpYURpc3RyaWN0TW9kZWwiOwoKY29uc3QgTUFYX1BBR0VTID0gNTsgLy8gTcOheGltbyBkZSBww6FnaW5hcyBwb3Igem9uYQovKiogVGlwb3MgZGUgcHJvcGllZGFkIGNvbiBzdXMgcGF0aCBlbiBwaXNvcy5jb20gKi8KY29uc3QgUElTT19UWVBFUyA9IFsicGlzb3MiLCAiY2FzYXMiLCAiY2hhbGV0cyJdIGFzIGNvbnN0OwoKLy8gQ2FjaMOpIGRlIFVSTHMgYmFzZSBxdWUgZGV2b2x2aWVyb24gNDA0IOKAlCBzZSBvbWl0ZW4gZHVyYW50ZSA0OCBoIHBhcmEgbm8KLy8gZGVzcGVyZGljaWFyIHBldGljaW9uZXMgZW4gem9uYXMgcXVlIG5vIGV4aXN0ZW4gZW4gcGlzb3MuY29tLgpjb25zdCBwaXNvczQwNENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTsgLy8gYmFzZVVybCDihpIgZXhwaXJhY2nDs24gKG1zIGVwb2NoKQpjb25zdCBQSVNPU180MDRfVFRMID0gNDggKiA2MCAqIDYwICogMTAwMDsgICAgICAgLy8gNDggaG9yYXMKCmV4cG9ydCBjbGFzcyBQaXNvc1NjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlciB7CiAgY29uc3RydWN0b3IoKSB7IHN1cGVyKCJodHRwczovL3d3dy5waXNvcy5jb20iLCAiUGlzb3MuY29tIik7IH0KICBwcml2YXRlIGFzeW5jIGdldFZhbGVuY2lhRGlzdHJpY3RUYXJnZXRzKCk6IFByb21pc2U8QXJyYXk8eyBzbHVnOiBzdHJpbmc7IHpvbmVOYW1lOiBzdHJpbmcgfT4+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBWYWxlbmNpYURpc3RyaWN0TW9kZWwuZmluZEFjdGl2ZSgpOwogICAgICBjb25zdCBkYXRhID0gcm93cwogICAgICAgIC5maWx0ZXIociA9PiAhIXIucGlzb3Nfc2x1ZykKICAgICAgICAubWFwKHIgPT4gKHsgc2x1Zzogci5waXNvc19zbHVnLCB6b25lTmFtZTogYCR7ci5uYW1lfSwgVmFsZW5jaWFgIH0pKTsKICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMCkgcmV0dXJuIGRhdGE7CiAgICB9IGNhdGNoIHsgLyogZmFsbGJhY2sgKi8gfQogICAgcmV0dXJuIFZBTEVOQ0lBX0RJU1RSSUNUUy5tYXAoZCA9PiAoeyBzbHVnOiBkLnBpc29zLCB6b25lTmFtZTogYCR7ZC5uYW1lfSwgVmFsZW5jaWFgIH0pKTsKICB9CgogIGFzeW5jIHNjcmFwZSgpOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIC8vIFVzYSBnZXRBY3RpdmVab25lcygpIHBhcmEgcmVzcGV0YXIgZWwgem9uZSBvdmVycmlkZSAoc2NyYXBpbmcgcG9yIHpvbmEpCiAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsKICAgIGxldCB0YXJnZXRzOiBBcnJheTx7IGJhc2VVcmw6IHN0cmluZzsgem9uZU5hbWU6IHN0cmluZyB9PiA9IFtdOwoKICAgIGNvbnN0IHR5cGVzRm9yT3BlcmF0aW9uID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gKFsicGlzb3MiXSBhcyBjb25zdCkgOiBQSVNPX1RZUEVTOwogICAgaWYgKHpvbmVzLmxlbmd0aCA+IDApIHsKICAgICAgZm9yIChjb25zdCB6IG9mIHpvbmVzKSB7CiAgICAgICAgY29uc3QgZGlzdHJpY3RTbHVncyA9IHouc2x1ZyA9PT0gInZhbGVuY2lhIiA/IGF3YWl0IHRoaXMuZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMoKSA6IG51bGw7CiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzRm9yT3BlcmF0aW9uKSB7CiAgICAgICAgICBpZiAoZGlzdHJpY3RTbHVncykgewogICAgICAgICAgICBmb3IgKGNvbnN0IGRpc3RyaWN0IG9mIGRpc3RyaWN0U2x1Z3MpIHsKICAgICAgICAgICAgICBjb25zdCBkaXN0cmljdExvY2F0aW9uU2x1ZyA9IGRpc3RyaWN0LnNsdWcucmVwbGFjZSgvXnBpc29zLS8sICIiKTsKICAgICAgICAgICAgICBjb25zdCBkaXN0cmljdFR5cGVTbHVnID0gdHlwZSA9PT0gInBpc29zIiA/IGRpc3RyaWN0LnNsdWcgOiBgJHt0eXBlfS0ke2Rpc3RyaWN0TG9jYXRpb25TbHVnfWA7CiAgICAgICAgICAgICAgY29uc3Qgb3BQYXRoID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gImFscXVpbGVyIiA6ICJ2ZW50YSI7CiAgICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKHsgYmFzZVVybDogYCR7dGhpcy5iYXNlVXJsfS8ke29wUGF0aH0vJHtkaXN0cmljdFR5cGVTbHVnfS9gLCB6b25lTmFtZTogZGlzdHJpY3Quem9uZU5hbWUgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIHBpc29zX3NsdWcgc2UgdXNhIHPDs2xvIHBhcmEgZWwgdGlwbyBwaXNvcyAocHVlZGUgc2VyIHBlcnNvbmFsaXphZG8sIGVqOiAicGlzb3MtcmliYS1yb2phLWRlLXR1cmlhIikKICAgICAgICAgICAgLy8gUGFyYSBjYXNhcy9jaGFsZXRzIGRlcml2YW1vcyBlbCBzbHVnIGRlIGxhIHBhcnRlIGRlIGxvY2FsaWRhZCBkZSBwaXNvc19zbHVnCiAgICAgICAgICAgIC8vIChlajogInBpc29zLXJpYmEtcm9qYS1kZS10dXJpYSIg4oaSICJjYXNhcy1yaWJhLXJvamEtZGUtdHVyaWEiKQogICAgICAgICAgICBjb25zdCBsb2NhdGlvblNsdWcgPSB6LnBpc29zX3NsdWcgPyB6LnBpc29zX3NsdWcucmVwbGFjZSgvXnBpc29zLS8sICIiKSA6IHouc2x1ZzsKICAgICAgICAgICAgY29uc3Qgc2x1ZyA9ICh0eXBlID09PSAicGlzb3MiICYmIHoucGlzb3Nfc2x1ZykgPyB6LnBpc29zX3NsdWcgOiBgJHt0eXBlfS0ke2xvY2F0aW9uU2x1Z31gOwogICAgICAgICAgICBjb25zdCBvcFBhdGggPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAiYWxxdWlsZXIiIDogInZlbnRhIjsKICAgICAgICAgICAgdGFyZ2V0cy5wdXNoKHsgYmFzZVVybDogYCR7dGhpcy5iYXNlVXJsfS8ke29wUGF0aH0vJHtzbHVnfS9gLCB6b25lTmFtZTogei5uYW1lIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzRm9yT3BlcmF0aW9uKSB7CiAgICAgICAgY29uc3Qgb3BQYXRoID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gImFscXVpbGVyIiA6ICJ2ZW50YSI7CiAgICAgICAgdGFyZ2V0cy5wdXNoKHsgYmFzZVVybDogYCR7dGhpcy5iYXNlVXJsfS8ke29wUGF0aH0vJHt0eXBlfS1sbGlyaWEvYCwgem9uZU5hbWU6ICJMbMOtcmlhIiB9KTsKICAgICAgfQogICAgfQoKICAgIGNvbnN0IGFsbDogUHJvcGVydHlbXSA9IFtdOwogICAgY29uc3Qgc2VlblVybHMgPSBuZXcgU2V0PHN0cmluZz4oKTsKCiAgICBmb3IgKGNvbnN0IHsgYmFzZVVybCwgem9uZU5hbWUgfSBvZiB0YXJnZXRzKSB7CiAgICAgIC8vIFNhbHRhciB6b25hcyBjYWNoZWFkYXMgY29tbyA0MDQgaGFzdGEgcXVlIGV4cGlyZSBlbCBUVEwKICAgICAgY29uc3QgYmxvY2tlZDQwNFVudGlsID0gcGlzb3M0MDRDYWNoZS5nZXQoYmFzZVVybCk7CiAgICAgIGlmIChibG9ja2VkNDA0VW50aWwgJiYgRGF0ZS5ub3coKSA8IGJsb2NrZWQ0MDRVbnRpbCkgewogICAgICAgIGNvbnN0IHJlbWFpbkhycyA9IE1hdGguY2VpbCgoYmxvY2tlZDQwNFVudGlsIC0gRGF0ZS5ub3coKSkgLyAzNjAwMDAwKTsKICAgICAgICBjb25zb2xlLmxvZyhgW1Bpc29zLmNvbV0gJHtiYXNlVXJsfSBzaW4gcmVzdWx0YWRvcyBjb25vY2lkb3MsIG9taXRpZW5kbyAoJHtyZW1haW5IcnN9aCByZXN0YW50ZXMpYCk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIGxldCBwYWdlQ291bnQgPSAwOwoKICAgICAgZm9yIChsZXQgcGFnZU51bSA9IDE7IHBhZ2VOdW0gPD0gTUFYX1BBR0VTOyBwYWdlTnVtKyspIHsKICAgICAgICAvLyBQaXNvcy5jb20gdXNhID9wYWdpbmE9TiBhIHBhcnRpciBkZSBsYSBww6FnaW5hIDIKICAgICAgICBjb25zdCBwYWdlVXJsID0gcGFnZU51bSA9PT0gMSA/IGJhc2VVcmwgOiBgJHtiYXNlVXJsfT9wYWdpbmE9JHtwYWdlTnVtfWA7CiAgICAgICAgY29uc3QgaHRtbCA9IGF3YWl0IHRoaXMuZmV0Y2hIdG1sKHBhZ2VVcmwpOwogICAgICAgIGlmICghaHRtbCkgewogICAgICAgICAgLy8gU2kgbGEgcHJpbWVyYSBww6FnaW5hIGRhIDQwNCB1IG90cm8gZXJyb3IsIGNhY2hlYXIgbGEgVVJMIGJhc2UgNDggaAogICAgICAgICAgaWYgKHBhZ2VOdW0gPT09IDEpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coYFtQaXNvcy5jb21dIENhY2hlYW5kbyAke2Jhc2VVcmx9IGNvbW8gNDA0IGR1cmFudGUgNDhoYCk7CiAgICAgICAgICAgIHBpc29zNDA0Q2FjaGUuc2V0KGJhc2VVcmwsIERhdGUubm93KCkgKyBQSVNPU180MDRfVFRMKTsKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTsKICAgICAgICBsZXQgZm91bmQgPSAwOwoKICAgICAgICAvLyBQaXNvcy5jb20gMjAyNDogY2FyZHMgY29uIGNsYXNlIGFkLXByZXZpZXcgbyBsaS5hZC1wcmV2aWV3LWl0ZW0KICAgICAgICAkKCJbY2xhc3MqPSdhZC1wcmV2aWV3J10sIC5hZC1pdGVtLCBhcnRpY2xlLCBsaVtjbGFzcyo9J2xpc3QtaXRlbSddIikuZWFjaCgoX2ksIGVsKSA9PiB7CiAgICAgICAgICBjb25zdCBsaW5rRWwgPSAkKGVsKS5maW5kKCJhW2hyZWYqPScvY29tcHJhci8nXSwgYVtocmVmKj0nL2FscXVpbGVyLyddLCBhW2hyZWYqPScvYW51bmNpb19pbm1vYmlsaWFyaWEvJ10iKS5maXJzdCgpOwogICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNhbml0aXplVGV4dCgKICAgICAgICAgICAgbGlua0VsLnRleHQoKS50cmltKCkuc3BsaXQoIlxuIilbMF0gfHwKICAgICAgICAgICAgJChlbCkuZmluZCgiaDIsIGgzLCBbY2xhc3MqPSd0aXRsZSddIikuZmlyc3QoKS50ZXh0KCkgfHwKICAgICAgICAgICAgYFByb3BpZWRhZCBlbiAke3pvbmVOYW1lfWAKICAgICAgICAgICk7CiAgICAgICAgICBjb25zdCBwcmljZVJhdyA9ICQoZWwpLmZpbmQoIltjbGFzcyo9J3ByaWNlJ10sIC5wcmljZSwgW2NsYXNzKj0nUHJpY2UnXSIpLmZpcnN0KCkudGV4dCgpOwogICAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnBhcnNlUHJpY2UocHJpY2VSYXcpOwogICAgICAgICAgY29uc3QgaHJlZiA9IGxpbmtFbC5hdHRyKCJocmVmIikgfHwgJChlbCkuZmluZCgiYVtocmVmXSIpLmZpcnN0KCkuYXR0cigiaHJlZiIpIHx8ICIiOwogICAgICAgICAgaWYgKCFocmVmIHx8ICFwcmljZSkgcmV0dXJuOwogICAgICAgICAgY29uc3QgdXJsMiA9IGhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpID8gaHJlZiA6IGAke3RoaXMuYmFzZVVybH0ke2hyZWZ9YDsKICAgICAgICAgIGlmIChzZWVuVXJscy5oYXModXJsMikpIHJldHVybjsKICAgICAgICAgIHNlZW5VcmxzLmFkZCh1cmwyKTsKICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5zYW5pdGl6ZVRleHQoJChlbCkuZmluZCgiLmxvY2F0aW9uLCBbY2xhc3MqPSdsb2NhdGlvbiddIikuZmlyc3QoKS50ZXh0KCkgfHwgem9uZU5hbWUpOwogICAgICAgICAgY29uc3Qgcm9vbXMgPSBwYXJzZUludCgkKGVsKS5maW5kKCJbY2xhc3MqPSdoYWInXSwgW2NsYXNzKj0ncm9vbSddIikuZmlyc3QoKS50ZXh0KCkpIHx8IDA7CiAgICAgICAgICBjb25zdCBzaXplX20yID0gcGFyc2VJbnQoJChlbCkuZmluZCgiW2NsYXNzKj0nbTInXSwgW2NsYXNzKj0nbWV0cm9zJ10iKS5maXJzdCgpLnRleHQoKSkgfHwgMDsKICAgICAgICAgIGNvbnN0IGltYWdlX3VybCA9ICQoZWwpLmZpbmQoImltZyIpLmF0dHIoInNyYyIpIHx8ICQoZWwpLmZpbmQoImltZyIpLmF0dHIoImRhdGEtc3JjIikgfHwgIiI7CiAgICAgICAgICBhbGwucHVzaCh7CiAgICAgICAgICAgIHRpdGxlLCBwcmljZSwgbG9jYXRpb24sCiAgICAgICAgICAgIG11bmljaXBhbGl0eTogdGhpcy5kZXRlY3RNdW5pY2lwYWxpdHkobG9jYXRpb24gKyAiICIgKyB6b25lTmFtZSwgem9uZXMsIHpvbmVOYW1lKSwKICAgICAgICAgICAgcHJvcGVydHlfdHlwZTogdGhpcy5ub3JtYWxpemVUeXBlKHRpdGxlKSwKICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGU6IHRoaXMuX29wZXJhdGlvblR5cGUsCiAgICAgICAgICAgIHJvb21zLCBzaXplX20yLCB1cmw6IHVybDIsIHNvdXJjZTogdGhpcy5zb3VyY2VOYW1lLCBpbWFnZV91cmwsCiAgICAgICAgICB9KTsKICAgICAgICAgIGZvdW5kKys7CiAgICAgICAgfSk7CgogICAgICAgIHBhZ2VDb3VudCsrOwogICAgICAgIGlmIChmb3VuZCA8IDMpIGJyZWFrOyAvLyBQcm9iYWJsZSDDumx0aW1hIHDDoWdpbmEKICAgICAgfQoKICAgICAgY29uc29sZS5sb2coYFske3RoaXMuc291cmNlTmFtZX1dICR7em9uZU5hbWV9OiAke3BhZ2VDb3VudH0gcMOhZ2luYXMsICR7c2VlblVybHMuc2l6ZX0gw7puaWNvcyBoYXN0YSBhaG9yYWApOwogICAgfQoKICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUmVzdWx0cyhhbGwpOwogIH0KCn0KCgo=","afterExisted":true,"afterHash":"c9ef7e8360aff03ea41018a8b3949a4f0b81d8c02d6451485d3af1f5f059ebbc","afterContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IEJhc2VTY3JhcGVyIH0gZnJvbSAiLi9iYXNlU2NyYXBlciI7CmltcG9ydCB7IFZBTEVOQ0lBX0RJU1RSSUNUUyB9IGZyb20gIi4uL2NvbmZpZy92YWxlbmNpYURpc3RyaWN0cyI7CmltcG9ydCB7IFZhbGVuY2lhRGlzdHJpY3RNb2RlbCB9IGZyb20gIi4uL21vZGVscy92YWxlbmNpYURpc3RyaWN0TW9kZWwiOwoKY29uc3QgTUFYX1BBR0VTID0gNTsgLy8gTcOheGltbyBkZSBww6FnaW5hcyBwb3Igem9uYQovKiogVGlwb3MgZGUgcHJvcGllZGFkIGNvbiBzdXMgcGF0aCBlbiBwaXNvcy5jb20gKi8KY29uc3QgUElTT19UWVBFUyA9IFsicGlzb3MiLCAiY2FzYXMiLCAiY2hhbGV0cyJdIGFzIGNvbnN0OwoKLy8gQ2FjaMOpIGRlIFVSTHMgYmFzZSBxdWUgZGV2b2x2aWVyb24gNDA0IOKAlCBzZSBvbWl0ZW4gZHVyYW50ZSA0OCBoIHBhcmEgbm8KLy8gZGVzcGVyZGljaWFyIHBldGljaW9uZXMgZW4gem9uYXMgcXVlIG5vIGV4aXN0ZW4gZW4gcGlzb3MuY29tLgpjb25zdCBwaXNvczQwNENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTsgLy8gYmFzZVVybCDihpIgZXhwaXJhY2nDs24gKG1zIGVwb2NoKQpjb25zdCBQSVNPU180MDRfVFRMID0gNDggKiA2MCAqIDYwICogMTAwMDsgICAgICAgLy8gNDggaG9yYXMKCmV4cG9ydCBjbGFzcyBQaXNvc1NjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlciB7CiAgY29uc3RydWN0b3IoKSB7IHN1cGVyKCJodHRwczovL3d3dy5waXNvcy5jb20iLCAiUGlzb3MuY29tIik7IH0KICBwcml2YXRlIGFzeW5jIGdldFZhbGVuY2lhRGlzdHJpY3RUYXJnZXRzKCk6IFByb21pc2U8QXJyYXk8eyBzbHVnOiBzdHJpbmc7IHpvbmVOYW1lOiBzdHJpbmcgfT4+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBWYWxlbmNpYURpc3RyaWN0TW9kZWwuZmluZEFsbCgpOwogICAgICBpZiAocm93cy5sZW5ndGggPiAwKSByZXR1cm4gcm93cwogICAgICAgIC5maWx0ZXIociA9PiByLmFjdGl2ZSAhPT0gMCAmJiAhIXIucGlzb3Nfc2x1ZykKICAgICAgICAubWFwKHIgPT4gKHsgc2x1Zzogci5waXNvc19zbHVnLCB6b25lTmFtZTogYCR7ci5uYW1lfSwgVmFsZW5jaWFgIH0pKTsKICAgIH0gY2F0Y2ggeyAvKiBmYWxsYmFjayAqLyB9CiAgICByZXR1cm4gVkFMRU5DSUFfRElTVFJJQ1RTLm1hcChkID0+ICh7IHNsdWc6IGQucGlzb3MsIHpvbmVOYW1lOiBgJHtkLm5hbWV9LCBWYWxlbmNpYWAgfSkpOwogIH0KCiAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gewogICAgLy8gVXNhIGdldEFjdGl2ZVpvbmVzKCkgcGFyYSByZXNwZXRhciBlbCB6b25lIG92ZXJyaWRlIChzY3JhcGluZyBwb3Igem9uYSkKICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVab25lcygpOwogICAgbGV0IHRhcmdldHM6IEFycmF5PHsgYmFzZVVybDogc3RyaW5nOyB6b25lTmFtZTogc3RyaW5nIH0+ID0gW107CgogICAgY29uc3QgdHlwZXNGb3JPcGVyYXRpb24gPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAoWyJwaXNvcyJdIGFzIGNvbnN0KSA6IFBJU09fVFlQRVM7CiAgICBpZiAoem9uZXMubGVuZ3RoID4gMCkgewogICAgICBmb3IgKGNvbnN0IHogb2Ygem9uZXMpIHsKICAgICAgICBjb25zdCBkaXN0cmljdFNsdWdzID0gei5zbHVnID09PSAidmFsZW5jaWEiID8gYXdhaXQgdGhpcy5nZXRWYWxlbmNpYURpc3RyaWN0VGFyZ2V0cygpIDogbnVsbDsKICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXNGb3JPcGVyYXRpb24pIHsKICAgICAgICAgIGlmIChkaXN0cmljdFNsdWdzKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgZGlzdHJpY3Qgb2YgZGlzdHJpY3RTbHVncykgewogICAgICAgICAgICAgIGNvbnN0IGRpc3RyaWN0TG9jYXRpb25TbHVnID0gZGlzdHJpY3Quc2x1Zy5yZXBsYWNlKC9ecGlzb3MtLywgIiIpOwogICAgICAgICAgICAgIGNvbnN0IGRpc3RyaWN0VHlwZVNsdWcgPSB0eXBlID09PSAicGlzb3MiID8gZGlzdHJpY3Quc2x1ZyA6IGAke3R5cGV9LSR7ZGlzdHJpY3RMb2NhdGlvblNsdWd9YDsKICAgICAgICAgICAgICBjb25zdCBvcFBhdGggPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAiYWxxdWlsZXIiIDogInZlbnRhIjsKICAgICAgICAgICAgICB0YXJnZXRzLnB1c2goeyBiYXNlVXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7b3BQYXRofS8ke2Rpc3RyaWN0VHlwZVNsdWd9L2AsIHpvbmVOYW1lOiBkaXN0cmljdC56b25lTmFtZSB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gcGlzb3Nfc2x1ZyBzZSB1c2Egc8OzbG8gcGFyYSBlbCB0aXBvIHBpc29zIChwdWVkZSBzZXIgcGVyc29uYWxpemFkbywgZWo6ICJwaXNvcy1yaWJhLXJvamEtZGUtdHVyaWEiKQogICAgICAgICAgICAvLyBQYXJhIGNhc2FzL2NoYWxldHMgZGVyaXZhbW9zIGVsIHNsdWcgZGUgbGEgcGFydGUgZGUgbG9jYWxpZGFkIGRlIHBpc29zX3NsdWcKICAgICAgICAgICAgLy8gKGVqOiAicGlzb3MtcmliYS1yb2phLWRlLXR1cmlhIiDihpIgImNhc2FzLXJpYmEtcm9qYS1kZS10dXJpYSIpCiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uU2x1ZyA9IHoucGlzb3Nfc2x1ZyA/IHoucGlzb3Nfc2x1Zy5yZXBsYWNlKC9ecGlzb3MtLywgIiIpIDogei5zbHVnOwogICAgICAgICAgICBjb25zdCBzbHVnID0gKHR5cGUgPT09ICJwaXNvcyIgJiYgei5waXNvc19zbHVnKSA/IHoucGlzb3Nfc2x1ZyA6IGAke3R5cGV9LSR7bG9jYXRpb25TbHVnfWA7CiAgICAgICAgICAgIGNvbnN0IG9wUGF0aCA9IHRoaXMuX29wZXJhdGlvblR5cGUgPT09ICJyZW50IiA/ICJhbHF1aWxlciIgOiAidmVudGEiOwogICAgICAgICAgICB0YXJnZXRzLnB1c2goeyBiYXNlVXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7b3BQYXRofS8ke3NsdWd9L2AsIHpvbmVOYW1lOiB6Lm5hbWUgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9IGVsc2UgewogICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXNGb3JPcGVyYXRpb24pIHsKICAgICAgICBjb25zdCBvcFBhdGggPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAiYWxxdWlsZXIiIDogInZlbnRhIjsKICAgICAgICB0YXJnZXRzLnB1c2goeyBiYXNlVXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7b3BQYXRofS8ke3R5cGV9LWxsaXJpYS9gLCB6b25lTmFtZTogIkxsw61yaWEiIH0pOwogICAgICB9CiAgICB9CgogICAgY29uc3QgYWxsOiBQcm9wZXJ0eVtdID0gW107CiAgICBjb25zdCBzZWVuVXJscyA9IG5ldyBTZXQ8c3RyaW5nPigpOwoKICAgIGZvciAoY29uc3QgeyBiYXNlVXJsLCB6b25lTmFtZSB9IG9mIHRhcmdldHMpIHsKICAgICAgLy8gU2FsdGFyIHpvbmFzIGNhY2hlYWRhcyBjb21vIDQwNCBoYXN0YSBxdWUgZXhwaXJlIGVsIFRUTAogICAgICBjb25zdCBibG9ja2VkNDA0VW50aWwgPSBwaXNvczQwNENhY2hlLmdldChiYXNlVXJsKTsKICAgICAgaWYgKGJsb2NrZWQ0MDRVbnRpbCAmJiBEYXRlLm5vdygpIDwgYmxvY2tlZDQwNFVudGlsKSB7CiAgICAgICAgY29uc3QgcmVtYWluSHJzID0gTWF0aC5jZWlsKChibG9ja2VkNDA0VW50aWwgLSBEYXRlLm5vdygpKSAvIDM2MDAwMDApOwogICAgICAgIGNvbnNvbGUubG9nKGBbUGlzb3MuY29tXSAke2Jhc2VVcmx9IHNpbiByZXN1bHRhZG9zIGNvbm9jaWRvcywgb21pdGllbmRvICgke3JlbWFpbkhyc31oIHJlc3RhbnRlcylgKTsKICAgICAgICBjb250aW51ZTsKICAgICAgfQoKICAgICAgbGV0IHBhZ2VDb3VudCA9IDA7CgogICAgICBmb3IgKGxldCBwYWdlTnVtID0gMTsgcGFnZU51bSA8PSBNQVhfUEFHRVM7IHBhZ2VOdW0rKykgewogICAgICAgIC8vIFBpc29zLmNvbSB1c2EgLzIvLCAvMy8sIC4uLjsgP3BhZ2luYT1OIGNhbm9uaWNhbGl6YSBhIGxhIHDDoWdpbmEgMS4KICAgICAgICBjb25zdCBwYWdlVXJsID0gcGFnZU51bSA9PT0gMSA/IGJhc2VVcmwgOiBgJHtiYXNlVXJsfSR7cGFnZU51bX0vYDsKICAgICAgICBjb25zdCBodG1sID0gYXdhaXQgdGhpcy5mZXRjaEh0bWwocGFnZVVybCk7CiAgICAgICAgaWYgKCFodG1sKSB7CiAgICAgICAgICAvLyBTaSBsYSBwcmltZXJhIHDDoWdpbmEgZGEgNDA0IHUgb3RybyBlcnJvciwgY2FjaGVhciBsYSBVUkwgYmFzZSA0OCBoCiAgICAgICAgICBpZiAocGFnZU51bSA9PT0gMSkgewogICAgICAgICAgICBjb25zb2xlLmxvZyhgW1Bpc29zLmNvbV0gQ2FjaGVhbmRvICR7YmFzZVVybH0gY29tbyA0MDQgZHVyYW50ZSA0OGhgKTsKICAgICAgICAgICAgcGlzb3M0MDRDYWNoZS5zZXQoYmFzZVVybCwgRGF0ZS5ub3coKSArIFBJU09TXzQwNF9UVEwpOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKGh0bWwpOwogICAgICAgIGxldCBmb3VuZCA9IDA7CgogICAgICAgIC8vIFBpc29zLmNvbSAyMDI0OiBjYXJkcyBjb24gY2xhc2UgYWQtcHJldmlldyBvIGxpLmFkLXByZXZpZXctaXRlbQogICAgICAgICQoIltjbGFzcyo9J2FkLXByZXZpZXcnXSwgLmFkLWl0ZW0sIGFydGljbGUsIGxpW2NsYXNzKj0nbGlzdC1pdGVtJ10iKS5lYWNoKChfaSwgZWwpID0+IHsKICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbkRldGFpbFBhdGggPSB0aGlzLl9vcGVyYXRpb25UeXBlID09PSAicmVudCIgPyAiL2FscXVpbGFyLyIgOiAiL2NvbXByYXIvIjsKICAgICAgICAgIGNvbnN0IGxpbmtFbCA9ICQoZWwpLmZpbmQoYGFbaHJlZio9JyR7b3BlcmF0aW9uRGV0YWlsUGF0aH0nXSwgYVtocmVmKj0nL2FudW5jaW9faW5tb2JpbGlhcmlhLyddYCkuZmlyc3QoKTsKICAgICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5zYW5pdGl6ZVRleHQoCiAgICAgICAgICAgIGxpbmtFbC50ZXh0KCkudHJpbSgpLnNwbGl0KCJcbiIpWzBdIHx8CiAgICAgICAgICAgICQoZWwpLmZpbmQoImgyLCBoMywgW2NsYXNzKj0ndGl0bGUnXSIpLmZpcnN0KCkudGV4dCgpIHx8CiAgICAgICAgICAgIGBQcm9waWVkYWQgZW4gJHt6b25lTmFtZX1gCiAgICAgICAgICApOwogICAgICAgICAgY29uc3QgcHJpY2VSYXcgPSAkKGVsKS5maW5kKCJbY2xhc3MqPSdwcmljZSddLCAucHJpY2UsIFtjbGFzcyo9J1ByaWNlJ10iKS5maXJzdCgpLnRleHQoKTsKICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5wYXJzZVByaWNlKHByaWNlUmF3KTsKICAgICAgICAgIGNvbnN0IGhyZWYgPSBsaW5rRWwuYXR0cigiaHJlZiIpIHx8ICIiOwogICAgICAgICAgaWYgKCFocmVmIHx8ICFwcmljZSkgcmV0dXJuOwogICAgICAgICAgY29uc3QgdXJsMiA9IGhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpID8gaHJlZiA6IGAke3RoaXMuYmFzZVVybH0ke2hyZWZ9YDsKICAgICAgICAgIGlmIChzZWVuVXJscy5oYXModXJsMikpIHJldHVybjsKICAgICAgICAgIHNlZW5VcmxzLmFkZCh1cmwyKTsKICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5zYW5pdGl6ZVRleHQoJChlbCkuZmluZCgiLmxvY2F0aW9uLCBbY2xhc3MqPSdsb2NhdGlvbiddIikuZmlyc3QoKS50ZXh0KCkgfHwgem9uZU5hbWUpOwogICAgICAgICAgY29uc3Qgcm9vbXMgPSBwYXJzZUludCgkKGVsKS5maW5kKCJbY2xhc3MqPSdoYWInXSwgW2NsYXNzKj0ncm9vbSddIikuZmlyc3QoKS50ZXh0KCkpIHx8IDA7CiAgICAgICAgICBjb25zdCBzaXplX20yID0gcGFyc2VJbnQoJChlbCkuZmluZCgiW2NsYXNzKj0nbTInXSwgW2NsYXNzKj0nbWV0cm9zJ10iKS5maXJzdCgpLnRleHQoKSkgfHwgMDsKICAgICAgICAgIGNvbnN0IGltYWdlX3VybCA9ICQoZWwpLmZpbmQoImltZyIpLmF0dHIoInNyYyIpIHx8ICQoZWwpLmZpbmQoImltZyIpLmF0dHIoImRhdGEtc3JjIikgfHwgIiI7CiAgICAgICAgICBhbGwucHVzaCh7CiAgICAgICAgICAgIHRpdGxlLCBwcmljZSwgbG9jYXRpb24sCiAgICAgICAgICAgIG11bmljaXBhbGl0eTogdGhpcy5kZXRlY3RNdW5pY2lwYWxpdHkobG9jYXRpb24gKyAiICIgKyB6b25lTmFtZSwgem9uZXMsIHpvbmVOYW1lKSwKICAgICAgICAgICAgcHJvcGVydHlfdHlwZTogdGhpcy5ub3JtYWxpemVUeXBlKHRpdGxlKSwKICAgICAgICAgICAgb3BlcmF0aW9uX3R5cGU6IHRoaXMuX29wZXJhdGlvblR5cGUsCiAgICAgICAgICAgIHJvb21zLCBzaXplX20yLCB1cmw6IHVybDIsIHNvdXJjZTogdGhpcy5zb3VyY2VOYW1lLCBpbWFnZV91cmwsCiAgICAgICAgICB9KTsKICAgICAgICAgIGZvdW5kKys7CiAgICAgICAgfSk7CgogICAgICAgIHBhZ2VDb3VudCsrOwogICAgICAgIGlmIChmb3VuZCA8IDMpIGJyZWFrOyAvLyBQcm9iYWJsZSDDumx0aW1hIHDDoWdpbmEKICAgICAgfQoKICAgICAgY29uc29sZS5sb2coYFske3RoaXMuc291cmNlTmFtZX1dICR7em9uZU5hbWV9OiAke3BhZ2VDb3VudH0gcMOhZ2luYXMsICR7c2VlblVybHMuc2l6ZX0gw7puaWNvcyBoYXN0YSBhaG9yYWApOwogICAgfQoKICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUmVzdWx0cyhhbGwpOwogIH0KCn0K","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\tecnocasaScraper.ts","beforeExisted":true,"beforeHash":"9c179ba361115b73d1c85cf4431d4e22de81a4d09e4e636245a02947d626b4d3","beforeContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgUGxheXdyaWdodEJhc2VTY3JhcGVyIH0gZnJvbSAiLi9wbGF5d3JpZ2h0QmFzZVNjcmFwZXIiOw0KDQovKioNCiAqIFNjcmFwZXIgcGFyYSBUZWNub2Nhc2EgRXNwYcOxYSAoZnJhbnF1aWNpYSBpbm1vYmlsaWFyaWEpDQogKiBMYSBww6FnaW5hIGVzIHVuYSBTUEEgVnVlLmpzOyBQbGF5d3JpZ2h0IGVqZWN1dGEgZWwgSlMgeSBlc3BlcmEgYSBxdWUgc2UgcmVuZGVyaWNlbiBsYXMgdGFyamV0YXMuDQogKiBVUkw6IGh0dHBzOi8vd3d3LnRlY25vY2FzYS5lcy92ZW50YS9waXNvL2NvbXVuaWRhZC12YWxlbmNpYW5hL3ZhbGVuY2lhL3tzbHVnfS5odG1sDQogKi8NCmV4cG9ydCBjbGFzcyBUZWNub2Nhc2FTY3JhcGVyIGV4dGVuZHMgUGxheXdyaWdodEJhc2VTY3JhcGVyIHsNCiAgICAvLyBFc3BlcmFyIGEgLmFwcC1jb250YWluZXIgKFZ1ZSBhcHAgcmVhZHkpIG8gYSBjdWFscXVpZXIgdGFyamV0YSBkZSBwcm9waWVkYWQNCiAgICBwcm90ZWN0ZWQgd2FpdEZvclNlbGVjdG9yID0gJy5hcHAtY29udGFpbmVyIFtjbGFzcyo9ImVzdGF0ZSJdLCAuYXBwLWNvbnRhaW5lciBbY2xhc3MqPSJjYXJkIl0sIC5hcHAtY29udGFpbmVyIGFydGljbGUnOw0KICAgIHByb3RlY3RlZCBwYWdlVGltZW91dE1zID0gNDUwMDA7DQoNCiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoImh0dHBzOi8vd3d3LnRlY25vY2FzYS5lcyIsICJUZWNub2Nhc2EiKTsgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3Qgc2x1Z3MgPSB6b25lcy5sZW5ndGggPiAwID8gem9uZXMubWFwKHogPT4gei5zbHVnKSA6IFsibGxpcmlhIl07DQoNCiAgICAgICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlbXSA9IFtdOw0KICAgICAgICBjb25zdCBzZWVuVXJscyA9IG5ldyBTZXQ8c3RyaW5nPigpOw0KDQogICAgICAgIGZvciAoY29uc3Qgc2x1ZyBvZiBzbHVncykgew0KICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS92ZW50YS9waXNvL2NvbXVuaWRhZC12YWxlbmNpYW5hL3ZhbGVuY2lhLyR7c2x1Z30uaHRtbGA7DQogICAgICAgICAgICBjb25zdCBodG1sID0gYXdhaXQgdGhpcy5mZXRjaEh0bWxQbGF5d3JpZ2h0KHVybCwgdGhpcy53YWl0Rm9yU2VsZWN0b3IpOw0KICAgICAgICAgICAgaWYgKCFodG1sKSBjb250aW51ZTsNCiAgICAgICAgICAgIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQoaHRtbCk7DQoNCiAgICAgICAgICAgIC8vIEJ1c2NhciB0YXJqZXRhcyBkZSBwcm9waWVkYWQgY29uIHNlbGVjdG9yZXMgZ2Vuw6lyaWNvcyAoVnVlIHJlbmRlcml6YSBjbGFzZXMgZGluw6FtaWNhcykNCiAgICAgICAgICAgIGNvbnN0IGNhcmRTZWwgPSBbDQogICAgICAgICAgICAgICAgJ1tjbGFzcyo9ImVzdGF0ZS1jYXJkIl0nLA0KICAgICAgICAgICAgICAgICdbY2xhc3MqPSJwcm9wZXJ0eS1jYXJkIl0nLA0KICAgICAgICAgICAgICAgICdbY2xhc3MqPSJzZWFyY2gtY2FyZCJdJywNCiAgICAgICAgICAgICAgICAnLnJlc3VsdC1jYXJkJywNCiAgICAgICAgICAgICAgICAnYXJ0aWNsZVtjbGFzcyo9ImNhcmQiXScsDQogICAgICAgICAgICBdLmpvaW4oJywgJyk7DQoNCiAgICAgICAgICAgICQoY2FyZFNlbCkuZWFjaCgoX2ksIGVsKSA9PiB7DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNhbml0aXplVGV4dCgNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoJ2gyLCBoMywgW2NsYXNzKj0idGl0bGUiXSwgW2NsYXNzKj0iaGVhZGluZyJdJykuZmlyc3QoKS50ZXh0KCkgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICJQcm9waWVkYWQgVGVjbm9jYXNhIg0KICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmljZVJhdyA9IHRoaXMuc2FuaXRpemVUZXh0KA0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbCkuZmluZCgnW2NsYXNzKj0icHJpY2UiXSwgW2NsYXNzKj0icHJlY2lvIl0sIFtjbGFzcyo9ImNvc3QiXScpLmZpcnN0KCkudGV4dCgpDQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5wYXJzZVByaWNlKHByaWNlUmF3KTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCdhW2hyZWYqPSIvaW5tdWVibGUiXSwgYVtocmVmKj0iL3ZlbnRhIl0nKS5maXJzdCgpLmF0dHIoJ2hyZWYnKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbCkuZmluZCgnYVtocmVmXScpLmZpcnN0KCkuYXR0cignaHJlZicpIHx8ICcnOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBhYnNVcmwgPSBocmVmLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IGhyZWYgOiBgJHt0aGlzLmJhc2VVcmx9JHtocmVmfWA7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5zYW5pdGl6ZVRleHQoDQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCdbY2xhc3MqPSJsb2NhdGlvbiJdLCBbY2xhc3MqPSJhZGRyZXNzIl0sIFtjbGFzcyo9ImNpdHkiXScpLmZpcnN0KCkudGV4dCgpIHx8IHNsdWcNCiAgICAgICAgICAgICAgICAgICAgKTsNCg0KICAgICAgICAgICAgICAgICAgICBsZXQgcm9vbXMgPSAwLCBzaXplX20yID0gMDsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mb1RleHQgPSAkKGVsKS50ZXh0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJNYXRjaCA9IGluZm9UZXh0Lm1hdGNoKC8oXGQrKVxzKig/OmhhYnxkb3JtKS9pKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHJNYXRjaCkgcm9vbXMgPSBwYXJzZUludChyTWF0Y2hbMV0pOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzTWF0Y2ggPSBpbmZvVGV4dC5tYXRjaCgvKFxkKylccyptW8KyMl0vaSk7DQogICAgICAgICAgICAgICAgICAgIGlmIChzTWF0Y2gpIHNpemVfbTIgPSBwYXJzZUludChzTWF0Y2hbMV0pOw0KDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlX3VybCA9ICQoZWwpLmZpbmQoJ2ltZycpLmZpcnN0KCkuYXR0cignc3JjJykgfHwgJyc7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHByaWNlID4gMCAmJiBocmVmICYmICFzZWVuVXJscy5oYXMoYWJzVXJsKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2VlblVybHMuYWRkKGFic1VybCk7DQogICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLCBwcmljZSwgbG9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVuaWNpcGFsaXR5OiB0aGlzLmRldGVjdE11bmljaXBhbGl0eShsb2NhdGlvbiArICcgJyArIHNsdWcsIHpvbmVzKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eV90eXBlOiB0aGlzLm5vcm1hbGl6ZVR5cGUodGl0bGUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb21zLCBzaXplX20yLCB1cmw6IGFic1VybCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHRoaXMuc291cmNlTmFtZSwgaW1hZ2VfdXJsLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsgLyogc2tpcCAqLyB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVJlc3VsdHMocHJvcGVydGllcyk7DQogICAgfQ0KfQ0K","afterExisted":true,"afterHash":"fa4eaf762256a84352ab03d512608bf7c06f2fd0cbb90b017594c05a73364aff","afterContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgUGxheXdyaWdodEJhc2VTY3JhcGVyIH0gZnJvbSAiLi9wbGF5d3JpZ2h0QmFzZVNjcmFwZXIiOw0KDQovKioNCiAqIFNjcmFwZXIgcGFyYSBUZWNub2Nhc2EgRXNwYcOxYSAoZnJhbnF1aWNpYSBpbm1vYmlsaWFyaWEpDQogKiBMYSBww6FnaW5hIGVzIHVuYSBTUEEgVnVlLmpzOyBQbGF5d3JpZ2h0IGVqZWN1dGEgZWwgSlMgeSBlc3BlcmEgYSBxdWUgc2UgcmVuZGVyaWNlbiBsYXMgdGFyamV0YXMuDQogKiBVUkw6IGh0dHBzOi8vd3d3LnRlY25vY2FzYS5lcy92ZW50YS9waXNvL2NvbXVuaWRhZC12YWxlbmNpYW5hL3ZhbGVuY2lhL3tzbHVnfS5odG1sDQogKi8NCmV4cG9ydCBjbGFzcyBUZWNub2Nhc2FTY3JhcGVyIGV4dGVuZHMgUGxheXdyaWdodEJhc2VTY3JhcGVyIHsNCiAgICAvLyBFc3BlcmFyIGEgLmFwcC1jb250YWluZXIgKFZ1ZSBhcHAgcmVhZHkpIG8gYSBjdWFscXVpZXIgdGFyamV0YSBkZSBwcm9waWVkYWQNCiAgICBwcm90ZWN0ZWQgd2FpdEZvclNlbGVjdG9yID0gJy5hcHAtY29udGFpbmVyIFtjbGFzcyo9ImVzdGF0ZSJdLCAuYXBwLWNvbnRhaW5lciBbY2xhc3MqPSJjYXJkIl0sIC5hcHAtY29udGFpbmVyIGFydGljbGUnOw0KICAgIHByb3RlY3RlZCBwYWdlVGltZW91dE1zID0gNDUwMDA7DQoNCiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoImh0dHBzOi8vd3d3LnRlY25vY2FzYS5lcyIsICJUZWNub2Nhc2EiKTsgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3Qgc2x1Z3MgPSB6b25lcy5sZW5ndGggPiAwID8gem9uZXMubWFwKHogPT4gei5zbHVnKSA6IFsibGxpcmlhIl07DQoNCiAgICAgICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlbXSA9IFtdOw0KICAgICAgICBjb25zdCBzZWVuVXJscyA9IG5ldyBTZXQ8c3RyaW5nPigpOw0KDQogICAgICAgIGZvciAoY29uc3Qgc2x1ZyBvZiBzbHVncykgewogICAgICAgICAgICBjb25zdCBvcGVyYXRpb25QYXRoID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gImFscXVpbGVyIiA6ICJ2ZW50YSI7CiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vJHtvcGVyYXRpb25QYXRofS9waXNvL2NvbXVuaWRhZC12YWxlbmNpYW5hL3ZhbGVuY2lhLyR7c2x1Z30uaHRtbGA7CiAgICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLmZldGNoSHRtbFBsYXl3cmlnaHQodXJsLCB0aGlzLndhaXRGb3JTZWxlY3Rvcik7DQogICAgICAgICAgICBpZiAoIWh0bWwpIGNvbnRpbnVlOw0KICAgICAgICAgICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTsNCg0KICAgICAgICAgICAgLy8gQnVzY2FyIHRhcmpldGFzIGRlIHByb3BpZWRhZCBjb24gc2VsZWN0b3JlcyBnZW7DqXJpY29zIChWdWUgcmVuZGVyaXphIGNsYXNlcyBkaW7DoW1pY2FzKQ0KICAgICAgICAgICAgY29uc3QgY2FyZFNlbCA9IFsNCiAgICAgICAgICAgICAgICAnW2NsYXNzKj0iZXN0YXRlLWNhcmQiXScsDQogICAgICAgICAgICAgICAgJ1tjbGFzcyo9InByb3BlcnR5LWNhcmQiXScsDQogICAgICAgICAgICAgICAgJ1tjbGFzcyo9InNlYXJjaC1jYXJkIl0nLA0KICAgICAgICAgICAgICAgICcucmVzdWx0LWNhcmQnLA0KICAgICAgICAgICAgICAgICdhcnRpY2xlW2NsYXNzKj0iY2FyZCJdJywNCiAgICAgICAgICAgIF0uam9pbignLCAnKTsNCg0KICAgICAgICAgICAgJChjYXJkU2VsKS5lYWNoKChfaSwgZWwpID0+IHsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2FuaXRpemVUZXh0KA0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbCkuZmluZCgnaDIsIGgzLCBbY2xhc3MqPSJ0aXRsZSJdLCBbY2xhc3MqPSJoZWFkaW5nIl0nKS5maXJzdCgpLnRleHQoKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgIlByb3BpZWRhZCBUZWNub2Nhc2EiDQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlUmF3ID0gdGhpcy5zYW5pdGl6ZVRleHQoDQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCdbY2xhc3MqPSJwcmljZSJdLCBbY2xhc3MqPSJwcmVjaW8iXSwgW2NsYXNzKj0iY29zdCJdJykuZmlyc3QoKS50ZXh0KCkNCiAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnBhcnNlUHJpY2UocHJpY2VSYXcpOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBocmVmID0NCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoJ2FbaHJlZio9Ii9pbm11ZWJsZSJdLCBhW2hyZWYqPSIvdmVudGEiXSwgYVtocmVmKj0iL2FscXVpbGVyIl0nKS5maXJzdCgpLmF0dHIoJ2hyZWYnKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAkKGVsKS5maW5kKCdhW2hyZWZdJykuZmlyc3QoKS5hdHRyKCdocmVmJykgfHwgJyc7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGFic1VybCA9IGhyZWYuc3RhcnRzV2l0aCgnaHR0cCcpID8gaHJlZiA6IGAke3RoaXMuYmFzZVVybH0ke2hyZWZ9YDsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLnNhbml0aXplVGV4dCgNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWwpLmZpbmQoJ1tjbGFzcyo9ImxvY2F0aW9uIl0sIFtjbGFzcyo9ImFkZHJlc3MiXSwgW2NsYXNzKj0iY2l0eSJdJykuZmlyc3QoKS50ZXh0KCkgfHwgc2x1Zw0KICAgICAgICAgICAgICAgICAgICApOw0KDQogICAgICAgICAgICAgICAgICAgIGxldCByb29tcyA9IDAsIHNpemVfbTIgPSAwOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvVGV4dCA9ICQoZWwpLnRleHQoKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgck1hdGNoID0gaW5mb1RleHQubWF0Y2goLyhcZCspXHMqKD86aGFifGRvcm0pL2kpOw0KICAgICAgICAgICAgICAgICAgICBpZiAock1hdGNoKSByb29tcyA9IHBhcnNlSW50KHJNYXRjaFsxXSk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHNNYXRjaCA9IGluZm9UZXh0Lm1hdGNoKC8oXGQrKVxzKm1bwrIyXS9pKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHNNYXRjaCkgc2l6ZV9tMiA9IHBhcnNlSW50KHNNYXRjaFsxXSk7DQoNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VfdXJsID0gJChlbCkuZmluZCgnaW1nJykuZmlyc3QoKS5hdHRyKCdzcmMnKSB8fCAnJzsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAocHJpY2UgPiAwICYmIGhyZWYgJiYgIXNlZW5VcmxzLmhhcyhhYnNVcmwpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzZWVuVXJscy5hZGQoYWJzVXJsKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaCh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUsIHByaWNlLCBsb2NhdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdW5pY2lwYWxpdHk6IHRoaXMuZGV0ZWN0TXVuaWNpcGFsaXR5KGxvY2F0aW9uICsgJyAnICsgc2x1Zywgem9uZXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfdHlwZTogdGhpcy5ub3JtYWxpemVUeXBlKHRpdGxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbl90eXBlOiB0aGlzLl9vcGVyYXRpb25UeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbXMsIHNpemVfbTIsIHVybDogYWJzVXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZU5hbWUsIGltYWdlX3VybCwNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7IC8qIHNraXAgKi8gfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVSZXN1bHRzKHByb3BlcnRpZXMpOw0KICAgIH0NCn0NCg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\yaencontreScraper.ts","beforeExisted":true,"beforeHash":"2c86325cdda67c286f39e744ca112499e3a94769b9a27d80ee557d762680de85","beforeContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCg0KLyoqDQogKiBTY3JhcGVyIHBhcmEgWWFlbmNvbnRyZSAocG9ydGFsIGlubW9iaWxpYXJpbyBuYWNpb25hbCkNCiAqIFVSTDogaHR0cHM6Ly93d3cueWFlbmNvbnRyZS5jb20vdmVudGEvcGlzb3Mve3NsdWd9DQogKiBQYWdpbmFjacOzbjogL3ZlbnRhL3Bpc29zL3tzbHVnfS9wYWdpbmEte059Lmh0bWwNCiAqLw0KZXhwb3J0IGNsYXNzIFlhZW5jb250cmVTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXIgew0KICAgIHByaXZhdGUgcmVhZG9ubHkgTUFYX1BBR0VTID0gMzsNCiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoImh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tIiwgIllhZW5jb250cmUiKTsgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IHpvbmVzLmxlbmd0aCA+IDANCiAgICAgICAgICAgID8gem9uZXMubWFwKHogPT4gei5zbHVnKQ0KICAgICAgICAgICAgOiBbImxsaXJpYSJdOw0KDQogICAgICAgIGNvbnN0IHByb3BlcnRpZXM6IFByb3BlcnR5W10gPSBbXTsNCiAgICAgICAgY29uc3Qgc2VlblVybHMgPSBuZXcgU2V0PHN0cmluZz4oKTsNCiAgICAgICAgbGV0IGNvbnNlY3V0aXZlQmxvY2tlZCA9IDA7DQoNCiAgICAgICAgZm9yIChjb25zdCBzbHVnIG9mIHRhcmdldHMpIHsNCiAgICAgICAgICAgIGNvbnN0IHpvbmUgPSB6b25lcy5maW5kKHogPT4gei5zbHVnID09PSBzbHVnKTsNCiAgICAgICAgICAgIGNvbnN0IHpvbmVOYW1lID0gem9uZT8ubmFtZSA/PyBzbHVnOw0KDQogICAgICAgICAgICBmb3IgKGxldCBwYWdlID0gMTsgcGFnZSA8PSB0aGlzLk1BWF9QQUdFUzsgcGFnZSsrKSB7DQogICAgICAgICAgICAgICAgLy8gRm9ybWF0byBhY3R1YWwgZGUgWWFlbmNvbnRyZTogL3ZlbnRhL3Bpc29zL3tzbHVnfSAocMOhZyAxKQ0KICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC92ZW50YS9waXNvcy97c2x1Z30vcGFnaW5hLXtOfS5odG1sIChww6FnIE4pDQogICAgICAgICAgICAgICAgY29uc3QgdXJsID0gcGFnZSA9PT0gMQ0KICAgICAgICAgICAgICAgICAgICA/IGAke3RoaXMuYmFzZVVybH0vdmVudGEvcGlzb3MvJHtzbHVnfWANCiAgICAgICAgICAgICAgICAgICAgOiBgJHt0aGlzLmJhc2VVcmx9L3ZlbnRhL3Bpc29zLyR7c2x1Z30vcGFnaW5hLSR7cGFnZX0uaHRtbGA7DQoNCiAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gYXdhaXQgdGhpcy5mZXRjaEh0bWwodXJsKTsNCiAgICAgICAgICAgICAgICBpZiAoIWh0bWwpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2UgPT09IDEpIGNvbnNlY3V0aXZlQmxvY2tlZCsrOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29uc2VjdXRpdmVCbG9ja2VkID0gMDsgLy8gcmVzZXQgYWwgb2J0ZW5lciBjb250ZW5pZG8NCiAgICAgICAgICAgICAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKGh0bWwpOw0KDQogICAgICAgICAgICAgICAgbGV0IGZvdW5kID0gMDsNCiAgICAgICAgICAgICAgICAkKCJbY2xhc3MqPSdwcm9wZXJ0eSddLCBhcnRpY2xlLCAubGlzdGluZy1jYXJkLCBbY2xhc3MqPSdjYXJkJ10sIFtjbGFzcyo9J0hvdXNlQ2FyZCddIikuZWFjaCgoX2ksIGVsKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2FuaXRpemVUZXh0KCQoZWwpLmZpbmQoImgyLCBoMywgW2NsYXNzKj0ndGl0bGUnXSwgW2NsYXNzKj0nVGl0bGUnXSIpLmZpcnN0KCkudGV4dCgpIHx8ICJQcm9waWVkYWQiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlUmF3ID0gJChlbCkuZmluZCgiW2NsYXNzKj0ncHJpY2UnXSwgLnByZWNpbywgW2NsYXNzKj0nUHJpY2UnXSIpLmZpcnN0KCkudGV4dCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnBhcnNlUHJpY2UocHJpY2VSYXcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9ICQoZWwpLmZpbmQoImFbaHJlZl0iKS5maXJzdCgpLmF0dHIoImhyZWYiKSB8fCAiIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybDIgPSBocmVmLnN0YXJ0c1dpdGgoImh0dHAiKSA/IGhyZWYgOiBgJHt0aGlzLmJhc2VVcmx9JHtocmVmfWA7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuc2FuaXRpemVUZXh0KCQoZWwpLmZpbmQoIltjbGFzcyo9J2xvY2F0aW9uJ10sIC51YmljYWNpb24sIFtjbGFzcyo9J2FkZHJlc3MnXSIpLmZpcnN0KCkudGV4dCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvb21zID0gcGFyc2VJbnQoJChlbCkuZmluZCgiW2NsYXNzKj0ncm9vbSddLCBbY2xhc3MqPSdoYWInXSIpLmZpcnN0KCkudGV4dCgpKSB8fCAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6ZV9tMiA9IHBhcnNlSW50KCQoZWwpLmZpbmQoIltjbGFzcyo9J20yJ10sIFtjbGFzcyo9J2FyZWEnXSIpLmZpcnN0KCkudGV4dCgpKSB8fCAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VfdXJsID0gJChlbCkuZmluZCgiaW1nIikuYXR0cigic3JjIikgfHwgJChlbCkuZmluZCgiaW1nIikuYXR0cigiZGF0YS1zcmMiKSB8fCAiIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmljZSA+IDAgJiYgaHJlZiAmJiAhc2VlblVybHMuaGFzKHVybDIpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlblVybHMuYWRkKHVybDIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kKys7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUsIHByaWNlLCBsb2NhdGlvbjogbG9jYXRpb24gfHwgem9uZU5hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bmljaXBhbGl0eTogdGhpcy5kZXRlY3RNdW5pY2lwYWxpdHkobG9jYXRpb24gKyAiICIgKyB6b25lTmFtZSwgem9uZXMsIHpvbmVOYW1lKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfdHlwZTogdGhpcy5ub3JtYWxpemVUeXBlKHRpdGxlKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbXMsIHNpemVfbTIsIHVybDogdXJsMiwgc291cmNlOiB0aGlzLnNvdXJjZU5hbWUsIGltYWdlX3VybCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7IC8qIHNraXAgKi8gfQ0KICAgICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAgICAgaWYgKGZvdW5kIDwgMykgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTaSAyIHpvbmFzIGNvbnNlY3V0aXZhcyBubyBkZXZ1ZWx2ZW4gbmFkYSDihpIgZWwgcG9ydGFsIGVzdMOhIGJsb3F1ZWFuZG8sIGFib3J0YXINCiAgICAgICAgICAgIGlmIChjb25zZWN1dGl2ZUJsb2NrZWQgPj0gMikgew0KICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtZYWVuY29udHJlXSBQb3J0YWwgYmxvcXVlYW5kbyBzaXN0ZW3DoXRpY2FtZW50ZSAoJHtjb25zZWN1dGl2ZUJsb2NrZWR9IHpvbmFzIHNpbiByZXNwdWVzdGEpLCBhYm9ydGFuZG8gc2NyYXBpbmdgKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVJlc3VsdHMocHJvcGVydGllcyk7DQogICAgfQ0KfQ0K","afterExisted":true,"afterHash":"ad907885f3ad1eae9616e01cf15e7b3a4eae8142f7ee4d26b870707c6bcbace0","afterContent":"aW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICJjaGVlcmlvIjsNCmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOw0KaW1wb3J0IHsgQmFzZVNjcmFwZXIgfSBmcm9tICIuL2Jhc2VTY3JhcGVyIjsNCg0KLyoqDQogKiBTY3JhcGVyIHBhcmEgWWFlbmNvbnRyZSAocG9ydGFsIGlubW9iaWxpYXJpbyBuYWNpb25hbCkNCiAqIFVSTDogaHR0cHM6Ly93d3cueWFlbmNvbnRyZS5jb20vdmVudGEvcGlzb3Mve3NsdWd9DQogKiBQYWdpbmFjacOzbjogL3ZlbnRhL3Bpc29zL3tzbHVnfS9wYWdpbmEte059Lmh0bWwNCiAqLw0KZXhwb3J0IGNsYXNzIFlhZW5jb250cmVTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXIgew0KICAgIHByaXZhdGUgcmVhZG9ubHkgTUFYX1BBR0VTID0gMzsNCiAgICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoImh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tIiwgIllhZW5jb250cmUiKTsgfQ0KDQogICAgYXN5bmMgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT4gew0KICAgICAgICBjb25zdCB6b25lcyA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlWm9uZXMoKTsNCiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IHpvbmVzLmxlbmd0aCA+IDANCiAgICAgICAgICAgID8gem9uZXMubWFwKHogPT4gei5zbHVnKQ0KICAgICAgICAgICAgOiBbImxsaXJpYSJdOw0KDQogICAgICAgIGNvbnN0IHByb3BlcnRpZXM6IFByb3BlcnR5W10gPSBbXTsNCiAgICAgICAgY29uc3Qgc2VlblVybHMgPSBuZXcgU2V0PHN0cmluZz4oKTsNCiAgICAgICAgbGV0IGNvbnNlY3V0aXZlQmxvY2tlZCA9IDA7DQoNCiAgICAgICAgZm9yIChjb25zdCBzbHVnIG9mIHRhcmdldHMpIHsNCiAgICAgICAgICAgIGNvbnN0IHpvbmUgPSB6b25lcy5maW5kKHogPT4gei5zbHVnID09PSBzbHVnKTsNCiAgICAgICAgICAgIGNvbnN0IHpvbmVOYW1lID0gem9uZT8ubmFtZSA/PyBzbHVnOw0KDQogICAgICAgICAgICBmb3IgKGxldCBwYWdlID0gMTsgcGFnZSA8PSB0aGlzLk1BWF9QQUdFUzsgcGFnZSsrKSB7DQogICAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uUGF0aCA9IHRoaXMuX29wZXJhdGlvblR5cGUgPT09ICJyZW50IiA/ICJhbHF1aWxlciIgOiAidmVudGEiOwogICAgICAgICAgICAgICAgY29uc3QgdXJsID0gcGFnZSA9PT0gMQogICAgICAgICAgICAgICAgICAgID8gYCR7dGhpcy5iYXNlVXJsfS8ke29wZXJhdGlvblBhdGh9L3Bpc29zLyR7c2x1Z31gCiAgICAgICAgICAgICAgICAgICAgOiBgJHt0aGlzLmJhc2VVcmx9LyR7b3BlcmF0aW9uUGF0aH0vcGlzb3MvJHtzbHVnfS9wYWdpbmEtJHtwYWdlfS5odG1sYDsKDQogICAgICAgICAgICAgICAgY29uc3QgaHRtbCA9IGF3YWl0IHRoaXMuZmV0Y2hIdG1sKHVybCk7DQogICAgICAgICAgICAgICAgaWYgKCFodG1sKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChwYWdlID09PSAxKSBjb25zZWN1dGl2ZUJsb2NrZWQrKzsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnNlY3V0aXZlQmxvY2tlZCA9IDA7IC8vIHJlc2V0IGFsIG9idGVuZXIgY29udGVuaWRvDQogICAgICAgICAgICAgICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTsNCg0KICAgICAgICAgICAgICAgIGxldCBmb3VuZCA9IDA7DQogICAgICAgICAgICAgICAgJCgiW2NsYXNzKj0ncHJvcGVydHknXSwgYXJ0aWNsZSwgLmxpc3RpbmctY2FyZCwgW2NsYXNzKj0nY2FyZCddLCBbY2xhc3MqPSdIb3VzZUNhcmQnXSIpLmVhY2goKF9pLCBlbCkgPT4gew0KICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNhbml0aXplVGV4dCgkKGVsKS5maW5kKCJoMiwgaDMsIFtjbGFzcyo9J3RpdGxlJ10sIFtjbGFzcyo9J1RpdGxlJ10iKS5maXJzdCgpLnRleHQoKSB8fCAiUHJvcGllZGFkIik7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmljZVJhdyA9ICQoZWwpLmZpbmQoIltjbGFzcyo9J3ByaWNlJ10sIC5wcmVjaW8sIFtjbGFzcyo9J1ByaWNlJ10iKS5maXJzdCgpLnRleHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5wYXJzZVByaWNlKHByaWNlUmF3KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhyZWYgPSAkKGVsKS5maW5kKCJhW2hyZWZdIikuZmlyc3QoKS5hdHRyKCJocmVmIikgfHwgIiI7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwyID0gaHJlZi5zdGFydHNXaXRoKCJodHRwIikgPyBocmVmIDogYCR7dGhpcy5iYXNlVXJsfSR7aHJlZn1gOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLnNhbml0aXplVGV4dCgkKGVsKS5maW5kKCJbY2xhc3MqPSdsb2NhdGlvbiddLCAudWJpY2FjaW9uLCBbY2xhc3MqPSdhZGRyZXNzJ10iKS5maXJzdCgpLnRleHQoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb29tcyA9IHBhcnNlSW50KCQoZWwpLmZpbmQoIltjbGFzcyo9J3Jvb20nXSwgW2NsYXNzKj0naGFiJ10iKS5maXJzdCgpLnRleHQoKSkgfHwgMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfbTIgPSBwYXJzZUludCgkKGVsKS5maW5kKCJbY2xhc3MqPSdtMiddLCBbY2xhc3MqPSdhcmVhJ10iKS5maXJzdCgpLnRleHQoKSkgfHwgMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlX3VybCA9ICQoZWwpLmZpbmQoImltZyIpLmF0dHIoInNyYyIpIHx8ICQoZWwpLmZpbmQoImltZyIpLmF0dHIoImRhdGEtc3JjIikgfHwgIiI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJpY2UgPiAwICYmIGhyZWYgJiYgIXNlZW5VcmxzLmhhcyh1cmwyKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZW5VcmxzLmFkZCh1cmwyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCsrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaCh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLCBwcmljZSwgbG9jYXRpb246IGxvY2F0aW9uIHx8IHpvbmVOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdW5pY2lwYWxpdHk6IHRoaXMuZGV0ZWN0TXVuaWNpcGFsaXR5KGxvY2F0aW9uICsgIiAiICsgem9uZU5hbWUsIHpvbmVzLCB6b25lTmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfdHlwZTogdGhpcy5ub3JtYWxpemVUeXBlKHRpdGxlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25fdHlwZTogdGhpcy5fb3BlcmF0aW9uVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb29tcywgc2l6ZV9tMiwgdXJsOiB1cmwyLCBzb3VyY2U6IHRoaXMuc291cmNlTmFtZSwgaW1hZ2VfdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggeyAvKiBza2lwICovIH0NCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgICAgIGlmIChmb3VuZCA8IDMpIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2kgMiB6b25hcyBjb25zZWN1dGl2YXMgbm8gZGV2dWVsdmVuIG5hZGEg4oaSIGVsIHBvcnRhbCBlc3TDoSBibG9xdWVhbmRvLCBhYm9ydGFyDQogICAgICAgICAgICBpZiAoY29uc2VjdXRpdmVCbG9ja2VkID49IDIpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbWWFlbmNvbnRyZV0gUG9ydGFsIGJsb3F1ZWFuZG8gc2lzdGVtw6F0aWNhbWVudGUgKCR7Y29uc2VjdXRpdmVCbG9ja2VkfSB6b25hcyBzaW4gcmVzcHVlc3RhKSwgYWJvcnRhbmRvIHNjcmFwaW5nYCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVSZXN1bHRzKHByb3BlcnRpZXMpOw0KICAgIH0NCn0NCg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\propertyService.ts","beforeExisted":true,"beforeHash":"08a1321b99f153151c2c6fb8ae4cf8d988d9289d0b267b37443d572abfe92ef5","beforeContent":"aW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKaW1wb3J0IHsgYnVzTG9nLCBzY3JhcGVyQnVzIH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKaW1wb3J0IHsKICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwgRm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlciwKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn0gZnJvbSAiLi4vc2NyYXBlcnMvaW5kZXgiOwppbXBvcnQgeyBHZW9jb2RpbmdTZXJ2aWNlIH0gZnJvbSAiLi9nZW9jb2RpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgU2NvcmluZ1NlcnZpY2UgfSBmcm9tICIuL3Njb3JpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgRGVkdXBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICIuL2RlZHVwbGljYXRpb25TZXJ2aWNlIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOwppbXBvcnQgeyBab25lTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUm93RGF0YVBhY2tldCB9IGZyb20gIm15c3FsMiI7CgovLyBNYXBhIGRlIG5vbWJyZSBkZSBjbGFzZSDihpIgY29uc3RydWN0b3IgZGUgc2NyYXBlciAoUGxheXdyaWdodCA+IENoZWVyaW8gcGFyYSBwb3J0YWxlcyBKUykKY29uc3QgU0NSQVBFUl9NQVA6IFJlY29yZDxzdHJpbmcsIG5ldyAoKSA9PiBhbnk+ID0gewogIElkZWFsaXN0YVNjcmFwZXI6IElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgLy8gYWxpYXMgbGVnYWN5IOKGkiBQbGF5d3JpZ2h0CiAgSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGF2ZSBkaXJlY3RhICh2YWxvciBhY3R1YWwgZW4gQkQpCiAgRm90b2Nhc2FTY3JhcGVyOiBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAvLyBhbGlhcyBsZWdhY3kg4oaSIFBsYXl3cmlnaHQKICBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsYXZlIGRpcmVjdGEgKHZhbG9yIGFjdHVhbCBlbiBCRCkKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn07Cgpjb25zdCBnZW9TZXJ2aWNlID0gbmV3IEdlb2NvZGluZ1NlcnZpY2UoKTsKY29uc3Qgc2NvcmluZ1NlcnZpY2UgPSBuZXcgU2NvcmluZ1NlcnZpY2UoKTsKY29uc3QgZGVkdXBsaWNhdGlvblNlcnZpY2UgPSBuZXcgRGVkdXBsaWNhdGlvblNlcnZpY2UoKTsKCmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlcnZpY2UgewogIGFzeW5jIGdldEFsbFByb3BlcnRpZXMoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICByZXR1cm4gUHJvcGVydHlNb2RlbC5maW5kQWxsKCk7CiAgfQoKICBhc3luYyBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoZmlsdGVyOiBQYXJ0aWFsPEZpbHRlcj4pOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIHJldHVybiBQcm9wZXJ0eU1vZGVsLmZpbHRlckFkdmFuY2VkKAogICAgICBmaWx0ZXIubWluX3ByaWNlLCBmaWx0ZXIubWF4X3ByaWNlLCBmaWx0ZXIucHJvcGVydHlfdHlwZSwKICAgICAgZmlsdGVyLm11bmljaXBhbGl0eSwgZmlsdGVyLm1pbl9yb29tcywgZmlsdGVyLm1pbl9zaXplX20yCiAgICApOwogIH0KCiAgYXN5bmMgZ2V0UHJvcGVydHlCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb3BlcnR5IHwgbnVsbD4gewogICAgcmV0dXJuIFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICB9CgogIGFzeW5jIGNyZWF0ZVByb3BlcnR5KHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHk+IHsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHByb3BlcnR5KTsKICAgIHJldHVybiBwcm9wZXJ0eTsKICB9CgogIGFzeW5jIHVwZGF0ZVByb3BlcnR5KGlkOiBzdHJpbmcsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHkgfCBudWxsPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBudWxsOwogICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cHNlcnQoeyAuLi5leGlzdGluZywgLi4ucHJvcGVydHkgfSk7CiAgICByZXR1cm4gcHJvcGVydHk7CiAgfQoKICBhc3luYyBkZWxldGVQcm9wZXJ0eShpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBmYWxzZTsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwuZGVsZXRlQnlJZChwYXJzZUludChpZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICBhc3luYyBzY3JhcGVBbGwob3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIC8vIENvbnN0cnVpciBsaXN0YSBkZSBzY3JhcGVycyBhY3Rpdm9zIHNlZ8O6biBsYSBCRCBkZSBwb3J0YWxlcwogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBzY3JhcGVycyA9IHNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+IFNDUkFQRVJfTUFQW2Nsc10pCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgVXNhbmRvICR7c2NyYXBlcnMubGVuZ3RofSBwb3J0YWxlcyBhY3Rpdm9zICgke29wZXJhdGlvblR5cGV9KTogJHtzY3JhcGVyQ2xhc3Nlcy5maWx0ZXIoYyA9PiBTQ1JBUEVSX01BUFtjXSkuam9pbigiLCAiKX1gKTsKCiAgICBsZXQgdG90YWwgPSAwOwogICAgbGV0IG5ld19jb3VudCA9IDA7CiAgICBjb25zdCBzYXZlZElkczogbnVtYmVyW10gPSBbXTsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwoKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSB7IG5ld19jb3VudCsrOyBzYXZlZElkcy5wdXNoKHNhdmVkKTsgfQogICAgICAgIH0KCiAgICAgICAgLy8gQXJjaGl2YXIgYW51bmNpb3MgZGVsIHBvcnRhbCBxdWUgeWEgbm8gZXN0w6FuIHB1YmxpY2Fkb3MKICAgICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCkgewogICAgICAgICAgY29uc3Qgc3JjOiBzdHJpbmcgPSBzY3JhcGVyLnNvdXJjZSA/PyBwcm9wc1swXS5zb3VyY2U7CiAgICAgICAgICBjb25zdCBhcmNoaXZlZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuYXJjaGl2ZVN0YWxlQnlTb3VyY2Uoc3JjLCBzY3JhcGVTdGFydGVkQXQpOwogICAgICAgICAgaWYgKGFyY2hpdmVkID4gMCkgYnVzTG9nKCJpbmZvIiwgYCR7YXJjaGl2ZWR9IGFudW5jaW8ocykgYXJjaGl2YWRvcyAoeWEgbm8gcHVibGljYWRvcylgLCBwb3J0YWxOYW1lKTsKICAgICAgICB9CgogICAgICAgIGJ1c0xvZygic3VjY2VzcyIsIGBDb21wbGV0YWRvOiAke3Byb3BzLmxlbmd0aH0gb2J0ZW5pZGFzLCAke25ld19jb3VudH0gZ3VhcmRhZGFzL2FjdHVhbGl6YWRhc2AsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZG9uZSIsIHRvdGFsOiBwcm9wcy5sZW5ndGgsIHNhdmVkOiBuZXdfY291bnQgfSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGJ1c0xvZygiZXJyb3IiLCBgRXJyb3I6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLCBwb3J0YWxOYW1lKTsKICAgICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImVycm9yIiwgbXNnOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlIH0pOwogICAgICB9CiAgICB9CgogICAgYnVzTG9nKCJzdWNjZXNzIiwgYFNjcmFwaW5nIGNvbXBsZXRhZG86ICR7dG90YWx9IHByb3BpZWRhZGVzIHByb2Nlc2FkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXMvYWN0dWFsaXphZGFzYCk7CgogICAgLy8gUG9zdC1wcm9jZXNhZG8gYXPDrW5jcm9ubzogc2NvcmluZyArIGRlZHVwbGljYWNpw7NuCiAgICB0aGlzLl9wb3N0UHJvY2VzcygpOwoKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBFamVjdXRhIGVsIHNjcmFwaW5nIGRlIFVOIMO6bmljbyBwb3J0YWwgcG9yIHN1IHNjcmFwZXJfY2xhc3MgKi8KICBhc3luYyBzY3JhcGVQb3J0YWwoc2NyYXBlckNsYXNzOiBzdHJpbmcsIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiA9ICJzYWxlIik6IFByb21pc2U8eyB0b3RhbDogbnVtYmVyOyBuZXdfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCBTY3JhcGVyQ3RvciA9IFNDUkFQRVJfTUFQW3NjcmFwZXJDbGFzc107CiAgICBpZiAoIVNjcmFwZXJDdG9yKSB0aHJvdyBuZXcgRXJyb3IoYFNjcmFwZXIgbm8gZW5jb250cmFkbzogJHtzY3JhcGVyQ2xhc3N9YCk7CiAgICBjb25zdCBzY3JhcGVyID0gbmV3IFNjcmFwZXJDdG9yKCkuc2V0T3BlcmF0aW9uVHlwZShvcGVyYXRpb25UeXBlKTsKICAgIGNvbnN0IHBvcnRhbE5hbWUgPSBzY3JhcGVyQ2xhc3MucmVwbGFjZSgvU2NyYXBlciQvLCAiIikucmVwbGFjZSgvUGxheXdyaWdodCQvLCAiIChQbGF5d3JpZ2h0KSIpOwogICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJzdGFydCIgfSk7CgogICAgbGV0IHRvdGFsID0gMDsKICAgIGxldCBuZXdfY291bnQgPSAwOwoKICAgIHRyeSB7CiAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoKTsKICAgICAgdG90YWwgPSBwcm9wcy5sZW5ndGg7CiAgICAgIGJ1c0xvZygiaW5mbyIsIGBPYnRlbmlkYXMgJHtwcm9wcy5sZW5ndGh9IHByb3BpZWRhZGVzIGRlbCBwb3J0YWxgLCBwb3J0YWxOYW1lKTsKICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BzKSB7CiAgICAgICAgY29uc3Qgc2F2ZWQgPSBhd2FpdCB0aGlzLl9zYXZlUHJvcGVydHkocHJvcCk7CiAgICAgICAgaWYgKHNhdmVkKSBuZXdfY291bnQrKzsKICAgICAgfQogICAgICAvLyBBcmNoaXZhciBhbnVuY2lvcyBkZWwgcG9ydGFsIHF1ZSB5YSBubyBlc3TDoW4gcHVibGljYWRvcwogICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCkgewogICAgICAgIGNvbnN0IHNyYzogc3RyaW5nID0gc2NyYXBlci5zb3VyY2UgPz8gcHJvcHNbMF0uc291cmNlOwogICAgICAgIGNvbnN0IGFyY2hpdmVkID0gYXdhaXQgUHJvcGVydHlNb2RlbC5hcmNoaXZlU3RhbGVCeVNvdXJjZShzcmMsIHNjcmFwZVN0YXJ0ZWRBdCk7CiAgICAgICAgaWYgKGFyY2hpdmVkID4gMCkgYnVzTG9nKCJpbmZvIiwgYCR7YXJjaGl2ZWR9IGFudW5jaW8ocykgYXJjaGl2YWRvcyAoeWEgbm8gcHVibGljYWRvcylgLCBwb3J0YWxOYW1lKTsKICAgICAgfQogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIGJ1c0xvZygiZXJyb3IiLCBgRXJyb3I6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLCBwb3J0YWxOYW1lKTsKICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJlcnJvciIsIG1zZzogKGVyciBhcyBFcnJvcikubWVzc2FnZSB9KTsKICAgIH0KCiAgICBidXNMb2coInN1Y2Nlc3MiLCBgQ29tcGxldGFkbzogJHt0b3RhbH0gb2J0ZW5pZGFzLCAke25ld19jb3VudH0gZ3VhcmRhZGFzYCwgcG9ydGFsTmFtZSk7CiAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImRvbmUiLCB0b3RhbCwgc2F2ZWQ6IG5ld19jb3VudCB9KTsKICAgIHRoaXMuX3Bvc3RQcm9jZXNzKHBvcnRhbE5hbWUpOwogICAgcmV0dXJuIHsgdG90YWwsIG5ld19jb3VudCB9OwogIH0KCiAgLyoqIFNjcmFwaW5nIHJlc3RyaW5naWRvIGEgdW5hIMO6bmljYSB6b25hIGdlb2dyw6FmaWNhICh0b2RvcyBsb3MgcG9ydGFsZXMgYWN0aXZvcykgKi8KICBhc3luYyBzY3JhcGVCeVpvbmUoem9uZVNsdWc6IHN0cmluZywgb3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IHpvbmUgPSBhd2FpdCBab25lTW9kZWwuZmluZEJ5U2x1Zyh6b25lU2x1Zyk7CiAgICBpZiAoIXpvbmUpIHRocm93IG5ldyBFcnJvcihgWm9uYSAnJHt6b25lU2x1Z30nIG5vIGVuY29udHJhZGEgZW4gbGEgYmFzZSBkZSBkYXRvc2ApOwoKICAgIGxldCBzY3JhcGVyQ2xhc3Nlczogc3RyaW5nW10gPSBbXTsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHBvcnRhbHMgPSBhd2FpdCBQb3J0YWxNb2RlbC5maW5kQWN0aXZlKCk7CiAgICAgIHNjcmFwZXJDbGFzc2VzID0gcG9ydGFscy5tYXAocCA9PiBwLnNjcmFwZXJfY2xhc3MpOwogICAgfSBjYXRjaCAoX2UpIHsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBPYmplY3Qua2V5cyhTQ1JBUEVSX01BUCk7CiAgICB9CgogICAgY29uc3Qgc2NyYXBlcnMgPSBzY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKQogICAgICAubWFwKGNscyA9PiAobmV3IFNDUkFQRVJfTUFQW2Nsc10oKSkuc2V0Wm9uZU92ZXJyaWRlKFt6b25lXSkuc2V0T3BlcmF0aW9uVHlwZShvcGVyYXRpb25UeXBlKSk7CgogICAgYnVzTG9nKCJpbmZvIiwgYFNjcmFwaW5nIHpvbmEgIiR7em9uZS5uYW1lfSIg4oCUICR7c2NyYXBlcnMubGVuZ3RofSBwb3J0YWxlc2ApOwoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoKTsKICAgICAgICB0b3RhbCArPSBwcm9wcy5sZW5ndGg7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYE9idGVuaWRhcyAke3Byb3BzLmxlbmd0aH0gcHJvcGllZGFkZXNgLCBwb3J0YWxOYW1lKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSBuZXdfY291bnQrKzsKICAgICAgICB9CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJkb25lIiwgdG90YWw6IHByb3BzLmxlbmd0aCwgc2F2ZWQ6IG5ld19jb3VudCB9KTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidXNMb2coInN1Y2Nlc3MiLCBgWm9uYSAiJHt6b25lLm5hbWV9IiBjb21wbGV0YWRhOiAke3RvdGFsfSBwcm9waWVkYWRlcyBwcm9jZXNhZGFzLCAke25ld19jb3VudH0gZ3VhcmRhZGFzYCk7CiAgICB0aGlzLl9wb3N0UHJvY2Vzcyhgem9uYToke3pvbmUubmFtZX1gKTsKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBSZS1nZW9jb2RpZmljYSBwcm9waWVkYWRlcyBxdWUgdGllbmVuIGNvb3JkZW5hZGFzIGRlIGNlbnRybyBkZSBtdW5pY2lwaW8gZXhhY3RhcyAqLwogIGFzeW5jIHJlR2VvY29kZUFsbCgpOiBQcm9taXNlPHsgdXBkYXRlZDogbnVtYmVyIH0+IHsKICAgIC8vIFVzYXIgY2VudHJvcyBkZSB6b25hIGRlc2RlIGxhIEJEIGVuIGx1Z2FyIGRlIHZhbG9yZXMgaGFyZGNvZGVhZG9zCiAgICBjb25zdCB6b25lcyA9IGF3YWl0IFpvbmVNb2RlbC5maW5kQWN0aXZlKCk7CiAgICBjb25zdCBjZW50ZXJDb29yZHMgPSB6b25lcy5tYXAoeiA9PiBbei5sYXQsIHoubG5nXSBhcyBbbnVtYmVyLCBudW1iZXJdKTsKICAgIGNvbnN0IGlzQ2VudGVyID0gKGxhdDogbnVtYmVyLCBsbmc6IG51bWJlcikgPT4KICAgICAgY2VudGVyQ29vcmRzLnNvbWUoKFtsYSwgbG5dKSA9PiBNYXRoLmFicyhsYSAtIGxhdCkgPCAwLjAwMDEgJiYgTWF0aC5hYnMobG4gLSBsbmcpIDwgMC4wMDAxKTsKCiAgICBjb25zdCBhbGwgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmZpbmRBbGwoKTsKICAgIGxldCB1cGRhdGVkID0gMDsKICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGwpIHsKICAgICAgdHJ5IHsKICAgICAgICBpZiAoIXByb3AubGF0IHx8ICFwcm9wLmxuZyB8fCBpc0NlbnRlcihwcm9wLmxhdCwgcHJvcC5sbmcpKSB7CiAgICAgICAgICBjb25zdCBnZW9RdWVyeSA9IFtwcm9wLmxvY2F0aW9uLCBwcm9wLm11bmljaXBhbGl0eSwgIlZhbGVuY2lhIiwgIkVzcGHDsWEiXQogICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKS5qb2luKCIsICIpOwogICAgICAgICAgbGV0IGdlbzogeyBsYXQ6IG51bWJlcjsgbG5nOiBudW1iZXIgfSB8IG51bGwgPSBudWxsOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZXRDb29yZGluYXRlcyhnZW9RdWVyeSk7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgaWYgKHByb3AubXVuaWNpcGFsaXR5KSB7CiAgICAgICAgICAgICAgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZW9jb2RlTXVuaWNpcGFsaXR5KHByb3AubXVuaWNpcGFsaXR5KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGdlbykgewogICAgICAgICAgICBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydCh7IC4uLnByb3AsIGxhdDogZ2VvLmxhdCwgbG5nOiBnZW8ubG5nIH0pOwogICAgICAgICAgICB1cGRhdGVkKys7CiAgICAgICAgICB9CiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMTEwMCkpOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoX2UpIHsgLyogc2tpcCAqLyB9CiAgICB9CiAgICByZXR1cm4geyB1cGRhdGVkIH07CiAgfQoKICAvLyDilIDilIDilIAgSGVscGVycyBwcml2YWRvcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKCiAgLyoqIEdlb2NvZGlmaWNhIHNpIGZhbHRhLCBjYWxjdWxhIHByZWNpby9twrIsIGd1YXJkYSBlbiBCRCB5IHJlZ2lzdHJhIGhpc3RvcmlhbC4KICAgKiAgRGV2dWVsdmUgZWwgSUQgZ3VhcmRhZG8gbyBudWxsIHNpIGh1Ym8gZXJyb3IgKGR1cGxpY2FkbyB1IG90cm8pLiAqLwogIHByaXZhdGUgYXN5bmMgX3NhdmVQcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IFByb21pc2U8bnVtYmVyIHwgbnVsbD4gewogICAgdHJ5IHsKICAgICAgaWYgKCFwcm9wLmxhdCAmJiAhcHJvcC5sbmcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgY29uc3QgZ2VvUXVlcnkgPSAoW3Byb3AubG9jYXRpb24sIHByb3AubXVuaWNpcGFsaXR5LCAiVmFsZW5jaWEiLCAiRXNwYcOxYSJdIGFzIHN0cmluZ1tdKQogICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKS5qb2luKCIsICIpOwogICAgICAgICAgY29uc3QgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZXRDb29yZGluYXRlcyhnZW9RdWVyeSk7CiAgICAgICAgICBwcm9wLmxhdCA9IGdlby5sYXQ7CiAgICAgICAgICBwcm9wLmxuZyA9IGdlby5sbmc7CiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICBpZiAocHJvcC5tdW5pY2lwYWxpdHkpIHsKICAgICAgICAgICAgY29uc3QgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZW9jb2RlTXVuaWNpcGFsaXR5KHByb3AubXVuaWNpcGFsaXR5KTsKICAgICAgICAgICAgaWYgKGdlbykgeyBwcm9wLmxhdCA9IGdlby5sYXQ7IHByb3AubG5nID0gZ2VvLmxuZzsgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBpZiAocHJvcC5wcmljZSA+IDAgJiYgKHByb3Auc2l6ZV9tMiB8fCAwKSA+IDApIHsKICAgICAgICAocHJvcCBhcyBhbnkpLnByaWNlX3Blcl9tMiA9IE1hdGgucm91bmQocHJvcC5wcmljZSAvIHByb3Auc2l6ZV9tMiEpOwogICAgICB9CiAgICAgIGNvbnN0IHNhdmVkSWQgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydChwcm9wKTsKICAgICAgaWYgKHNhdmVkSWQgJiYgcHJvcC5wcmljZSA+IDApIHsKICAgICAgICBhd2FpdCBQcmljZUhpc3RvcnlNb2RlbC5yZWNvcmRJZkNoYW5nZWQoc2F2ZWRJZCwgcHJvcC5wcmljZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHNhdmVkSWQgPz8gbnVsbDsKICAgIH0gY2F0Y2ggewogICAgICByZXR1cm4gbnVsbDsgLy8gc2tpcCBkdXBsaWNhdGVzIC8gY29uc3RyYWludCBlcnJvcnMKICAgIH0KICB9CgogIC8qKiBMYW56YSBzY29yaW5nICsgZGVkdXBsaWNhY2nDs24gZGUgZm9ybWEgYXPDrW5jcm9uYSBzaW4gYmxvcXVlYXIgbGEgcmVzcHVlc3RhICovCiAgcHJpdmF0ZSBfcG9zdFByb2Nlc3MobGFiZWwgPSAiIik6IHZvaWQgewogICAgc2V0SW1tZWRpYXRlKGFzeW5jICgpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBidXNMb2coImluZm8iLCAiQ2FsY3VsYW5kbyBzY29yZXMuLi4iLCBsYWJlbCk7CiAgICAgICAgYXdhaXQgc2NvcmluZ1NlcnZpY2Uuc2NvcmVBbGwoKTsKICAgICAgICBidXNMb2coImluZm8iLCAiRWplY3V0YW5kbyBkZWR1cGxpY2FjacOzbi4uLiIsIGxhYmVsKTsKICAgICAgICBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5yZXNldER1cGxpY2F0ZXMoKTsKICAgICAgICBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5ydW5EZWR1cGxpY2F0aW9uKCk7CiAgICAgICAgYnVzTG9nKCJzdWNjZXNzIiwgIlBvc3QtcHJvY2VzYWRvIGNvbXBsZXRhZG8g4pyFIiwgbGFiZWwpOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBidXNMb2coImVycm9yIiwgYFtQb3N0LXNjcmFwaW5nXSBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIGxhYmVsKTsKICAgICAgfQogICAgfSk7CiAgfQoKICAvKiogRGF0b3MgZGUgYW5hbHl0aWNzIHBhcmEgZWwgZGFzaGJvYXJkICovCiAgYXN5bmMgZ2V0QW5hbHl0aWNzKCk6IFByb21pc2U8YW55PiB7CiAgICBjb25zdCBbYnlQb3J0YWxdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIHNvdXJjZSwgQ09VTlQoKikgQVMgY291bnQsIEFWRyhwcmljZSkgQVMgYXZnX3ByaWNlLCBBVkcocHJpY2VfcGVyX20yKSBBUyBhdmdfcG0yCiAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBpc19kdXBsaWNhdGUgPSAwIE9SIGlzX2R1cGxpY2F0ZSBJUyBOVUxMCiAgICAgIEdST1VQIEJZIHNvdXJjZSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbYnlNdW5pXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBtdW5pY2lwYWxpdHksIENPVU5UKCopIEFTIGNvdW50LCBBVkcocHJpY2UpIEFTIGF2Z19wcmljZSwKICAgICAgICAgICAgIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIsIEFWRyhzY29yZSkgQVMgYXZnX3Njb3JlCiAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBpc19kdXBsaWNhdGUgPSAwIE9SIGlzX2R1cGxpY2F0ZSBJUyBOVUxMCiAgICAgIEdST1VQIEJZIG11bmljaXBhbGl0eSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbYnlUeXBlXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBwcm9wZXJ0eV90eXBlLCBDT1VOVCgqKSBBUyBjb3VudCwgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UKICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2R1cGxpY2F0ZSA9IDAgT1IgaXNfZHVwbGljYXRlIElTIE5VTEwKICAgICAgR1JPVVAgQlkgcHJvcGVydHlfdHlwZSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbc3VtbWFyeV0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYAogICAgICBTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwsCiAgICAgICAgICAgICBDT1VOVChDQVNFIFdIRU4gaXNfZHVwbGljYXRlID0gMSBUSEVOIDEgRU5EKSBBUyBkdXBsaWNhdGVzLAogICAgICAgICAgICAgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UsIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIsCiAgICAgICAgICAgICBBVkcoc2NvcmUpIEFTIGF2Z19zY29yZSwKICAgICAgICAgICAgIE1JTihwcmljZSkgQVMgbWluX3ByaWNlLCBNQVgocHJpY2UpIEFTIG1heF9wcmljZSwKICAgICAgICAgICAgIChTRUxFQ1QgQ09VTlQoKikgRlJPTSBwcmljZV9oaXN0b3J5KSBBUyBwcmljZV9yZWNvcmRzCiAgICAgIEZST00gcHJvcGVydGllcwogICAgYCk7CgogICAgY29uc3QgcHJpY2VEcm9wcyA9IGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLmdldFByaWNlRHJvcFN0YXRzKCk7CiAgICBjb25zdCBwcmljZU92ZXJUaW1lID0gYXdhaXQgUHJpY2VIaXN0b3J5TW9kZWwuZ2V0T3ZlcmFsbFRyZW5kKDkwKTsKCiAgICByZXR1cm4gewogICAgICBzdW1tYXJ5OiBzdW1tYXJ5WzBdLAogICAgICBieVBvcnRhbCwgYnlNdW5pLCBieVR5cGUsCiAgICAgIHByaWNlRHJvcHMsIHByaWNlT3ZlclRpbWUsCiAgICB9OwogIH0KfQoKZXhwb3J0IGRlZmF1bHQgbmV3IFByb3BlcnR5U2VydmljZSgpOwoK","afterExisted":true,"afterHash":"467d97fd5b77c5cbff2edf28e18554d2ebedccaf3ae7b4a7ad48840c9f100bd5","afterContent":"aW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKaW1wb3J0IHsgYnVzTG9nLCBzY3JhcGVyQnVzIH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKaW1wb3J0IHsKICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwgRm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlciwKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn0gZnJvbSAiLi4vc2NyYXBlcnMvaW5kZXgiOwppbXBvcnQgeyBHZW9jb2RpbmdTZXJ2aWNlIH0gZnJvbSAiLi9nZW9jb2RpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgU2NvcmluZ1NlcnZpY2UgfSBmcm9tICIuL3Njb3JpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgRGVkdXBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICIuL2RlZHVwbGljYXRpb25TZXJ2aWNlIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOwppbXBvcnQgeyBab25lTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUm93RGF0YVBhY2tldCB9IGZyb20gIm15c3FsMiI7CmltcG9ydCB7IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbiB9IGZyb20gIi4uL3NjcmFwZXJzL2NhcGFiaWxpdGllcyI7CgovLyBNYXBhIGRlIG5vbWJyZSBkZSBjbGFzZSDihpIgY29uc3RydWN0b3IgZGUgc2NyYXBlciAoUGxheXdyaWdodCA+IENoZWVyaW8gcGFyYSBwb3J0YWxlcyBKUykKY29uc3QgU0NSQVBFUl9NQVA6IFJlY29yZDxzdHJpbmcsIG5ldyAoKSA9PiBhbnk+ID0gewogIElkZWFsaXN0YVNjcmFwZXI6IElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgLy8gYWxpYXMgbGVnYWN5IOKGkiBQbGF5d3JpZ2h0CiAgSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGF2ZSBkaXJlY3RhICh2YWxvciBhY3R1YWwgZW4gQkQpCiAgRm90b2Nhc2FTY3JhcGVyOiBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAvLyBhbGlhcyBsZWdhY3kg4oaSIFBsYXl3cmlnaHQKICBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsYXZlIGRpcmVjdGEgKHZhbG9yIGFjdHVhbCBlbiBCRCkKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn07Cgpjb25zdCBnZW9TZXJ2aWNlID0gbmV3IEdlb2NvZGluZ1NlcnZpY2UoKTsKY29uc3Qgc2NvcmluZ1NlcnZpY2UgPSBuZXcgU2NvcmluZ1NlcnZpY2UoKTsKY29uc3QgZGVkdXBsaWNhdGlvblNlcnZpY2UgPSBuZXcgRGVkdXBsaWNhdGlvblNlcnZpY2UoKTsKCmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlcnZpY2UgewogIGFzeW5jIGdldEFsbFByb3BlcnRpZXMoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICByZXR1cm4gUHJvcGVydHlNb2RlbC5maW5kQWxsKCk7CiAgfQoKICBhc3luYyBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoZmlsdGVyOiBQYXJ0aWFsPEZpbHRlcj4pOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIHJldHVybiBQcm9wZXJ0eU1vZGVsLmZpbHRlckFkdmFuY2VkKAogICAgICBmaWx0ZXIubWluX3ByaWNlLCBmaWx0ZXIubWF4X3ByaWNlLCBmaWx0ZXIucHJvcGVydHlfdHlwZSwKICAgICAgZmlsdGVyLm11bmljaXBhbGl0eSwgZmlsdGVyLm1pbl9yb29tcywgZmlsdGVyLm1pbl9zaXplX20yCiAgICApOwogIH0KCiAgYXN5bmMgZ2V0UHJvcGVydHlCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb3BlcnR5IHwgbnVsbD4gewogICAgcmV0dXJuIFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICB9CgogIGFzeW5jIGNyZWF0ZVByb3BlcnR5KHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHk+IHsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHByb3BlcnR5KTsKICAgIHJldHVybiBwcm9wZXJ0eTsKICB9CgogIGFzeW5jIHVwZGF0ZVByb3BlcnR5KGlkOiBzdHJpbmcsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHkgfCBudWxsPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBudWxsOwogICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cHNlcnQoeyAuLi5leGlzdGluZywgLi4ucHJvcGVydHkgfSk7CiAgICByZXR1cm4gcHJvcGVydHk7CiAgfQoKICBhc3luYyBkZWxldGVQcm9wZXJ0eShpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBmYWxzZTsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwuZGVsZXRlQnlJZChwYXJzZUludChpZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICBhc3luYyBzY3JhcGVBbGwob3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIC8vIENvbnN0cnVpciBsaXN0YSBkZSBzY3JhcGVycyBhY3Rpdm9zIHNlZ8O6biBsYSBCRCBkZSBwb3J0YWxlcwogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBrbm93blNjcmFwZXJDbGFzc2VzID0gc2NyYXBlckNsYXNzZXMuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKTsKICAgIGNvbnN0IGNvbXBhdGlibGVDbGFzc2VzID0ga25vd25TY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCB1bnN1cHBvcnRlZENsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+ICFzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCBzY3JhcGVycyA9IGNvbXBhdGlibGVDbGFzc2VzCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgVXNhbmRvICR7c2NyYXBlcnMubGVuZ3RofSBwb3J0YWxlcyBhY3Rpdm9zICgke29wZXJhdGlvblR5cGV9KTogJHtjb21wYXRpYmxlQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgaWYgKHVuc3VwcG9ydGVkQ2xhc3Nlcy5sZW5ndGggPiAwKSB7CiAgICAgIGJ1c0xvZygiaW5mbyIsIGBPbWl0aWRvcyBwb3Igbm8gc29wb3J0YXIgJHtvcGVyYXRpb25UeXBlfTogJHt1bnN1cHBvcnRlZENsYXNzZXMuam9pbigiLCAiKX1gKTsKICAgIH0KCiAgICBsZXQgdG90YWwgPSAwOwogICAgbGV0IG5ld19jb3VudCA9IDA7CiAgICBjb25zdCBzYXZlZElkczogbnVtYmVyW10gPSBbXTsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwoKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSB7IG5ld19jb3VudCsrOyBzYXZlZElkcy5wdXNoKHNhdmVkKTsgfQogICAgICAgIH0KCiAgICAgICAgLy8gQXJjaGl2YXIgYW51bmNpb3MgZGVsIHBvcnRhbCBxdWUgeWEgbm8gZXN0w6FuIHB1YmxpY2Fkb3MKICAgICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCkgewogICAgICAgICAgY29uc3Qgc3JjOiBzdHJpbmcgPSBzY3JhcGVyLnNvdXJjZSA/PyBwcm9wc1swXS5zb3VyY2U7CiAgICAgICAgICBjb25zdCBhcmNoaXZlZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuYXJjaGl2ZVN0YWxlQnlTb3VyY2Uoc3JjLCBvcGVyYXRpb25UeXBlLCBzY3JhcGVTdGFydGVkQXQpOwogICAgICAgICAgaWYgKGFyY2hpdmVkID4gMCkgYnVzTG9nKCJpbmZvIiwgYCR7YXJjaGl2ZWR9IGFudW5jaW8ocykgYXJjaGl2YWRvcyAoeWEgbm8gcHVibGljYWRvcylgLCBwb3J0YWxOYW1lKTsKICAgICAgICB9CgogICAgICAgIGJ1c0xvZygic3VjY2VzcyIsIGBDb21wbGV0YWRvOiAke3Byb3BzLmxlbmd0aH0gb2J0ZW5pZGFzLCAke25ld19jb3VudH0gZ3VhcmRhZGFzL2FjdHVhbGl6YWRhc2AsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZG9uZSIsIHRvdGFsOiBwcm9wcy5sZW5ndGgsIHNhdmVkOiBuZXdfY291bnQgfSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGJ1c0xvZygiZXJyb3IiLCBgRXJyb3I6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLCBwb3J0YWxOYW1lKTsKICAgICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImVycm9yIiwgbXNnOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlIH0pOwogICAgICB9CiAgICB9CgogICAgYnVzTG9nKCJzdWNjZXNzIiwgYFNjcmFwaW5nIGNvbXBsZXRhZG86ICR7dG90YWx9IHByb3BpZWRhZGVzIHByb2Nlc2FkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXMvYWN0dWFsaXphZGFzYCk7CgogICAgLy8gUG9zdC1wcm9jZXNhZG8gYXPDrW5jcm9ubzogc2NvcmluZyArIGRlZHVwbGljYWNpw7NuCiAgICB0aGlzLl9wb3N0UHJvY2VzcygpOwoKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBFamVjdXRhIGVsIHNjcmFwaW5nIGRlIFVOIMO6bmljbyBwb3J0YWwgcG9yIHN1IHNjcmFwZXJfY2xhc3MgKi8KICBhc3luYyBzY3JhcGVQb3J0YWwoc2NyYXBlckNsYXNzOiBzdHJpbmcsIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiA9ICJzYWxlIik6IFByb21pc2U8eyB0b3RhbDogbnVtYmVyOyBuZXdfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCBTY3JhcGVyQ3RvciA9IFNDUkFQRVJfTUFQW3NjcmFwZXJDbGFzc107CiAgICBpZiAoIVNjcmFwZXJDdG9yKSB0aHJvdyBuZXcgRXJyb3IoYFNjcmFwZXIgbm8gZW5jb250cmFkbzogJHtzY3JhcGVyQ2xhc3N9YCk7CiAgICBpZiAoIXN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihzY3JhcGVyQ2xhc3MsIG9wZXJhdGlvblR5cGUpKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgc2NyYXBlciAke3NjcmFwZXJDbGFzc30gbm8gc29wb3J0YSBsYSBvcGVyYWNpw7NuICcke29wZXJhdGlvblR5cGV9J2ApOwogICAgfQogICAgY29uc3Qgc2NyYXBlciA9IG5ldyBTY3JhcGVyQ3RvcigpLnNldE9wZXJhdGlvblR5cGUob3BlcmF0aW9uVHlwZSk7CiAgICBjb25zdCBwb3J0YWxOYW1lID0gc2NyYXBlckNsYXNzLnJlcGxhY2UoL1NjcmFwZXIkLywgIiIpLnJlcGxhY2UoL1BsYXl3cmlnaHQkLywgIiAoUGxheXdyaWdodCkiKTsKICAgIGJ1c0xvZygiaW5mbyIsIGBJbmljaWFuZG8gc2NyYXBpbmcuLi5gLCBwb3J0YWxOYW1lKTsKICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKCiAgICB0cnkgewogICAgICBjb25zdCBzY3JhcGVTdGFydGVkQXQgPSBuZXcgRGF0ZSgpOwogICAgICBjb25zdCBwcm9wczogUHJvcGVydHlbXSA9IGF3YWl0IHNjcmFwZXIuc2NyYXBlKCk7CiAgICAgIHRvdGFsID0gcHJvcHMubGVuZ3RoOwogICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlcyBkZWwgcG9ydGFsYCwgcG9ydGFsTmFtZSk7CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykgewogICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgIGlmIChzYXZlZCkgbmV3X2NvdW50Kys7CiAgICAgIH0KICAgICAgLy8gQXJjaGl2YXIgYW51bmNpb3MgZGVsIHBvcnRhbCBxdWUgeWEgbm8gZXN0w6FuIHB1YmxpY2Fkb3MKICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDApIHsKICAgICAgICBjb25zdCBzcmM6IHN0cmluZyA9IHNjcmFwZXIuc291cmNlID8/IHByb3BzWzBdLnNvdXJjZTsKICAgICAgICBjb25zdCBhcmNoaXZlZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuYXJjaGl2ZVN0YWxlQnlTb3VyY2Uoc3JjLCBvcGVyYXRpb25UeXBlLCBzY3JhcGVTdGFydGVkQXQpOwogICAgICAgIGlmIChhcmNoaXZlZCA+IDApIGJ1c0xvZygiaW5mbyIsIGAke2FyY2hpdmVkfSBhbnVuY2lvKHMpIGFyY2hpdmFkb3MgKHlhIG5vIHB1YmxpY2Fkb3MpYCwgcG9ydGFsTmFtZSk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGVycikgewogICAgICBidXNMb2coImVycm9yIiwgYEVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCwgcG9ydGFsTmFtZSk7CiAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICB9CgogICAgYnVzTG9nKCJzdWNjZXNzIiwgYENvbXBsZXRhZG86ICR7dG90YWx9IG9idGVuaWRhcywgJHtuZXdfY291bnR9IGd1YXJkYWRhc2AsIHBvcnRhbE5hbWUpOwogICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJkb25lIiwgdG90YWwsIHNhdmVkOiBuZXdfY291bnQgfSk7CiAgICB0aGlzLl9wb3N0UHJvY2Vzcyhwb3J0YWxOYW1lKTsKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBTY3JhcGluZyByZXN0cmluZ2lkbyBhIHVuYSDDum5pY2Egem9uYSBnZW9ncsOhZmljYSAodG9kb3MgbG9zIHBvcnRhbGVzIGFjdGl2b3MpICovCiAgYXN5bmMgc2NyYXBlQnlab25lKHpvbmVTbHVnOiBzdHJpbmcsIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiA9ICJzYWxlIik6IFByb21pc2U8eyB0b3RhbDogbnVtYmVyOyBuZXdfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCB6b25lID0gYXdhaXQgWm9uZU1vZGVsLmZpbmRCeVNsdWcoem9uZVNsdWcpOwogICAgaWYgKCF6b25lKSB0aHJvdyBuZXcgRXJyb3IoYFpvbmEgJyR7em9uZVNsdWd9JyBubyBlbmNvbnRyYWRhIGVuIGxhIGJhc2UgZGUgZGF0b3NgKTsKCiAgICBsZXQgc2NyYXBlckNsYXNzZXM6IHN0cmluZ1tdID0gW107CiAgICB0cnkgewogICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFjdGl2ZSgpOwogICAgICBzY3JhcGVyQ2xhc3NlcyA9IHBvcnRhbHMubWFwKHAgPT4gcC5zY3JhcGVyX2NsYXNzKTsKICAgIH0gY2F0Y2ggKF9lKSB7CiAgICAgIHNjcmFwZXJDbGFzc2VzID0gT2JqZWN0LmtleXMoU0NSQVBFUl9NQVApOwogICAgfQoKICAgIGNvbnN0IGtub3duU2NyYXBlckNsYXNzZXMgPSBzY3JhcGVyQ2xhc3Nlcy5maWx0ZXIoY2xzID0+IFNDUkFQRVJfTUFQW2Nsc10pOwogICAgY29uc3QgY29tcGF0aWJsZUNsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihjbHMsIG9wZXJhdGlvblR5cGUpKTsKICAgIGNvbnN0IHVuc3VwcG9ydGVkQ2xhc3NlcyA9IGtub3duU2NyYXBlckNsYXNzZXMKICAgICAgLmZpbHRlcihjbHMgPT4gIXN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihjbHMsIG9wZXJhdGlvblR5cGUpKTsKICAgIGNvbnN0IHNjcmFwZXJzID0gY29tcGF0aWJsZUNsYXNzZXMKICAgICAgLm1hcChjbHMgPT4gKG5ldyBTQ1JBUEVSX01BUFtjbHNdKCkpLnNldFpvbmVPdmVycmlkZShbem9uZV0pLnNldE9wZXJhdGlvblR5cGUob3BlcmF0aW9uVHlwZSkpOwoKICAgIGJ1c0xvZygiaW5mbyIsIGBTY3JhcGluZyB6b25hICIke3pvbmUubmFtZX0iIOKAlCAke3NjcmFwZXJzLmxlbmd0aH0gcG9ydGFsZXNgKTsKICAgIGlmICh1bnN1cHBvcnRlZENsYXNzZXMubGVuZ3RoID4gMCkgewogICAgICBidXNMb2coImluZm8iLCBgT21pdGlkb3MgcG9yIG5vIHNvcG9ydGFyICR7b3BlcmF0aW9uVHlwZX06ICR7dW5zdXBwb3J0ZWRDbGFzc2VzLmpvaW4oIiwgIil9YCk7CiAgICB9CgogICAgbGV0IHRvdGFsID0gMDsKICAgIGxldCBuZXdfY291bnQgPSAwOwoKICAgIGZvciAoY29uc3Qgc2NyYXBlciBvZiBzY3JhcGVycykgewogICAgICBjb25zdCBwb3J0YWxOYW1lOiBzdHJpbmcgPSBzY3JhcGVyLmNvbnN0cnVjdG9yPy5uYW1lID8/ICJTY3JhcGVyIjsKICAgICAgdHJ5IHsKICAgICAgICBidXNMb2coImluZm8iLCBgSW5pY2lhbmRvIHNjcmFwaW5nLi4uYCwgcG9ydGFsTmFtZSk7CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJzdGFydCIgfSk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwogICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykgewogICAgICAgICAgY29uc3Qgc2F2ZWQgPSBhd2FpdCB0aGlzLl9zYXZlUHJvcGVydHkocHJvcCk7CiAgICAgICAgICBpZiAoc2F2ZWQpIG5ld19jb3VudCsrOwogICAgICAgIH0KICAgICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImRvbmUiLCB0b3RhbDogcHJvcHMubGVuZ3RoLCBzYXZlZDogbmV3X2NvdW50IH0pOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBidXNMb2coImVycm9yIiwgYEVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCwgcG9ydGFsTmFtZSk7CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJlcnJvciIsIG1zZzogKGVyciBhcyBFcnJvcikubWVzc2FnZSB9KTsKICAgICAgfQogICAgfQoKICAgIGJ1c0xvZygic3VjY2VzcyIsIGBab25hICIke3pvbmUubmFtZX0iIGNvbXBsZXRhZGE6ICR7dG90YWx9IHByb3BpZWRhZGVzIHByb2Nlc2FkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXNgKTsKICAgIHRoaXMuX3Bvc3RQcm9jZXNzKGB6b25hOiR7em9uZS5uYW1lfWApOwogICAgcmV0dXJuIHsgdG90YWwsIG5ld19jb3VudCB9OwogIH0KCiAgLyoqIFJlLWdlb2NvZGlmaWNhIHByb3BpZWRhZGVzIHF1ZSB0aWVuZW4gY29vcmRlbmFkYXMgZGUgY2VudHJvIGRlIG11bmljaXBpbyBleGFjdGFzICovCiAgYXN5bmMgcmVHZW9jb2RlQWxsKCk6IFByb21pc2U8eyB1cGRhdGVkOiBudW1iZXIgfT4gewogICAgLy8gVXNhciBjZW50cm9zIGRlIHpvbmEgZGVzZGUgbGEgQkQgZW4gbHVnYXIgZGUgdmFsb3JlcyBoYXJkY29kZWFkb3MKICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgWm9uZU1vZGVsLmZpbmRBY3RpdmUoKTsKICAgIGNvbnN0IGNlbnRlckNvb3JkcyA9IHpvbmVzLm1hcCh6ID0+IFt6LmxhdCwgei5sbmddIGFzIFtudW1iZXIsIG51bWJlcl0pOwogICAgY29uc3QgaXNDZW50ZXIgPSAobGF0OiBudW1iZXIsIGxuZzogbnVtYmVyKSA9PgogICAgICBjZW50ZXJDb29yZHMuc29tZSgoW2xhLCBsbl0pID0+IE1hdGguYWJzKGxhIC0gbGF0KSA8IDAuMDAwMSAmJiBNYXRoLmFicyhsbiAtIGxuZykgPCAwLjAwMDEpOwoKICAgIGNvbnN0IGFsbCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEFsbCgpOwogICAgbGV0IHVwZGF0ZWQgPSAwOwogICAgZm9yIChjb25zdCBwcm9wIG9mIGFsbCkgewogICAgICB0cnkgewogICAgICAgIGlmICghcHJvcC5sYXQgfHwgIXByb3AubG5nIHx8IGlzQ2VudGVyKHByb3AubGF0LCBwcm9wLmxuZykpIHsKICAgICAgICAgIGNvbnN0IGdlb1F1ZXJ5ID0gW3Byb3AubG9jYXRpb24sIHByb3AubXVuaWNpcGFsaXR5LCAiVmFsZW5jaWEiLCAiRXNwYcOxYSJdCiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpLmpvaW4oIiwgIik7CiAgICAgICAgICBsZXQgZ2VvOiB7IGxhdDogbnVtYmVyOyBsbmc6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdldENvb3JkaW5hdGVzKGdlb1F1ZXJ5KTsKICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICBpZiAocHJvcC5tdW5pY2lwYWxpdHkpIHsKICAgICAgICAgICAgICBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdlb2NvZGVNdW5pY2lwYWxpdHkocHJvcC5tdW5pY2lwYWxpdHkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZ2VvKSB7CiAgICAgICAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHsgLi4ucHJvcCwgbGF0OiBnZW8ubGF0LCBsbmc6IGdlby5sbmcgfSk7CiAgICAgICAgICAgIHVwZGF0ZWQrKzsKICAgICAgICAgIH0KICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxMTAwKSk7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChfZSkgeyAvKiBza2lwICovIH0KICAgIH0KICAgIHJldHVybiB7IHVwZGF0ZWQgfTsKICB9CgogIC8vIOKUgOKUgOKUgCBIZWxwZXJzIHByaXZhZG9zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAoKICAvKiogR2VvY29kaWZpY2Egc2kgZmFsdGEsIGNhbGN1bGEgcHJlY2lvL23CsiwgZ3VhcmRhIGVuIEJEIHkgcmVnaXN0cmEgaGlzdG9yaWFsLgogICAqICBEZXZ1ZWx2ZSBlbCBJRCBndWFyZGFkbyBvIG51bGwgc2kgaHVibyBlcnJvciAoZHVwbGljYWRvIHUgb3RybykuICovCiAgcHJpdmF0ZSBhc3luYyBfc2F2ZVByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogUHJvbWlzZTxudW1iZXIgfCBudWxsPiB7CiAgICB0cnkgewogICAgICBpZiAoIXByb3AubGF0ICYmICFwcm9wLmxuZykgewogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBnZW9RdWVyeSA9IChbcHJvcC5sb2NhdGlvbiwgcHJvcC5tdW5pY2lwYWxpdHksICJWYWxlbmNpYSIsICJFc3Bhw7FhIl0gYXMgc3RyaW5nW10pCiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpLmpvaW4oIiwgIik7CiAgICAgICAgICBjb25zdCBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdldENvb3JkaW5hdGVzKGdlb1F1ZXJ5KTsKICAgICAgICAgIHByb3AubGF0ID0gZ2VvLmxhdDsKICAgICAgICAgIHByb3AubG5nID0gZ2VvLmxuZzsKICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgIGlmIChwcm9wLm11bmljaXBhbGl0eSkgewogICAgICAgICAgICBjb25zdCBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdlb2NvZGVNdW5pY2lwYWxpdHkocHJvcC5tdW5pY2lwYWxpdHkpOwogICAgICAgICAgICBpZiAoZ2VvKSB7IHByb3AubGF0ID0gZ2VvLmxhdDsgcHJvcC5sbmcgPSBnZW8ubG5nOyB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChwcm9wLnByaWNlID4gMCAmJiAocHJvcC5zaXplX20yIHx8IDApID4gMCkgewogICAgICAgIChwcm9wIGFzIGFueSkucHJpY2VfcGVyX20yID0gTWF0aC5yb3VuZChwcm9wLnByaWNlIC8gcHJvcC5zaXplX20yISk7CiAgICAgIH0KICAgICAgY29uc3Qgc2F2ZWRJZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHByb3ApOwogICAgICBpZiAoc2F2ZWRJZCAmJiBwcm9wLnByaWNlID4gMCkgewogICAgICAgIGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLnJlY29yZElmQ2hhbmdlZChzYXZlZElkLCBwcm9wLnByaWNlKTsKICAgICAgfQogICAgICByZXR1cm4gc2F2ZWRJZCA/PyBudWxsOwogICAgfSBjYXRjaCB7CiAgICAgIHJldHVybiBudWxsOyAvLyBza2lwIGR1cGxpY2F0ZXMgLyBjb25zdHJhaW50IGVycm9ycwogICAgfQogIH0KCiAgLyoqIExhbnphIHNjb3JpbmcgKyBkZWR1cGxpY2FjacOzbiBkZSBmb3JtYSBhc8OtbmNyb25hIHNpbiBibG9xdWVhciBsYSByZXNwdWVzdGEgKi8KICBwcml2YXRlIF9wb3N0UHJvY2VzcyhsYWJlbCA9ICIiKTogdm9pZCB7CiAgICBzZXRJbW1lZGlhdGUoYXN5bmMgKCkgPT4gewogICAgICB0cnkgewogICAgICAgIGJ1c0xvZygiaW5mbyIsICJDYWxjdWxhbmRvIHNjb3Jlcy4uLiIsIGxhYmVsKTsKICAgICAgICBhd2FpdCBzY29yaW5nU2VydmljZS5zY29yZUFsbCgpOwogICAgICAgIGJ1c0xvZygiaW5mbyIsICJFamVjdXRhbmRvIGRlZHVwbGljYWNpw7NuLi4uIiwgbGFiZWwpOwogICAgICAgIGF3YWl0IGRlZHVwbGljYXRpb25TZXJ2aWNlLnJlc2V0RHVwbGljYXRlcygpOwogICAgICAgIGF3YWl0IGRlZHVwbGljYXRpb25TZXJ2aWNlLnJ1bkRlZHVwbGljYXRpb24oKTsKICAgICAgICBidXNMb2coInN1Y2Nlc3MiLCAiUG9zdC1wcm9jZXNhZG8gY29tcGxldGFkbyDinIUiLCBsYWJlbCk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGJ1c0xvZygiZXJyb3IiLCBgW1Bvc3Qtc2NyYXBpbmddIEVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCwgbGFiZWwpOwogICAgICB9CiAgICB9KTsKICB9CgogIC8qKiBEYXRvcyBkZSBhbmFseXRpY3MgcGFyYSBlbCBkYXNoYm9hcmQgKi8KICBhc3luYyBnZXRBbmFseXRpY3MoKTogUHJvbWlzZTxhbnk+IHsKICAgIGNvbnN0IFtieVBvcnRhbF0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYAogICAgICBTRUxFQ1Qgc291cmNlLCBDT1VOVCgqKSBBUyBjb3VudCwgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UsIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIKICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2R1cGxpY2F0ZSA9IDAgT1IgaXNfZHVwbGljYXRlIElTIE5VTEwKICAgICAgR1JPVVAgQlkgc291cmNlIE9SREVSIEJZIGNvdW50IERFU0MKICAgIGApOwoKICAgIGNvbnN0IFtieU11bmldID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIG11bmljaXBhbGl0eSwgQ09VTlQoKikgQVMgY291bnQsIEFWRyhwcmljZSkgQVMgYXZnX3ByaWNlLAogICAgICAgICAgICAgQVZHKHByaWNlX3Blcl9tMikgQVMgYXZnX3BtMiwgQVZHKHNjb3JlKSBBUyBhdmdfc2NvcmUKICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2R1cGxpY2F0ZSA9IDAgT1IgaXNfZHVwbGljYXRlIElTIE5VTEwKICAgICAgR1JPVVAgQlkgbXVuaWNpcGFsaXR5IE9SREVSIEJZIGNvdW50IERFU0MKICAgIGApOwoKICAgIGNvbnN0IFtieVR5cGVdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIHByb3BlcnR5X3R5cGUsIENPVU5UKCopIEFTIGNvdW50LCBBVkcocHJpY2UpIEFTIGF2Z19wcmljZQogICAgICBGUk9NIHByb3BlcnRpZXMgV0hFUkUgaXNfZHVwbGljYXRlID0gMCBPUiBpc19kdXBsaWNhdGUgSVMgTlVMTAogICAgICBHUk9VUCBCWSBwcm9wZXJ0eV90eXBlIE9SREVSIEJZIGNvdW50IERFU0MKICAgIGApOwoKICAgIGNvbnN0IFtzdW1tYXJ5XSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwKICAgICAgICAgICAgIENPVU5UKENBU0UgV0hFTiBpc19kdXBsaWNhdGUgPSAxIFRIRU4gMSBFTkQpIEFTIGR1cGxpY2F0ZXMsCiAgICAgICAgICAgICBBVkcocHJpY2UpIEFTIGF2Z19wcmljZSwgQVZHKHByaWNlX3Blcl9tMikgQVMgYXZnX3BtMiwKICAgICAgICAgICAgIEFWRyhzY29yZSkgQVMgYXZnX3Njb3JlLAogICAgICAgICAgICAgTUlOKHByaWNlKSBBUyBtaW5fcHJpY2UsIE1BWChwcmljZSkgQVMgbWF4X3ByaWNlLAogICAgICAgICAgICAgKFNFTEVDVCBDT1VOVCgqKSBGUk9NIHByaWNlX2hpc3RvcnkpIEFTIHByaWNlX3JlY29yZHMKICAgICAgRlJPTSBwcm9wZXJ0aWVzCiAgICBgKTsKCiAgICBjb25zdCBwcmljZURyb3BzID0gYXdhaXQgUHJpY2VIaXN0b3J5TW9kZWwuZ2V0UHJpY2VEcm9wU3RhdHMoKTsKICAgIGNvbnN0IHByaWNlT3ZlclRpbWUgPSBhd2FpdCBQcmljZUhpc3RvcnlNb2RlbC5nZXRPdmVyYWxsVHJlbmQoOTApOwoKICAgIHJldHVybiB7CiAgICAgIHN1bW1hcnk6IHN1bW1hcnlbMF0sCiAgICAgIGJ5UG9ydGFsLCBieU11bmksIGJ5VHlwZSwKICAgICAgcHJpY2VEcm9wcywgcHJpY2VPdmVyVGltZSwKICAgIH07CiAgfQp9CgpleHBvcnQgZGVmYXVsdCBuZXcgUHJvcGVydHlTZXJ2aWNlKCk7Cg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\schedulerService.ts","beforeExisted":true,"beforeHash":"bdd1d3060b7acf087c23bd9e7d4228f37d44cd4f1448382adc52b4ae3b56fc51","beforeContent":"aW1wb3J0IGNyb24gZnJvbSAibm9kZS1jcm9uIjsNCmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gIi4vcHJvcGVydHlTZXJ2aWNlIjsNCmltcG9ydCB7IEVtYWlsU2VydmljZSB9IGZyb20gIi4vZW1haWxTZXJ2aWNlIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7DQppbXBvcnQgeyBSZXN1bHRTZXRIZWFkZXIsIFJvd0RhdGFQYWNrZXQgfSBmcm9tICJteXNxbDIiOw0KDQpsZXQgaXNSdW5uaW5nID0gZmFsc2U7DQpsZXQgbGFzdFJ1bkF0OiBEYXRlIHwgbnVsbCA9IG51bGw7DQpsZXQgbGFzdFJ1blN0YXR1czogInN1Y2Nlc3MiIHwgImVycm9yIiB8IG51bGwgPSBudWxsOw0KbGV0IGxhc3RSdW5Ub3RhbCA9IDA7DQpsZXQgbGFzdFJ1bk5ldyA9IDA7DQpsZXQgbmV4dFJ1bkF0OiBEYXRlIHwgbnVsbCA9IG51bGw7DQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nU3RhcnQoKTogUHJvbWlzZTxudW1iZXI+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnk8UmVzdWx0U2V0SGVhZGVyPigNCiAgICAgICJJTlNFUlQgSU5UTyBzY3JhcGluZ19sb2cgKHN0YXJ0ZWRfYXQsIHN0YXR1cykgVkFMVUVTIChOT1coKSwgJ3J1bm5pbmcnKSINCiAgICApOw0KICAgIHJldHVybiByZXN1bHQuaW5zZXJ0SWQ7DQogIH0gY2F0Y2ggKF9lKSB7IHJldHVybiAwOyB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nRW5kKA0KICBsb2dJZDogbnVtYmVyLA0KICB0b3RhbDogbnVtYmVyLA0KICBuZXdTYXZlZDogbnVtYmVyLA0KICBlcnJvcnM6IHN0cmluZywNCiAgc3RhdHVzOiAic3VjY2VzcyIgfCAiZXJyb3IiDQopOiBQcm9taXNlPHZvaWQ+IHsNCiAgdHJ5IHsNCiAgICBhd2FpdCBwb29sLnF1ZXJ5KA0KICAgICAgYFVQREFURSBzY3JhcGluZ19sb2cgU0VUIGZpbmlzaGVkX2F0ID0gTk9XKCksIHRvdGFsX2ZvdW5kID0gPywgbmV3X3NhdmVkID0gPywgZXJyb3JzID0gPywgc3RhdHVzID0gPyBXSEVSRSBpZCA9ID9gLA0KICAgICAgW3RvdGFsLCBuZXdTYXZlZCwgZXJyb3JzIHx8IG51bGwsIHN0YXR1cywgbG9nSWRdDQogICAgKTsNCiAgfSBjYXRjaCAoX2UpIHsgLyogbm9uLWNyaXRpY2FsICovIH0NCn0NCg0KZXhwb3J0IGNvbnN0IHN0YXJ0U2NoZWR1bGVyID0gKCk6IHZvaWQgPT4gew0KICBjb25zdCBpbnRlcnZhbE1pbnV0ZXMgPSBwYXJzZUludChwcm9jZXNzLmVudi5TQ1JBUElOR19JTlRFUlZBTF9NSU5VVEVTIHx8ICI2MCIpOw0KICBjb25zdCBob3VycyA9IGludGVydmFsTWludXRlcyA+PSA2MCA/IE1hdGguZmxvb3IoaW50ZXJ2YWxNaW51dGVzIC8gNjApIDogMTsNCiAgY29uc3QgY3JvbkV4cHJlc3Npb24gPSBgMCAqLyR7aG91cnN9ICogKiAqYDsNCg0KICBjb25zb2xlLmxvZyhgU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBjYWRhICR7aW50ZXJ2YWxNaW51dGVzfSBtaW51dG9zIChjcm9uOiAke2Nyb25FeHByZXNzaW9ufSlgKTsNCg0KICAvLyBDYWxjdWxhciBwcsOzeGltYSBlamVjdWNpw7NuDQogIGNvbnN0IGNhbGNOZXh0UnVuID0gKCkgPT4gew0KICAgIGNvbnN0IG5leHQgPSBuZXcgRGF0ZSgpOw0KICAgIG5leHQuc2V0TWludXRlcygwLCAwLCAwKTsNCiAgICBuZXh0LnNldEhvdXJzKG5leHQuZ2V0SG91cnMoKSArIGhvdXJzKTsNCiAgICBuZXh0UnVuQXQgPSBuZXh0Ow0KICB9Ow0KICBjYWxjTmV4dFJ1bigpOw0KDQogIGNyb24uc2NoZWR1bGUoY3JvbkV4cHJlc3Npb24sIGFzeW5jICgpID0+IHsNCiAgICBpZiAoaXNSdW5uaW5nKSB7DQogICAgICBjb25zb2xlLmxvZygiU2NyYXBpbmcgeWEgZW4gZWplY3VjacOzbiwgc2FsdGFuZG8uLi4iKTsNCiAgICAgIHJldHVybjsNCiAgICB9DQogICAgaXNSdW5uaW5nID0gdHJ1ZTsNCiAgICBjb25zdCBsb2dJZCA9IGF3YWl0IGxvZ1NjcmFwaW5nU3RhcnQoKTsNCiAgICBsZXQgZXJyb3JNc2cgPSAiIjsNCiAgICB0cnkgew0KICAgICAgY29uc3QgcHJvcGVydHlTZXJ2aWNlID0gbmV3IFByb3BlcnR5U2VydmljZSgpOw0KICAgICAgY29uc3QgZW1haWxTZXJ2aWNlID0gbmV3IEVtYWlsU2VydmljZSgpOw0KICAgICAgY29uc29sZS5sb2coIkluaWNpYW5kbyBzY3JhcGluZyBwcm9ncmFtYWRvLi4uIik7DQogICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9wZXJ0eVNlcnZpY2Uuc2NyYXBlQWxsKCdyZW50Jyk7DQogICAgICBsYXN0UnVuVG90YWwgPSByZXN1bHQudG90YWw7DQogICAgICBsYXN0UnVuTmV3ID0gcmVzdWx0Lm5ld19jb3VudCB8fCAwOw0KICAgICAgY29uc29sZS5sb2coYFNjcmFwaW5nIHByb2dyYW1hZG8gY29tcGxldGFkbzogJHtyZXN1bHQudG90YWx9IHByb3BpZWRhZGVzLCAke2xhc3RSdW5OZXd9IG51ZXZhcy9hY3R1YWxpemFkYXNgKTsNCiAgICAgIGF3YWl0IGVtYWlsU2VydmljZS5zZW5kRmlsdGVyZWRBbGVydHMoKTsNCiAgICAgIGxhc3RSdW5TdGF0dXMgPSAic3VjY2VzcyI7DQogICAgICBhd2FpdCBsb2dTY3JhcGluZ0VuZChsb2dJZCwgbGFzdFJ1blRvdGFsLCBsYXN0UnVuTmV3LCAiIiwgInN1Y2Nlc3MiKTsNCiAgICB9IGNhdGNoIChlcnI6IGFueSkgew0KICAgICAgZXJyb3JNc2cgPSBlcnI/Lm1lc3NhZ2UgfHwgU3RyaW5nKGVycik7DQogICAgICBjb25zb2xlLmVycm9yKCJFcnJvciBlbiBzY3JhcGluZyBwcm9ncmFtYWRvOiIsIGVycm9yTXNnKTsNCiAgICAgIGxhc3RSdW5TdGF0dXMgPSAiZXJyb3IiOw0KICAgICAgYXdhaXQgbG9nU2NyYXBpbmdFbmQobG9nSWQsIGxhc3RSdW5Ub3RhbCwgbGFzdFJ1bk5ldywgZXJyb3JNc2csICJlcnJvciIpOw0KICAgIH0gZmluYWxseSB7DQogICAgICBpc1J1bm5pbmcgPSBmYWxzZTsNCiAgICAgIGxhc3RSdW5BdCA9IG5ldyBEYXRlKCk7DQogICAgICBjYWxjTmV4dFJ1bigpOw0KICAgIH0NCiAgfSk7DQoNCiAgLy8gUHVyZ2EgZGlhcmlhIGEgbGFzIDM6MDAg4oCUIGVsaW1pbmEgZGVsIGFyY2hpdm8gbG9zIGFudW5jaW9zIGNvbiBtw6FzIGRlIDMwIGTDrWFzDQogIGNyb24uc2NoZWR1bGUoIjAgMyAqICogKiIsIGFzeW5jICgpID0+IHsNCiAgICB0cnkgew0KICAgICAgY29uc3QgUE0gPSBhd2FpdCBpbXBvcnQoIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIik7DQogICAgICBjb25zdCBQcm9wZXJ0eU1vZGVsID0gUE0uUHJvcGVydHlNb2RlbDsNCiAgICAgIGNvbnN0IG4gPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLnB1cmdlT2xkRGVsZXRlZCgpOw0KICAgICAgaWYgKG4gPiAwKSB7DQogICAgICAgIGNvbnNvbGUubG9nKGBbUHVyZ2VdICR7bn0gcHJvcGllZGFkZXMgZWxpbWluYWRhcyBkZWZpbml0aXZhbWVudGUgZGVsIGFyY2hpdm8gKD4zMCBkw61hcylgKTsNCiAgICAgIH0NCiAgICB9IGNhdGNoIChlOiBhbnkpIHsNCiAgICAgIGNvbnNvbGUuZXJyb3IoIltQdXJnZV0gRXJyb3IgZW4gcHVyZ2EgZGlhcmlhOiIsIGU/Lm1lc3NhZ2UgfHwgU3RyaW5nKGUpKTsNCiAgICB9DQogIH0pOw0KfTsNCg0KZXhwb3J0IGNvbnN0IGdldFNjaGVkdWxlclN0YXR1cyA9ICgpOiB7DQogIHJ1bm5pbmc6IGJvb2xlYW47DQogIGxhc3RSdW5BdDogc3RyaW5nIHwgbnVsbDsNCiAgbGFzdFJ1blN0YXR1czogc3RyaW5nIHwgbnVsbDsNCiAgbGFzdFJ1blRvdGFsOiBudW1iZXI7DQogIGxhc3RSdW5OZXc6IG51bWJlcjsNCiAgbmV4dFJ1bkF0OiBzdHJpbmcgfCBudWxsOw0KfSA9PiAoew0KICBydW5uaW5nOiBpc1J1bm5pbmcsDQogIGxhc3RSdW5BdDogbGFzdFJ1bkF0ID8gbGFzdFJ1bkF0LnRvSVNPU3RyaW5nKCkgOiBudWxsLA0KICBsYXN0UnVuU3RhdHVzLA0KICBsYXN0UnVuVG90YWwsDQogIGxhc3RSdW5OZXcsDQogIG5leHRSdW5BdDogbmV4dFJ1bkF0ID8gbmV4dFJ1bkF0LnRvSVNPU3RyaW5nKCkgOiBudWxsLA0KfSk7DQoNCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZWNlbnRTY3JhcGluZ0xvZ3MobGltaXQgPSAxMCk6IFByb21pc2U8Um93RGF0YVBhY2tldFtdPiB7DQogIHRyeSB7DQogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KA0KICAgICAgIlNFTEVDVCAqIEZST00gc2NyYXBpbmdfbG9nIE9SREVSIEJZIHN0YXJ0ZWRfYXQgREVTQyBMSU1JVCA/IiwNCiAgICAgIFtsaW1pdF0NCiAgICApOw0KICAgIHJldHVybiByb3dzOw0KICB9IGNhdGNoIChfZSkgeyByZXR1cm4gW107IH0NCn0NCg0K","afterExisted":true,"afterHash":"0a7477efb809441dd871aa443dec73396f1e1b20ce34334df4e0a44e0e8a2178","afterContent":"aW1wb3J0IGNyb24gZnJvbSAibm9kZS1jcm9uIjsNCmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gIi4vcHJvcGVydHlTZXJ2aWNlIjsNCmltcG9ydCB7IEVtYWlsU2VydmljZSB9IGZyb20gIi4vZW1haWxTZXJ2aWNlIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7DQppbXBvcnQgeyBSZXN1bHRTZXRIZWFkZXIsIFJvd0RhdGFQYWNrZXQgfSBmcm9tICJteXNxbDIiOw0KDQpsZXQgaXNSdW5uaW5nID0gZmFsc2U7DQpsZXQgbGFzdFJ1bkF0OiBEYXRlIHwgbnVsbCA9IG51bGw7DQpsZXQgbGFzdFJ1blN0YXR1czogInN1Y2Nlc3MiIHwgImVycm9yIiB8IG51bGwgPSBudWxsOw0KbGV0IGxhc3RSdW5Ub3RhbCA9IDA7DQpsZXQgbGFzdFJ1bk5ldyA9IDA7DQpsZXQgbmV4dFJ1bkF0OiBEYXRlIHwgbnVsbCA9IG51bGw7CgpmdW5jdGlvbiBnZXRTY2hlZHVsZWRPcGVyYXRpb25zKCk6IEFycmF5PCJzYWxlIiB8ICJyZW50Ij4gewogIGNvbnN0IGNvbmZpZ3VyZWQgPSAocHJvY2Vzcy5lbnYuU0NSQVBJTkdfT1BFUkFUSU9OUyB8fCAicmVudCxzYWxlIikKICAgIC5zcGxpdCgiLCIpCiAgICAubWFwKHZhbHVlID0+IHZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKQogICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyAic2FsZSIgfCAicmVudCIgPT4gdmFsdWUgPT09ICJzYWxlIiB8fCB2YWx1ZSA9PT0gInJlbnQiKTsKICByZXR1cm4gY29uZmlndXJlZC5sZW5ndGggPiAwID8gWy4uLm5ldyBTZXQoY29uZmlndXJlZCldIDogWyJyZW50IiwgInNhbGUiXTsKfQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nU3RhcnQoKTogUHJvbWlzZTxudW1iZXI+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnk8UmVzdWx0U2V0SGVhZGVyPigNCiAgICAgICJJTlNFUlQgSU5UTyBzY3JhcGluZ19sb2cgKHN0YXJ0ZWRfYXQsIHN0YXR1cykgVkFMVUVTIChOT1coKSwgJ3J1bm5pbmcnKSINCiAgICApOw0KICAgIHJldHVybiByZXN1bHQuaW5zZXJ0SWQ7DQogIH0gY2F0Y2ggKF9lKSB7IHJldHVybiAwOyB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nRW5kKA0KICBsb2dJZDogbnVtYmVyLA0KICB0b3RhbDogbnVtYmVyLA0KICBuZXdTYXZlZDogbnVtYmVyLA0KICBlcnJvcnM6IHN0cmluZywNCiAgc3RhdHVzOiAic3VjY2VzcyIgfCAiZXJyb3IiDQopOiBQcm9taXNlPHZvaWQ+IHsNCiAgdHJ5IHsNCiAgICBhd2FpdCBwb29sLnF1ZXJ5KA0KICAgICAgYFVQREFURSBzY3JhcGluZ19sb2cgU0VUIGZpbmlzaGVkX2F0ID0gTk9XKCksIHRvdGFsX2ZvdW5kID0gPywgbmV3X3NhdmVkID0gPywgZXJyb3JzID0gPywgc3RhdHVzID0gPyBXSEVSRSBpZCA9ID9gLA0KICAgICAgW3RvdGFsLCBuZXdTYXZlZCwgZXJyb3JzIHx8IG51bGwsIHN0YXR1cywgbG9nSWRdDQogICAgKTsNCiAgfSBjYXRjaCAoX2UpIHsgLyogbm9uLWNyaXRpY2FsICovIH0NCn0NCg0KZXhwb3J0IGNvbnN0IHN0YXJ0U2NoZWR1bGVyID0gKCk6IHZvaWQgPT4gew0KICBjb25zdCBpbnRlcnZhbE1pbnV0ZXMgPSBwYXJzZUludChwcm9jZXNzLmVudi5TQ1JBUElOR19JTlRFUlZBTF9NSU5VVEVTIHx8ICI2MCIpOw0KICBjb25zdCBob3VycyA9IGludGVydmFsTWludXRlcyA+PSA2MCA/IE1hdGguZmxvb3IoaW50ZXJ2YWxNaW51dGVzIC8gNjApIDogMTsNCiAgY29uc3QgY3JvbkV4cHJlc3Npb24gPSBgMCAqLyR7aG91cnN9ICogKiAqYDsNCg0KICBjb25zb2xlLmxvZyhgU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBjYWRhICR7aW50ZXJ2YWxNaW51dGVzfSBtaW51dG9zIChjcm9uOiAke2Nyb25FeHByZXNzaW9ufSlgKTsNCg0KICAvLyBDYWxjdWxhciBwcsOzeGltYSBlamVjdWNpw7NuDQogIGNvbnN0IGNhbGNOZXh0UnVuID0gKCkgPT4gew0KICAgIGNvbnN0IG5leHQgPSBuZXcgRGF0ZSgpOw0KICAgIG5leHQuc2V0TWludXRlcygwLCAwLCAwKTsNCiAgICBuZXh0LnNldEhvdXJzKG5leHQuZ2V0SG91cnMoKSArIGhvdXJzKTsNCiAgICBuZXh0UnVuQXQgPSBuZXh0Ow0KICB9Ow0KICBjYWxjTmV4dFJ1bigpOw0KDQogIGNyb24uc2NoZWR1bGUoY3JvbkV4cHJlc3Npb24sIGFzeW5jICgpID0+IHsNCiAgICBpZiAoaXNSdW5uaW5nKSB7DQogICAgICBjb25zb2xlLmxvZygiU2NyYXBpbmcgeWEgZW4gZWplY3VjacOzbiwgc2FsdGFuZG8uLi4iKTsNCiAgICAgIHJldHVybjsNCiAgICB9DQogICAgaXNSdW5uaW5nID0gdHJ1ZTsNCiAgICBjb25zdCBsb2dJZCA9IGF3YWl0IGxvZ1NjcmFwaW5nU3RhcnQoKTsNCiAgICBsZXQgZXJyb3JNc2cgPSAiIjsNCiAgICB0cnkgew0KICAgICAgY29uc3QgcHJvcGVydHlTZXJ2aWNlID0gbmV3IFByb3BlcnR5U2VydmljZSgpOwogICAgICBjb25zdCBlbWFpbFNlcnZpY2UgPSBuZXcgRW1haWxTZXJ2aWNlKCk7CiAgICAgIGNvbnN0IG9wZXJhdGlvbnMgPSBnZXRTY2hlZHVsZWRPcGVyYXRpb25zKCk7CiAgICAgIGxhc3RSdW5Ub3RhbCA9IDA7CiAgICAgIGxhc3RSdW5OZXcgPSAwOwogICAgICBjb25zb2xlLmxvZyhgSW5pY2lhbmRvIHNjcmFwaW5nIHByb2dyYW1hZG86ICR7b3BlcmF0aW9ucy5qb2luKCIsICIpfS4uLmApOwogICAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBvcGVyYXRpb25zKSB7CiAgICAgICAgY29uc29sZS5sb2coYEluaWNpYW5kbyBjaWNsbyBwcm9ncmFtYWRvICR7b3BlcmF0aW9ufS4uLmApOwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb3BlcnR5U2VydmljZS5zY3JhcGVBbGwob3BlcmF0aW9uKTsKICAgICAgICBsYXN0UnVuVG90YWwgKz0gcmVzdWx0LnRvdGFsOwogICAgICAgIGxhc3RSdW5OZXcgKz0gcmVzdWx0Lm5ld19jb3VudCB8fCAwOwogICAgICAgIGNvbnNvbGUubG9nKGBDaWNsbyAke29wZXJhdGlvbn0gY29tcGxldGFkbzogJHtyZXN1bHQudG90YWx9IHByb3BpZWRhZGVzLCAke3Jlc3VsdC5uZXdfY291bnQgfHwgMH0gbnVldmFzL2FjdHVhbGl6YWRhc2ApOwogICAgICB9CiAgICAgIGNvbnNvbGUubG9nKGBTY3JhcGluZyBwcm9ncmFtYWRvIGNvbXBsZXRhZG86ICR7bGFzdFJ1blRvdGFsfSBwcm9waWVkYWRlcywgJHtsYXN0UnVuTmV3fSBudWV2YXMvYWN0dWFsaXphZGFzYCk7CiAgICAgIGF3YWl0IGVtYWlsU2VydmljZS5zZW5kRmlsdGVyZWRBbGVydHMoKTsNCiAgICAgIGxhc3RSdW5TdGF0dXMgPSAic3VjY2VzcyI7DQogICAgICBhd2FpdCBsb2dTY3JhcGluZ0VuZChsb2dJZCwgbGFzdFJ1blRvdGFsLCBsYXN0UnVuTmV3LCAiIiwgInN1Y2Nlc3MiKTsNCiAgICB9IGNhdGNoIChlcnI6IGFueSkgew0KICAgICAgZXJyb3JNc2cgPSBlcnI/Lm1lc3NhZ2UgfHwgU3RyaW5nKGVycik7DQogICAgICBjb25zb2xlLmVycm9yKCJFcnJvciBlbiBzY3JhcGluZyBwcm9ncmFtYWRvOiIsIGVycm9yTXNnKTsNCiAgICAgIGxhc3RSdW5TdGF0dXMgPSAiZXJyb3IiOw0KICAgICAgYXdhaXQgbG9nU2NyYXBpbmdFbmQobG9nSWQsIGxhc3RSdW5Ub3RhbCwgbGFzdFJ1bk5ldywgZXJyb3JNc2csICJlcnJvciIpOw0KICAgIH0gZmluYWxseSB7DQogICAgICBpc1J1bm5pbmcgPSBmYWxzZTsNCiAgICAgIGxhc3RSdW5BdCA9IG5ldyBEYXRlKCk7DQogICAgICBjYWxjTmV4dFJ1bigpOw0KICAgIH0NCiAgfSk7DQoNCiAgLy8gUHVyZ2EgZGlhcmlhIGEgbGFzIDM6MDAg4oCUIGVsaW1pbmEgZGVsIGFyY2hpdm8gbG9zIGFudW5jaW9zIGNvbiBtw6FzIGRlIDMwIGTDrWFzDQogIGNyb24uc2NoZWR1bGUoIjAgMyAqICogKiIsIGFzeW5jICgpID0+IHsNCiAgICB0cnkgew0KICAgICAgY29uc3QgUE0gPSBhd2FpdCBpbXBvcnQoIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIik7DQogICAgICBjb25zdCBQcm9wZXJ0eU1vZGVsID0gUE0uUHJvcGVydHlNb2RlbDsNCiAgICAgIGNvbnN0IG4gPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLnB1cmdlT2xkRGVsZXRlZCgpOw0KICAgICAgaWYgKG4gPiAwKSB7DQogICAgICAgIGNvbnNvbGUubG9nKGBbUHVyZ2VdICR7bn0gcHJvcGllZGFkZXMgZWxpbWluYWRhcyBkZWZpbml0aXZhbWVudGUgZGVsIGFyY2hpdm8gKD4zMCBkw61hcylgKTsNCiAgICAgIH0NCiAgICB9IGNhdGNoIChlOiBhbnkpIHsNCiAgICAgIGNvbnNvbGUuZXJyb3IoIltQdXJnZV0gRXJyb3IgZW4gcHVyZ2EgZGlhcmlhOiIsIGU/Lm1lc3NhZ2UgfHwgU3RyaW5nKGUpKTsNCiAgICB9DQogIH0pOw0KfTsNCg0KZXhwb3J0IGNvbnN0IGdldFNjaGVkdWxlclN0YXR1cyA9ICgpOiB7DQogIHJ1bm5pbmc6IGJvb2xlYW47DQogIGxhc3RSdW5BdDogc3RyaW5nIHwgbnVsbDsNCiAgbGFzdFJ1blN0YXR1czogc3RyaW5nIHwgbnVsbDsNCiAgbGFzdFJ1blRvdGFsOiBudW1iZXI7DQogIGxhc3RSdW5OZXc6IG51bWJlcjsNCiAgbmV4dFJ1bkF0OiBzdHJpbmcgfCBudWxsOw0KfSA9PiAoew0KICBydW5uaW5nOiBpc1J1bm5pbmcsDQogIGxhc3RSdW5BdDogbGFzdFJ1bkF0ID8gbGFzdFJ1bkF0LnRvSVNPU3RyaW5nKCkgOiBudWxsLA0KICBsYXN0UnVuU3RhdHVzLA0KICBsYXN0UnVuVG90YWwsDQogIGxhc3RSdW5OZXcsDQogIG5leHRSdW5BdDogbmV4dFJ1bkF0ID8gbmV4dFJ1bkF0LnRvSVNPU3RyaW5nKCkgOiBudWxsLA0KfSk7DQoNCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZWNlbnRTY3JhcGluZ0xvZ3MobGltaXQgPSAxMCk6IFByb21pc2U8Um93RGF0YVBhY2tldFtdPiB7DQogIHRyeSB7DQogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KA0KICAgICAgIlNFTEVDVCAqIEZST00gc2NyYXBpbmdfbG9nIE9SREVSIEJZIHN0YXJ0ZWRfYXQgREVTQyBMSU1JVCA/IiwNCiAgICAgIFtsaW1pdF0NCiAgICApOw0KICAgIHJldHVybiByb3dzOw0KICB9IGNhdGNoIChfZSkgeyByZXR1cm4gW107IH0NCn0NCg0K","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\capabilities.ts","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"bf34c3c42a7e302469fdb83371ab772e05ef31661cb6e0b502fbcaae4006a386","afterContent":"ZXhwb3J0IHR5cGUgU2NyYXBlck9wZXJhdGlvbiA9ICJzYWxlIiB8ICJyZW50IjsKCi8qKgogKiBTY3JhcGVycyBxdWUgY29uc3RydXllbiB1bmEgYsO6c3F1ZWRhIGVzcGVjw61maWNhIGRlIGFscXVpbGVyIHkgZXRpcXVldGFuCiAqIGV4cGzDrWNpdGFtZW50ZSBzdXMgcmVzdWx0YWRvcyBjb21vIGByZW50YC4KICoKICogRWwgcmVzdG8gc8OzbG8gaW1wbGVtZW50YSBVUkxzIGRlIHZlbnRhLiBMYSBsaXN0YSBleHBsw61jaXRhIGV2aXRhIGVqZWN1dGFyCiAqIHVuIHNjcmFwZXIgZGUgdmVudGEgeSBwcmVzZW50YXIgc3UgcmVzdWx0YWRvIGR1cmFudGUgdW4gY2ljbG8gZGUgYWxxdWlsZXIuCiAqLwpjb25zdCBSRU5UX0NBUEFCTEVfU0NSQVBFUlMgPSBuZXcgU2V0PHN0cmluZz4oWwogICJJZGVhbGlzdGFTY3JhcGVyIiwgLy8gYWxpYXMgbGVnYWN5IHJlc3VlbHRvIGEgUGxheXdyaWdodAogICJJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciIsCiAgIkZvdG9jYXNhU2NyYXBlciIsIC8vIGFsaWFzIGxlZ2FjeSByZXN1ZWx0byBhIFBsYXl3cmlnaHQKICAiRm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlciIsCiAgIkdsb2JhbGl6YVNjcmFwZXIiLAogICJIYWJpdGFjbGlhU2NyYXBlciIsCiAgIk1pbGFudW5jaW9zU2NyYXBlciIsCiAgIlBpc29zU2NyYXBlciIsCiAgIlRlY25vY2FzYVNjcmFwZXIiLAogICJUaGlua1NwYWluU2NyYXBlciIsCiAgIllhZW5jb250cmVTY3JhcGVyIiwKXSk7CgpleHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNTY3JhcGVyT3BlcmF0aW9uKAogIHNjcmFwZXJDbGFzczogc3RyaW5nLAogIG9wZXJhdGlvbjogU2NyYXBlck9wZXJhdGlvbgopOiBib29sZWFuIHsKICByZXR1cm4gb3BlcmF0aW9uID09PSAic2FsZSIgfHwgUkVOVF9DQVBBQkxFX1NDUkFQRVJTLmhhcyhzY3JhcGVyQ2xhc3MpOwp9CgpleHBvcnQgZnVuY3Rpb24gc3VwcG9ydGVkU2NyYXBlck9wZXJhdGlvbnMoc2NyYXBlckNsYXNzOiBzdHJpbmcpOiBTY3JhcGVyT3BlcmF0aW9uW10gewogIHJldHVybiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oc2NyYXBlckNsYXNzLCAicmVudCIpCiAgICA/IFsic2FsZSIsICJyZW50Il0KICAgIDogWyJzYWxlIl07Cn0K","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"},{"relativePath":"lliria-properties-scraper\\test-rental-routing.js","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"b84e374ed0feb69df597e9a25b84dae5335dedac137007673cf9257759db041f","afterContent":"Y29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgibm9kZTphc3NlcnQvc3RyaWN0Iik7CmNvbnN0IHBsYXl3cmlnaHQgPSByZXF1aXJlKCJwbGF5d3JpZ2h0Iik7CmNvbnN0IHsKICBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLAogIElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyLAogIE1pbGFudW5jaW9zU2NyYXBlciwKICBQaXNvc1NjcmFwZXIsCiAgVGVjbm9jYXNhU2NyYXBlciwKICBZYWVuY29udHJlU2NyYXBlciwKfSA9IHJlcXVpcmUoIi4vZGlzdC9zY3JhcGVycyIpOwoKY29uc3QgdmFsZW5jaWEgPSB7IG5hbWU6ICJWYWxlbmNpYSIsIHNsdWc6ICJ2YWxlbmNpYSIgfTsKY29uc3QgZGlzdHJpY3QgPSB7IHNsdWc6ICJjaXV0YXQtdmVsbGEiLCB6b25lTGFiZWw6ICJDaXV0YXQgVmVsbGEsIFZhbGVuY2lhIiB9OwoKYXN5bmMgZnVuY3Rpb24gY2FwdHVyZUZpcnN0VXJsKFNjcmFwZXIsIG1ldGhvZCwgc2V0dXAsIHVybEFyZ0luZGV4ID0gMCkgewogIGNvbnN0IHNjcmFwZXIgPSBuZXcgU2NyYXBlcigpLnNldE9wZXJhdGlvblR5cGUoInJlbnQiKTsKICBzY3JhcGVyLmdldEFjdGl2ZVpvbmVzID0gYXN5bmMgKCkgPT4gW3ZhbGVuY2lhXTsKICBjb25zdCB1cmxzID0gW107CiAgc2NyYXBlclttZXRob2RdID0gYXN5bmMgKC4uLmFyZ3MpID0+IHsgdXJscy5wdXNoKGFyZ3NbdXJsQXJnSW5kZXhdKTsgcmV0dXJuIG1ldGhvZCA9PT0gInNjcmFwZVpvbmUiID8gW10gOiAiIjsgfTsKICBpZiAoc2V0dXApIHNldHVwKHNjcmFwZXIpOwogIGF3YWl0IHNjcmFwZXIuc2NyYXBlKCk7CiAgYXNzZXJ0Lm9rKHVybHNbMF0sIGAke1NjcmFwZXIubmFtZX0gbm8gZ2VuZXLDsyBuaW5ndW5hIFVSTGApOwogIHJldHVybiB1cmxzWzBdOwp9Cgphc3luYyBmdW5jdGlvbiBtYWluKCkgewogIGNvbnN0IG9yaWdpbmFsTGF1bmNoTWlsYW4gPSBwbGF5d3JpZ2h0LmNocm9taXVtLmxhdW5jaDsKICBwbGF5d3JpZ2h0LmNocm9taXVtLmxhdW5jaCA9IGFzeW5jICgpID0+ICh7IGNsb3NlOiBhc3luYyAoKSA9PiB7fSB9KTsKICB0cnkgewogICAgY29uc3QgaWRlYWxpc3RhID0gYXdhaXQgY2FwdHVyZUZpcnN0VXJsKAogICAgICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwKICAgICAgInNjcmFwZVpvbmUiLAogICAgICBzY3JhcGVyID0+IHsgc2NyYXBlci5nZXRWYWxlbmNpYURpc3RyaWN0VGFyZ2V0cyA9IGFzeW5jICgpID0+IFtkaXN0cmljdF07IH0sCiAgICAgIDEKICAgICk7CiAgICBhc3NlcnQuZXF1YWwoaWRlYWxpc3RhLCAiaHR0cHM6Ly93d3cuaWRlYWxpc3RhLmNvbS9hbHF1aWxlci12aXZpZW5kYXMvdmFsZW5jaWEvY2l1dGF0LXZlbGxhLyIpOwogIH0gZmluYWxseSB7CiAgICBwbGF5d3JpZ2h0LmNocm9taXVtLmxhdW5jaCA9IG9yaWdpbmFsTGF1bmNoTWlsYW47CiAgfQoKICBjb25zdCBmb3RvY2FzYSA9IGF3YWl0IGNhcHR1cmVGaXJzdFVybCgKICAgIEZvdG9jYXNhUGxheXdyaWdodFNjcmFwZXIsCiAgICAiZmV0Y2hGb3RvY2FzYVBhZ2UiLAogICAgc2NyYXBlciA9PiB7IHNjcmFwZXIuZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMgPSBhc3luYyAoKSA9PiBbZGlzdHJpY3RdOyB9CiAgKTsKICBhc3NlcnQuZXF1YWwoZm90b2Nhc2EsICJodHRwczovL3d3dy5mb3RvY2FzYS5lcy9lcy9hbHF1aWxlci92aXZpZW5kYXMvdmFsZW5jaWEtY2FwaXRhbC9jaXV0YXQtdmVsbGEvbCIpOwoKICBjb25zdCBwaXNvcyA9IGF3YWl0IGNhcHR1cmVGaXJzdFVybCgKICAgIFBpc29zU2NyYXBlciwKICAgICJmZXRjaEh0bWwiLAogICAgc2NyYXBlciA9PiB7CiAgICAgIHNjcmFwZXIuZ2V0VmFsZW5jaWFEaXN0cmljdFRhcmdldHMgPSBhc3luYyAoKSA9PiBbCiAgICAgICAgeyBzbHVnOiAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9jaXV0YXRfdmVsbGEiLCB6b25lTmFtZTogIkNpdXRhdCBWZWxsYSwgVmFsZW5jaWEiIH0sCiAgICAgIF07CiAgICB9CiAgKTsKICBhc3NlcnQuZXF1YWwocGlzb3MsICJodHRwczovL3d3dy5waXNvcy5jb20vYWxxdWlsZXIvcGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9jaXV0YXRfdmVsbGEvIik7CgogIGNvbnN0IHlhZW5jb250cmUgPSBhd2FpdCBjYXB0dXJlRmlyc3RVcmwoWWFlbmNvbnRyZVNjcmFwZXIsICJmZXRjaEh0bWwiKTsKICBhc3NlcnQuZXF1YWwoeWFlbmNvbnRyZSwgImh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL3ZhbGVuY2lhIik7CgogIGNvbnN0IHRlY25vY2FzYSA9IGF3YWl0IGNhcHR1cmVGaXJzdFVybChUZWNub2Nhc2FTY3JhcGVyLCAiZmV0Y2hIdG1sUGxheXdyaWdodCIpOwogIGFzc2VydC5lcXVhbCh0ZWNub2Nhc2EsICJodHRwczovL3d3dy50ZWNub2Nhc2EuZXMvYWxxdWlsZXIvcGlzby9jb211bmlkYWQtdmFsZW5jaWFuYS92YWxlbmNpYS92YWxlbmNpYS5odG1sIik7CgogIGNvbnN0IG9yaWdpbmFsTGF1bmNoID0gcGxheXdyaWdodC5jaHJvbWl1bS5sYXVuY2g7CiAgcGxheXdyaWdodC5jaHJvbWl1bS5sYXVuY2ggPSBhc3luYyAoKSA9PiAoeyBjbG9zZTogYXN5bmMgKCkgPT4ge30gfSk7CiAgdHJ5IHsKICAgIGNvbnN0IG1pbGFudW5jaW9zID0gYXdhaXQgY2FwdHVyZUZpcnN0VXJsKE1pbGFudW5jaW9zU2NyYXBlciwgImxvYWRQYWdlIiwgdW5kZWZpbmVkLCAxKTsKICAgIGFzc2VydC5lcXVhbChtaWxhbnVuY2lvcywgImh0dHBzOi8vd3d3Lm1pbGFudW5jaW9zLmNvbS9hbHF1aWxlci1kZS1waXNvcy1lbi12YWxlbmNpYS12YWxlbmNpYS8iKTsKICB9IGZpbmFsbHkgewogICAgcGxheXdyaWdodC5jaHJvbWl1bS5sYXVuY2ggPSBvcmlnaW5hbExhdW5jaDsKICB9CgogIGNvbnNvbGUubG9nKCJPSzogcnV0YXMgZGUgYWxxdWlsZXIgeSBkaXN0cml0b3MgZGUgVmFsZW5jaWEgdmVyaWZpY2FkYXMiKTsKfQoKbWFpbigpLmNhdGNoKGVycm9yID0+IHsKICBjb25zb2xlLmVycm9yKGVycm9yKTsKICBwcm9jZXNzLmV4aXRDb2RlID0gMTsKfSk7Cg==","decision":"accepted","decidedAt":"2026-07-22T08:49:01.549Z"}]},{"id":"cp-1784727503509-1692d12c","turnId":"019f895d-f12f-7343-b3a9-96903e1b3326","createdAt":"2026-07-22T13:38:23.509Z","changedFiles":0,"files":[]},{"id":"cp-1784759915000-aac4b5e4","turnId":"019f8be4-4086-7d00-85c3-4d7dcc89b4ac","createdAt":"2026-07-22T22:38:35.000Z","changedFiles":8,"files":[{"relativePath":"lliria-properties-scraper\\src\\controllers\\scraperController.ts","beforeExisted":true,"beforeHash":"e999a6dd78cecd8bd3ee32f08930159a562c26933fbb611d08988b6ace70ef74","beforeContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvcHJvcGVydHlTZXJ2aWNlIjsKaW1wb3J0IHsgRW1haWxTZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvZW1haWxTZXJ2aWNlIjsKaW1wb3J0IHsgZ2V0U2NoZWR1bGVyU3RhdHVzIH0gZnJvbSAiLi4vc2VydmljZXMvc2NoZWR1bGVyU2VydmljZSI7CmltcG9ydCB7IFBvcnRhbE1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3BvcnRhbE1vZGVsIjsKaW1wb3J0IHsgc2NyYXBlckJ1cywgYnVzTG9nLCBTY3JhcGVyTG9nRXZlbnQsIFNjcmFwZXJQcm9ncmVzc0V2ZW50IH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKCmNvbnN0IHByb3BTZXJ2aWNlID0gbmV3IFByb3BlcnR5U2VydmljZSgpOwpjb25zdCBlbWFpbFNlcnZpY2UgPSBuZXcgRW1haWxTZXJ2aWNlKCk7CgpsZXQgc2NyYXBlSW5Qcm9ncmVzcyA9IGZhbHNlOwoKZXhwb3J0IGNvbnN0IHNjcmFwZXJDb250cm9sbGVyID0gewogIHBhcnNlT3BlcmF0aW9uKHJlcTogUmVxdWVzdCk6ICJzYWxlIiB8ICJyZW50IiB7CiAgICBjb25zdCBvcCA9IFN0cmluZyhyZXEucXVlcnkub3AgfHwgcmVxLnBhcmFtcy5vcGVyYXRpb24gfHwgInNhbGUiKS50b0xvd2VyQ2FzZSgpOwogICAgcmV0dXJuIG9wID09PSAicmVudCIgPyAicmVudCIgOiAic2FsZSI7CiAgfSwKICBzY3JhcGVOb3c6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIGlmIChzY3JhcGVJblByb2dyZXNzKSB7CiAgICAgIHJlcy5zdGF0dXMoNDA5KS5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICJTY3JhcGluZyB5YSBlbiBlamVjdWNpb24iIH0pOwogICAgICByZXR1cm47CiAgICB9CiAgICByZXMuc3RhdHVzKDIwMikuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICJTY3JhcGluZyBpbmljaWFkbyBlbiBzZWd1bmRvIHBsYW5vIiB9KTsKICAgIHNjcmFwZUluUHJvZ3Jlc3MgPSB0cnVlOwogICAgc2NyYXBlckJ1cy5jbGVhckxvZ3MoKTsKICAgIGJ1c0xvZygiaW5mbyIsICJJbmljaWFuZG8gc2NyYXBpbmcgY29tcGxldG8gZGUgdG9kb3MgbG9zIHBvcnRhbGVzIGFjdGl2b3MuLi4iKTsKICAgIGNvbnN0IG9wZXJhdGlvbiA9IHNjcmFwZXJDb250cm9sbGVyLnBhcnNlT3BlcmF0aW9uKHJlcSk7CiAgICBwcm9wU2VydmljZS5zY3JhcGVBbGwob3BlcmF0aW9uKQogICAgICAudGhlbihyZXN1bHQgPT4gYnVzTG9nKCJzdWNjZXNzIiwgYENvbXBsZXRhZG86ICR7cmVzdWx0Lm5ld19jb3VudH0gbnVldmFzIC8gJHtyZXN1bHQudG90YWx9IHRvdGFsYCkpCiAgICAgIC5jYXRjaChlcnIgPT4gYnVzTG9nKCJlcnJvciIsIGBFcnJvciBzY3JhcGluZzogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWApKQogICAgICAuZmluYWxseSgoKSA9PiB7IHNjcmFwZUluUHJvZ3Jlc3MgPSBmYWxzZTsgfSk7CiAgfSwKCiAgc3RhdHVzOiAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IHZvaWQgPT4gewogICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXI6IGdldFNjaGVkdWxlclN0YXR1cygpLCBtYW51YWxSdW5uaW5nOiBzY3JhcGVJblByb2dyZXNzIH0pOwogIH0sCgogIHNlbmRBbGVydHM6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIHRyeSB7CiAgICAgIGF3YWl0IGVtYWlsU2VydmljZS5zZW5kRmlsdGVyZWRBbGVydHMoKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBtZXNzYWdlOiAiQWxlcnRhcyBlbnZpYWRhcyIgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBlbnZpYXIgYWxlcnRhcyIgfSk7CiAgICB9CiAgfSwKCiAgc2NyYXBlQnlQb3J0YWw6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIGNvbnN0IHsgc2x1ZyB9ID0gcmVxLnBhcmFtczsKICAgIGNvbnN0IHBvcnRhbCA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRCeVNsdWcoc2x1Zyk7CiAgICBpZiAoIXBvcnRhbCkgewogICAgICByZXMuc3RhdHVzKDQwNCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogYFBvcnRhbCAnJHtzbHVnfScgbm8gZW5jb250cmFkb2AgfSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChzY3JhcGVJblByb2dyZXNzKSB7CiAgICAgIHJlcy5zdGF0dXMoNDA5KS5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICJTY3JhcGluZyB5YSBlbiBlamVjdWNpb24iIH0pOwogICAgICByZXR1cm47CiAgICB9CiAgICByZXMuc3RhdHVzKDIwMikuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6IGBFc2NhbmVvIGRlICR7cG9ydGFsLm5hbWV9IGluaWNpYWRvIGVuIHNlZ3VuZG8gcGxhbm9gIH0pOwogICAgc2NyYXBlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICBzY3JhcGVyQnVzLmNsZWFyTG9ncygpOwogICAgY29uc3Qgb3BlcmF0aW9uID0gc2NyYXBlckNvbnRyb2xsZXIucGFyc2VPcGVyYXRpb24ocmVxKTsKICAgIHByb3BTZXJ2aWNlLnNjcmFwZVBvcnRhbChwb3J0YWwuc2NyYXBlcl9jbGFzcywgb3BlcmF0aW9uKQogICAgICAudGhlbihyID0+IGJ1c0xvZygic3VjY2VzcyIsIGAke3BvcnRhbC5uYW1lfTogJHtyLm5ld19jb3VudH0gbnVldmFzIC8gJHtyLnRvdGFsfSB0b3RhbGApKQogICAgICAuY2F0Y2goZXJyID0+IGJ1c0xvZygiZXJyb3IiLCBgRXJyb3Igc2NyYXBpbmcgJHtwb3J0YWwubmFtZX06ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gKSkKICAgICAgLmZpbmFsbHkoKCkgPT4geyBzY3JhcGVJblByb2dyZXNzID0gZmFsc2U7IH0pOwogIH0sCgogIHNjcmFwZUJ5Wm9uZTogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgY29uc3QgeyBzbHVnIH0gPSByZXEucGFyYW1zOwogICAgaWYgKHNjcmFwZUluUHJvZ3Jlc3MpIHsKICAgICAgcmVzLnN0YXR1cyg0MDkpLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogIlNjcmFwaW5nIHlhIGVuIGVqZWN1Y2nDs24iIH0pOwogICAgICByZXR1cm47CiAgICB9CiAgICByZXMuc3RhdHVzKDIwMikuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6IGBFc2NhbmVvIGRlIHpvbmEgJyR7c2x1Z30nIGluaWNpYWRvIGVuIHNlZ3VuZG8gcGxhbm9gIH0pOwogICAgc2NyYXBlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICBzY3JhcGVyQnVzLmNsZWFyTG9ncygpOwogICAgY29uc3Qgb3BlcmF0aW9uID0gc2NyYXBlckNvbnRyb2xsZXIucGFyc2VPcGVyYXRpb24ocmVxKTsKICAgIHByb3BTZXJ2aWNlLnNjcmFwZUJ5Wm9uZShzbHVnLCBvcGVyYXRpb24pCiAgICAgIC50aGVuKHIgPT4gYnVzTG9nKCJzdWNjZXNzIiwgYFpvbmEgJHtzbHVnfTogJHtyLm5ld19jb3VudH0gbnVldmFzIC8gJHtyLnRvdGFsfSB0b3RhbGApKQogICAgICAuY2F0Y2goZXJyID0+IGJ1c0xvZygiZXJyb3IiLCBgRXJyb3Igc2NyYXBpbmcgem9uYSAke3NsdWd9OiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCkpCiAgICAgIC5maW5hbGx5KCgpID0+IHsgc2NyYXBlSW5Qcm9ncmVzcyA9IGZhbHNlOyB9KTsKICB9LAoKICByZUdlb2NvZGU6IGFzeW5jIChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICJSZS1nZW9jb2RpZmljYWNpw7NuIGluaWNpYWRhIGVuIHNlZ3VuZG8gcGxhbm8iIH0pOwogICAgICBidXNMb2coImluZm8iLCAiUmUtZ2VvY29kaWZpY2FjacOzbiBpbmljaWFkYS4uLiIpOwogICAgICBwcm9wU2VydmljZS5yZUdlb2NvZGVBbGwoKQogICAgICAgIC50aGVuKHIgPT4gYnVzTG9nKCJzdWNjZXNzIiwgYFJlLWdlb2NvZGlmaWNhY2nDs24gY29tcGxldGFkYTogJHtyLnVwZGF0ZWR9IGFjdHVhbGl6YWRhc2ApKQogICAgICAgIC5jYXRjaChlID0+IGJ1c0xvZygiZXJyb3IiLCBgRXJyb3IgcmUtZ2VvY29kaWZpY2FuZG86ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCkpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgaW5pY2lhciByZS1nZW9jb2RpZmljYWNpw7NuIiB9KTsKICAgIH0KICB9LAoKICAvKioKICAgKiBHRVQgL2FwaS9zY3JhcGVyL2xvZ3Mvc3RyZWFtCiAgICogU1NFOiBzdHJlYW0gZGUgbG9ncyBlbiB0aWVtcG8gcmVhbC4KICAgKi8KICBzdHJlYW1Mb2dzOiAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogdm9pZCA9PiB7CiAgICByZXMuc2V0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAidGV4dC9ldmVudC1zdHJlYW0iKTsKICAgIHJlcy5zZXRIZWFkZXIoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUiKTsKICAgIHJlcy5zZXRIZWFkZXIoIkNvbm5lY3Rpb24iLCAia2VlcC1hbGl2ZSIpOwogICAgcmVzLnNldEhlYWRlcigiWC1BY2NlbC1CdWZmZXJpbmciLCAibm8iKTsKICAgIHJlcy5mbHVzaEhlYWRlcnMoKTsKCiAgICBjb25zdCBzZW5kU3RhdHVzID0gKCkgPT4gewogICAgICByZXMud3JpdGUoYGV2ZW50OiBzdGF0dXNcbmRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAic3RhdHVzIiwgcnVubmluZzogc2NyYXBlSW5Qcm9ncmVzcyB9KX1cblxuYCk7CiAgICB9OwoKICAgIC8vIEVudmlhciBidWZmZXIgcmVjaWVudGUgYWwgY29uZWN0YXJzZQogICAgZm9yIChjb25zdCBsb2cgb2Ygc2NyYXBlckJ1cy5yZWNlbnQoMjAwKSkgewogICAgICByZXMud3JpdGUoYGV2ZW50OiBsb2dcbmRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAibG9nIiwgLi4ubG9nIH0pfVxuXG5gKTsKICAgIH0KICAgIHNlbmRTdGF0dXMoKTsKCiAgICBjb25zdCBvbkxvZyA9IChldjogU2NyYXBlckxvZ0V2ZW50KSA9PiB7CiAgICAgIHJlcy53cml0ZShgZXZlbnQ6IGxvZ1xuZGF0YTogJHtKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICJsb2ciLCAuLi5ldiB9KX1cblxuYCk7CiAgICB9OwogICAgY29uc3Qgb25Qcm9ncmVzcyA9IChldjogU2NyYXBlclByb2dyZXNzRXZlbnQpID0+IHsKICAgICAgcmVzLndyaXRlKGBldmVudDogcHJvZ3Jlc3NcbmRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAicHJvZ3Jlc3MiLCAuLi5ldiB9KX1cblxuYCk7CiAgICB9OwoKICAgIGNvbnN0IGhlYXJ0YmVhdCA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgcmVzLndyaXRlKGA6aGVhcnRiZWF0XG5cbmApOwogICAgICBzZW5kU3RhdHVzKCk7CiAgICB9LCAyMDAwMCk7CgogICAgc2NyYXBlckJ1cy5vbigibG9nIiwgb25Mb2cpOwogICAgc2NyYXBlckJ1cy5vbigicHJvZ3Jlc3MiLCBvblByb2dyZXNzKTsKCiAgICByZXEub24oImNsb3NlIiwgKCkgPT4gewogICAgICBzY3JhcGVyQnVzLm9mZigibG9nIiwgb25Mb2cpOwogICAgICBzY3JhcGVyQnVzLm9mZigicHJvZ3Jlc3MiLCBvblByb2dyZXNzKTsKICAgICAgY2xlYXJJbnRlcnZhbChoZWFydGJlYXQpOwogICAgfSk7CiAgfSwKCiAgLyoqIEdFVCAvYXBpL3NjcmFwZXIvbG9ncyDigJQgdmVyc2nDs24gSlNPTiBwb2xsaW5nICovCiAgZ2V0TG9nczogKF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiB2b2lkID0+IHsKICAgIHJlcy5qc29uKHsgcnVubmluZzogc2NyYXBlSW5Qcm9ncmVzcywgbG9nczogc2NyYXBlckJ1cy5yZWNlbnQoMjAwKSB9KTsKICB9LAp9OwoKZXhwb3J0IGRlZmF1bHQgc2NyYXBlckNvbnRyb2xsZXI7Cg==","afterExisted":true,"afterHash":"bbbe9e61cc50ac71cda4afa35cb5bf1bcca2185d87193a99d9ae6e12e416f7b6","afterContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvcHJvcGVydHlTZXJ2aWNlIjsKaW1wb3J0IHsgRW1haWxTZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvZW1haWxTZXJ2aWNlIjsKaW1wb3J0IHsgZ2V0U2NoZWR1bGVyU3RhdHVzIH0gZnJvbSAiLi4vc2VydmljZXMvc2NoZWR1bGVyU2VydmljZSI7CmltcG9ydCB7IFBvcnRhbE1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3BvcnRhbE1vZGVsIjsKaW1wb3J0IHsgc2NyYXBlckJ1cywgYnVzTG9nLCBTY3JhcGVyTG9nRXZlbnQsIFNjcmFwZXJQcm9ncmVzc0V2ZW50IH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKaW1wb3J0IHsgc2NyYXBlUnVuQ29vcmRpbmF0b3IgfSBmcm9tICIuLi9zZXJ2aWNlcy9zY3JhcGVSdW5Db29yZGluYXRvciI7Cgpjb25zdCBwcm9wU2VydmljZSA9IG5ldyBQcm9wZXJ0eVNlcnZpY2UoKTsKY29uc3QgZW1haWxTZXJ2aWNlID0gbmV3IEVtYWlsU2VydmljZSgpOwoKZnVuY3Rpb24gc2NyYXBlU3RhdHVzKCkgewogIGNvbnN0IHN0YXRlID0gc2NyYXBlUnVuQ29vcmRpbmF0b3Iuc3RhdHVzKCk7CiAgcmV0dXJuIHsKICAgIC4uLnN0YXRlLAogICAgbWFudWFsUnVubmluZzogc3RhdGUubW9kZSA9PT0gIm1hbnVhbCIsCiAgICBzY2hlZHVsZWRSdW5uaW5nOiBzdGF0ZS5tb2RlID09PSAic2NoZWR1bGVkIiwKICB9IGFzIGNvbnN0Owp9CgpleHBvcnQgY29uc3Qgc2NyYXBlckNvbnRyb2xsZXIgPSB7CiAgcGFyc2VPcGVyYXRpb24ocmVxOiBSZXF1ZXN0KTogInNhbGUiIHwgInJlbnQiIHsKICAgIGNvbnN0IG9wID0gU3RyaW5nKHJlcS5xdWVyeS5vcCB8fCByZXEucGFyYW1zLm9wZXJhdGlvbiB8fCAic2FsZSIpLnRvTG93ZXJDYXNlKCk7CiAgICByZXR1cm4gb3AgPT09ICJyZW50IiA/ICJyZW50IiA6ICJzYWxlIjsKICB9LAogIHNjcmFwZU5vdzogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgaWYgKCFzY3JhcGVSdW5Db29yZGluYXRvci50cnlTdGFydCgibWFudWFsIikpIHsKICAgICAgcmVzLnN0YXR1cyg0MDkpLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogIlNjcmFwaW5nIHlhIGVuIGVqZWN1Y2lvbiIgfSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHJlcy5zdGF0dXMoMjAyKS5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogIlNjcmFwaW5nIGluaWNpYWRvIGVuIHNlZ3VuZG8gcGxhbm8iIH0pOwogICAgc2NyYXBlckJ1cy5jbGVhckxvZ3MoKTsKICAgIGJ1c0xvZygiaW5mbyIsICJJbmljaWFuZG8gc2NyYXBpbmcgY29tcGxldG8gZGUgdG9kb3MgbG9zIHBvcnRhbGVzIGFjdGl2b3MuLi4iKTsKICAgIGNvbnN0IG9wZXJhdGlvbiA9IHNjcmFwZXJDb250cm9sbGVyLnBhcnNlT3BlcmF0aW9uKHJlcSk7CiAgICBwcm9wU2VydmljZS5zY3JhcGVBbGwob3BlcmF0aW9uKQogICAgICAudGhlbihyZXN1bHQgPT4gYnVzTG9nKCJzdWNjZXNzIiwgYENvbXBsZXRhZG86ICR7cmVzdWx0Lm5ld19jb3VudH0gbnVldmFzIC8gJHtyZXN1bHQudG90YWx9IHRvdGFsYCkpCiAgICAgIC5jYXRjaChlcnIgPT4gYnVzTG9nKCJlcnJvciIsIGBFcnJvciBzY3JhcGluZzogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWApKQogICAgICAuZmluYWxseSgoKSA9PiB7IHNjcmFwZVJ1bkNvb3JkaW5hdG9yLmZpbmlzaCgibWFudWFsIik7IH0pOwogIH0sCgogIHN0YXR1czogKF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiB2b2lkID0+IHsKICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGVyOiBnZXRTY2hlZHVsZXJTdGF0dXMoKSwgLi4uc2NyYXBlU3RhdHVzKCkgfSk7CiAgfSwKCiAgc2VuZEFsZXJ0czogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgYXdhaXQgZW1haWxTZXJ2aWNlLnNlbmRGaWx0ZXJlZEFsZXJ0cygpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICJBbGVydGFzIGVudmlhZGFzIiB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIGVudmlhciBhbGVydGFzIiB9KTsKICAgIH0KICB9LAoKICBzY3JhcGVCeVBvcnRhbDogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgY29uc3QgeyBzbHVnIH0gPSByZXEucGFyYW1zOwogICAgY29uc3QgcG9ydGFsID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEJ5U2x1ZyhzbHVnKTsKICAgIGlmICghcG9ydGFsKSB7CiAgICAgIHJlcy5zdGF0dXMoNDA0KS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiBgUG9ydGFsICcke3NsdWd9JyBubyBlbmNvbnRyYWRvYCB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCFzY3JhcGVSdW5Db29yZGluYXRvci50cnlTdGFydCgibWFudWFsIikpIHsKICAgICAgcmVzLnN0YXR1cyg0MDkpLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogIlNjcmFwaW5nIHlhIGVuIGVqZWN1Y2lvbiIgfSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHJlcy5zdGF0dXMoMjAyKS5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogYEVzY2FuZW8gZGUgJHtwb3J0YWwubmFtZX0gaW5pY2lhZG8gZW4gc2VndW5kbyBwbGFub2AgfSk7CiAgICBzY3JhcGVyQnVzLmNsZWFyTG9ncygpOwogICAgY29uc3Qgb3BlcmF0aW9uID0gc2NyYXBlckNvbnRyb2xsZXIucGFyc2VPcGVyYXRpb24ocmVxKTsKICAgIHByb3BTZXJ2aWNlLnNjcmFwZVBvcnRhbChwb3J0YWwuc2NyYXBlcl9jbGFzcywgb3BlcmF0aW9uKQogICAgICAudGhlbihyID0+IGJ1c0xvZygic3VjY2VzcyIsIGAke3BvcnRhbC5uYW1lfTogJHtyLm5ld19jb3VudH0gbnVldmFzIC8gJHtyLnRvdGFsfSB0b3RhbGApKQogICAgICAuY2F0Y2goZXJyID0+IGJ1c0xvZygiZXJyb3IiLCBgRXJyb3Igc2NyYXBpbmcgJHtwb3J0YWwubmFtZX06ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gKSkKICAgICAgLmZpbmFsbHkoKCkgPT4geyBzY3JhcGVSdW5Db29yZGluYXRvci5maW5pc2goIm1hbnVhbCIpOyB9KTsKICB9LAoKICBzY3JhcGVCeVpvbmU6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIGNvbnN0IHsgc2x1ZyB9ID0gcmVxLnBhcmFtczsKICAgIGlmICghc2NyYXBlUnVuQ29vcmRpbmF0b3IudHJ5U3RhcnQoIm1hbnVhbCIpKSB7CiAgICAgIHJlcy5zdGF0dXMoNDA5KS5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICJTY3JhcGluZyB5YSBlbiBlamVjdWNpw7NuIiB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgcmVzLnN0YXR1cygyMDIpLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBtZXNzYWdlOiBgRXNjYW5lbyBkZSB6b25hICcke3NsdWd9JyBpbmljaWFkbyBlbiBzZWd1bmRvIHBsYW5vYCB9KTsKICAgIHNjcmFwZXJCdXMuY2xlYXJMb2dzKCk7CiAgICBjb25zdCBvcGVyYXRpb24gPSBzY3JhcGVyQ29udHJvbGxlci5wYXJzZU9wZXJhdGlvbihyZXEpOwogICAgcHJvcFNlcnZpY2Uuc2NyYXBlQnlab25lKHNsdWcsIG9wZXJhdGlvbikKICAgICAgLnRoZW4ociA9PiBidXNMb2coInN1Y2Nlc3MiLCBgWm9uYSAke3NsdWd9OiAke3IubmV3X2NvdW50fSBudWV2YXMgLyAke3IudG90YWx9IHRvdGFsYCkpCiAgICAgIC5jYXRjaChlcnIgPT4gYnVzTG9nKCJlcnJvciIsIGBFcnJvciBzY3JhcGluZyB6b25hICR7c2x1Z306ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gKSkKICAgICAgLmZpbmFsbHkoKCkgPT4geyBzY3JhcGVSdW5Db29yZGluYXRvci5maW5pc2goIm1hbnVhbCIpOyB9KTsKICB9LAoKICByZUdlb2NvZGU6IGFzeW5jIChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICJSZS1nZW9jb2RpZmljYWNpw7NuIGluaWNpYWRhIGVuIHNlZ3VuZG8gcGxhbm8iIH0pOwogICAgICBidXNMb2coImluZm8iLCAiUmUtZ2VvY29kaWZpY2FjacOzbiBpbmljaWFkYS4uLiIpOwogICAgICBwcm9wU2VydmljZS5yZUdlb2NvZGVBbGwoKQogICAgICAgIC50aGVuKHIgPT4gYnVzTG9nKCJzdWNjZXNzIiwgYFJlLWdlb2NvZGlmaWNhY2nDs24gY29tcGxldGFkYTogJHtyLnVwZGF0ZWR9IGFjdHVhbGl6YWRhc2ApKQogICAgICAgIC5jYXRjaChlID0+IGJ1c0xvZygiZXJyb3IiLCBgRXJyb3IgcmUtZ2VvY29kaWZpY2FuZG86ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCkpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgaW5pY2lhciByZS1nZW9jb2RpZmljYWNpw7NuIiB9KTsKICAgIH0KICB9LAoKICAvKioKICAgKiBHRVQgL2FwaS9zY3JhcGVyL2xvZ3Mvc3RyZWFtCiAgICogU1NFOiBzdHJlYW0gZGUgbG9ncyBlbiB0aWVtcG8gcmVhbC4KICAgKi8KICBzdHJlYW1Mb2dzOiAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogdm9pZCA9PiB7CiAgICByZXMuc2V0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAidGV4dC9ldmVudC1zdHJlYW0iKTsKICAgIHJlcy5zZXRIZWFkZXIoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUiKTsKICAgIHJlcy5zZXRIZWFkZXIoIkNvbm5lY3Rpb24iLCAia2VlcC1hbGl2ZSIpOwogICAgcmVzLnNldEhlYWRlcigiWC1BY2NlbC1CdWZmZXJpbmciLCAibm8iKTsKICAgIHJlcy5mbHVzaEhlYWRlcnMoKTsKCiAgICBjb25zdCBzZW5kU3RhdHVzID0gKCkgPT4gewogICAgICByZXMud3JpdGUoYGV2ZW50OiBzdGF0dXNcbmRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAic3RhdHVzIiwgLi4uc2NyYXBlU3RhdHVzKCkgfSl9XG5cbmApOwogICAgfTsKCiAgICAvLyBFbnZpYXIgYnVmZmVyIHJlY2llbnRlIGFsIGNvbmVjdGFyc2UKICAgIGZvciAoY29uc3QgbG9nIG9mIHNjcmFwZXJCdXMucmVjZW50KDIwMCkpIHsKICAgICAgcmVzLndyaXRlKGBldmVudDogbG9nXG5kYXRhOiAke0pTT04uc3RyaW5naWZ5KHsgdHlwZTogImxvZyIsIC4uLmxvZyB9KX1cblxuYCk7CiAgICB9CiAgICBzZW5kU3RhdHVzKCk7CgogICAgY29uc3Qgb25Mb2cgPSAoZXY6IFNjcmFwZXJMb2dFdmVudCkgPT4gewogICAgICByZXMud3JpdGUoYGV2ZW50OiBsb2dcbmRhdGE6ICR7SlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAibG9nIiwgLi4uZXYgfSl9XG5cbmApOwogICAgfTsKICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAoZXY6IFNjcmFwZXJQcm9ncmVzc0V2ZW50KSA9PiB7CiAgICAgIHJlcy53cml0ZShgZXZlbnQ6IHByb2dyZXNzXG5kYXRhOiAke0pTT04uc3RyaW5naWZ5KHsgdHlwZTogInByb2dyZXNzIiwgLi4uZXYgfSl9XG5cbmApOwogICAgfTsKCiAgICBjb25zdCBoZWFydGJlYXQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgIHJlcy53cml0ZShgOmhlYXJ0YmVhdFxuXG5gKTsKICAgICAgc2VuZFN0YXR1cygpOwogICAgfSwgMjAwMDApOwoKICAgIHNjcmFwZXJCdXMub24oImxvZyIsIG9uTG9nKTsKICAgIHNjcmFwZXJCdXMub24oInByb2dyZXNzIiwgb25Qcm9ncmVzcyk7CgogICAgcmVxLm9uKCJjbG9zZSIsICgpID0+IHsKICAgICAgc2NyYXBlckJ1cy5vZmYoImxvZyIsIG9uTG9nKTsKICAgICAgc2NyYXBlckJ1cy5vZmYoInByb2dyZXNzIiwgb25Qcm9ncmVzcyk7CiAgICAgIGNsZWFySW50ZXJ2YWwoaGVhcnRiZWF0KTsKICAgIH0pOwogIH0sCgogIC8qKiBHRVQgL2FwaS9zY3JhcGVyL2xvZ3Mg4oCUIHZlcnNpw7NuIEpTT04gcG9sbGluZyAqLwogIGdldExvZ3M6IChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogdm9pZCA9PiB7CiAgICByZXMuanNvbih7IC4uLnNjcmFwZVN0YXR1cygpLCBsb2dzOiBzY3JhcGVyQnVzLnJlY2VudCgyMDApIH0pOwogIH0sCn07CgpleHBvcnQgZGVmYXVsdCBzY3JhcGVyQ29udHJvbGxlcjsK","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"},{"relativePath":"lliria-properties-scraper\\src\\scrapers\\baseScraper.ts","beforeExisted":true,"beforeHash":"f38eeecab5e9129ccfd4fb9b2c4cb3a524200bc2e3c783bdf90cca87acd5f254","beforeContent":"aW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gImF4aW9zIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IG5vcm1hbGl6ZVByb3BlcnR5VHlwZSB9IGZyb20gIi4uL3V0aWxzL25vcm1hbGl6ZVR5cGUiOwppbXBvcnQgeyBab25lTW9kZWwsIFpvbmUgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKCmNvbnN0IFVTRVJfQUdFTlRTID0gWwogICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMxLjAuMC4wIFNhZmFyaS81MzcuMzYiLAogICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV83KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMwLjAuMC4wIFNhZmFyaS81MzcuMzYiLAogICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0OyBydjoxMzMuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMzMuMCIsCiAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDE0XzZfMSkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE4LjEgU2FmYXJpLzYwNS4xLjE1IiwKICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyOS4wLjAuMCBTYWZhcmkvNTM3LjM2IiwKICAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMxLjAuMC4wIFNhZmFyaS81MzcuMzYiLApdOwoKZnVuY3Rpb24gcmFuZG9tVUEoKTogc3RyaW5nIHsKICByZXR1cm4gVVNFUl9BR0VOVFNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogVVNFUl9BR0VOVFMubGVuZ3RoKV07Cn0KCmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHsKICByZXR1cm4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7Cn0KCmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2NyYXBlciB7CiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZzsKICBwcm90ZWN0ZWQgcmVhZG9ubHkgc291cmNlTmFtZTogc3RyaW5nOwogIHByaXZhdGUgc3RhdGljIGxhc3RSZXF1ZXN0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307CiAgcHJvdGVjdGVkIG1pbkRlbGF5ID0gMTUwMDsgLy8gbXMgZW50cmUgcmVxdWVzdHMgYWwgbWlzbW8gZG9taW5pbwogIHByb3RlY3RlZCBfem9uZU92ZXJyaWRlOiBab25lW10gfCBudWxsID0gbnVsbDsKICBwcm90ZWN0ZWQgX29wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiA9ICJzYWxlIjsKCiAgLyoqIEZ1ZXJ6YSBhIGVzdGUgc2NyYXBlciBhIHRyYWJhamFyIHPDs2xvIGNvbiBsYXMgem9uYXMgaW5kaWNhZGFzIChwYXJhIHNjcmFwaW5nIHBvciB6b25hKSAqLwogIHNldFpvbmVPdmVycmlkZSh6b25lczogWm9uZVtdKTogdGhpcyB7CiAgICB0aGlzLl96b25lT3ZlcnJpZGUgPSB6b25lczsKICAgIHJldHVybiB0aGlzOwogIH0KICBzZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvbjogInNhbGUiIHwgInJlbnQiKTogdGhpcyB7CiAgICB0aGlzLl9vcGVyYXRpb25UeXBlID0gb3BlcmF0aW9uOwogICAgcmV0dXJuIHRoaXM7CiAgfQoKICBjb25zdHJ1Y3RvcihiYXNlVXJsOiBzdHJpbmcsIHNvdXJjZU5hbWU6IHN0cmluZykgewogICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybDsKICAgIHRoaXMuc291cmNlTmFtZSA9IHNvdXJjZU5hbWU7CiAgfQoKICAvKiogTm9tYnJlIGRlbCBwb3J0YWwvZnVlbnRlIChhY2Nlc28gZXh0ZXJubykgKi8KICBnZXQgc291cmNlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLnNvdXJjZU5hbWU7IH0KCiAgYWJzdHJhY3Qgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT47CgogIC8qKiBUaHJvdHRsZSByZXF1ZXN0cyBwZXIgZG9tYWluICovCiAgcHJpdmF0ZSBhc3luYyB0aHJvdHRsZSgpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGNvbnN0IGRvbWFpbiA9IG5ldyBVUkwodGhpcy5iYXNlVXJsKS5ob3N0bmFtZTsKICAgIGNvbnN0IGxhc3QgPSBCYXNlU2NyYXBlci5sYXN0UmVxdWVzdFtkb21haW5dIHx8IDA7CiAgICBjb25zdCB3YWl0ID0gdGhpcy5taW5EZWxheSAtIChEYXRlLm5vdygpIC0gbGFzdCk7CiAgICBpZiAod2FpdCA+IDApIGF3YWl0IHNsZWVwKHdhaXQgKyBNYXRoLnJhbmRvbSgpICogNTAwKTsKICAgIEJhc2VTY3JhcGVyLmxhc3RSZXF1ZXN0W2RvbWFpbl0gPSBEYXRlLm5vdygpOwogIH0KCiAgcHJvdGVjdGVkIGFzeW5jIGZldGNoSHRtbCh1cmw6IHN0cmluZywgcmV0cmllcyA9IDMpOiBQcm9taXNlPHN0cmluZz4gewogICAgYXdhaXQgdGhpcy50aHJvdHRsZSgpOwogICAgY29uc3QgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7CiAgICAgIGhlYWRlcnM6IHsKICAgICAgICAiVXNlci1BZ2VudCI6IHJhbmRvbVVBKCksCiAgICAgICAgIkFjY2VwdCI6ICJ0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS9hdmlmLGltYWdlL3dlYnAsKi8qO3E9MC44IiwKICAgICAgICAiQWNjZXB0LUxhbmd1YWdlIjogImVzLUVTLGVzO3E9MC45LGNhO3E9MC44IiwKICAgICAgICAiQWNjZXB0LUVuY29kaW5nIjogImd6aXAsIGRlZmxhdGUsIGJyIiwKICAgICAgICAiQ29ubmVjdGlvbiI6ICJrZWVwLWFsaXZlIiwKICAgICAgICAiVXBncmFkZS1JbnNlY3VyZS1SZXF1ZXN0cyI6ICIxIiwKICAgICAgICAiQ2FjaGUtQ29udHJvbCI6ICJtYXgtYWdlPTAiLAogICAgICAgICJTZWMtRmV0Y2gtRGVzdCI6ICJkb2N1bWVudCIsCiAgICAgICAgIlNlYy1GZXRjaC1Nb2RlIjogIm5hdmlnYXRlIiwKICAgICAgICAiU2VjLUZldGNoLVNpdGUiOiAibm9uZSIsCiAgICAgIH0sCiAgICAgIHRpbWVvdXQ6IDIwMDAwLAogICAgICBtYXhSZWRpcmVjdHM6IDUsCiAgICB9OwogICAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IGF0dGVtcHQgPD0gcmV0cmllczsgYXR0ZW1wdCsrKSB7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQodXJsLCBjb25maWcpOwogICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhIGFzIHN0cmluZzsKICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkgewogICAgICAgIGNvbnN0IHN0YXR1cyA9IGVycm9yPy5yZXNwb25zZT8uc3RhdHVzOwogICAgICAgIGNvbnNvbGUud2FybihgWyR7dGhpcy5zb3VyY2VOYW1lfV0gSW50ZW50byAke2F0dGVtcHR9LyR7cmV0cmllc30gZmFsbGlkbyBwYXJhICR7dXJsfSDihpIgJHtzdGF0dXMgfHwgZXJyb3IubWVzc2FnZX1gKTsKICAgICAgICAvLyA0MDQg4oaSIGxhIFVSTCBubyBleGlzdGUsIG5vIHRpZW5lIHNlbnRpZG8gcmVpbnRlbnRhcgogICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCkgewogICAgICAgICAgY29uc29sZS53YXJuKGBbJHt0aGlzLnNvdXJjZU5hbWV9XSAke3VybH0g4oaSIDQwNCwgb21pdGllbmRvYCk7CiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0dXMgPT09IDQwMyB8fCBzdGF0dXMgPT09IDQyOSkgewogICAgICAgICAgLy8gQW50aS1ib3Q6IGVzcGVyYXIgbcOhcyB0aWVtcG8KICAgICAgICAgIGF3YWl0IHNsZWVwKDMwMDAgKiBhdHRlbXB0ICsgTWF0aC5yYW5kb20oKSAqIDIwMDApOwogICAgICAgIH0gZWxzZSBpZiAoYXR0ZW1wdCA8IHJldHJpZXMpIHsKICAgICAgICAgIGF3YWl0IHNsZWVwKDEwMDAgKiBhdHRlbXB0KTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUuZXJyb3IoYFske3RoaXMuc291cmNlTmFtZX1dIEZhbGzDsyB0cmFzICR7cmV0cmllc30gaW50ZW50b3M6ICR7dXJsfWApOwogICAgcmV0dXJuICIiOwogIH0KCiAgcHJvdGVjdGVkIHBhcnNlUHJpY2UocmF3OiBzdHJpbmcpOiBudW1iZXIgewogICAgLy8gRXh0cmFlciBlbCBQUklNRVIgbsO6bWVybyBxdWUgcGFyZXpjYSB1biBwcmVjaW8gKGV2aXRhIGNvbmNhdGVuYXIgdmFyaW9zIHByZWNpb3MgZGVsIG1pc21vIHRleHRvKQogICAgLy8gRm9ybWF0b3Mgc29wb3J0YWRvczogIjE1MC4wMDAg4oKsIiwgIjE1MCwwMDAg4oKsIiwgIuKCrDE1MDAwMCIsICIxNTAgMDAwIOKCrCIKICAgIGNvbnN0IG1hdGNoID0gcmF3Lm1hdGNoKC8oPzrigqxccyopPyhbXGRdW1xkLixcc117MSwxM30pKD86XHMq4oKsKT8vKTsKICAgIGlmICghbWF0Y2gpIHJldHVybiAwOwogICAgY29uc3QgY2xlYW5lZCA9IG1hdGNoWzFdLnJlcGxhY2UoL1teXGRdL2csICIiKTsKICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQoY2xlYW5lZCwgMTApIHx8IDA7CiAgICAvLyBFbiBhbHF1aWxlciBwZXJtaXRpbW9zIGltcG9ydGVzIGJham9zIChoYWJpdGFjaW9uZXMvZXN0dWRpb3MpLCBlbiB2ZW50YSBtYW50ZW5lbW9zIHVtYnJhbCBtw6FzIGFsdG8uCiAgICBjb25zdCBtaW5BbGxvd2VkID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gNTAgOiAxXzAwMDsKICAgIC8vIEzDrW1pdGUgcmVhbGlzdGEgcGFyYSBldml0YXIgZGVzYm9yZGFtaWVudG8gZW4gREVDSU1BTCgxMiwyKQogICAgcmV0dXJuIHZhbHVlID49IG1pbkFsbG93ZWQgJiYgdmFsdWUgPD0gOTlfMDAwXzAwMCA/IHZhbHVlIDogMDsKICB9CgogIHByb3RlY3RlZCBzYW5pdGl6ZVRleHQocmF3OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHsKICAgIHJldHVybiAocmF3IHx8ICIiKS5yZXBsYWNlKC9ccysvZywgIiAiKS50cmltKCk7CiAgfQoKICAvKiogTm9ybWFsaXphIHRpcG8gZGUgcHJvcGllZGFkIGEgdmFsb3IgY2Fuw7NuaWNvIHVzYW5kbyBsYSB1dGlsaWRhZCBjZW50cmFsaXphZGEgKi8KICBwcm90ZWN0ZWQgbm9ybWFsaXplVHlwZSh0aXRsZU9yVHlwZTogc3RyaW5nLCBjYXRlZ29yeT86IHN0cmluZyk6IHN0cmluZyB7CiAgICByZXR1cm4gbm9ybWFsaXplUHJvcGVydHlUeXBlKGNhdGVnb3J5IHx8IHRpdGxlT3JUeXBlKTsKICB9CgogIC8qKiBEZXRlY3RhIGVsIG11bmljaXBpbyBkZSB1bmEgY2FkZW5hIGRlIHRleHRvIGNvbXBhcsOhbmRvbGEgY29uIGxvcyBzbHVncyBkZSB6b25hcyAqLwogIHByb3RlY3RlZCBkZXRlY3RNdW5pY2lwYWxpdHkodGV4dDogc3RyaW5nLCB6b25lczogWm9uZVtdLCBmYWxsYmFjayA9ICJMbFx1MDBlZHJpYSIpOiBzdHJpbmcgewogICAgLyoqCiAgICAgKiBOb3JtYWxpemFjacOzbiByb2J1c3RhOgogICAgICogIDEpIE1pbsO6c2N1bGFzICsgTkZEIOKGkiBxdWl0YSBhY2VudG9zICjDsiDihpIgbykKICAgICAqICAyKSBFbGltaW5hIGFww7NzdHJvZmVzLCBjb21hcywgcHVudG9zIHkgZGVtw6FzIHNpZ25vcyDihpIgY29udmllcnRlIGVuIGVzcGFjaW8KICAgICAqICAzKSBDb2xhcHNhIGVzcGFjaW9zIG3Dumx0aXBsZXMKICAgICAqIEVzdG8gcGVybWl0ZSBjb21wYXJhciAiTGEgVmFsbCBEJ1VpeMOyIiwgIkxhIFZhbGwgZGUgVWl4w7MiIHkgImxhLXZhbGwtZC11aXhvIgogICAgICogY29tbyB2YXJpYW50ZXMgZGUgbGEgbWlzbWEgY2FkZW5hLgogICAgICovCiAgICBjb25zdCBub3JtYWxpemUgPSAoczogc3RyaW5nKSA9PgogICAgICBzLnRvTG93ZXJDYXNlKCkKICAgICAgICAubm9ybWFsaXplKCJORkQiKQogICAgICAgIC5yZXBsYWNlKC9bXHUwMzAwLVx1MDM2Zl0vZywgIiIpICAgLy8gcXVpdGFyIGFjZW50b3MKICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcc10vZywgIiAiKSAgICAgICAvLyBhcMOzc3Ryb2ZlcywgZ3Vpb25lcywgZXRjLiDihpIgZXNwYWNpbwogICAgICAgIC5yZXBsYWNlKC9ccysvZywgIiAiKQogICAgICAgIC50cmltKCk7CgogICAgLyoqIFRva2VucyBzaWduaWZpY2F0aXZvcyAo4omlIDQgY2hhcnMpIHBhcmEgY29tcGFyYWNpw7NuIGZsZXhpYmxlIHBvciBpbnRlcnNlY2Npw7NuICovCiAgICBjb25zdCB0b2tlbml6ZSA9IChzOiBzdHJpbmcpOiBzdHJpbmdbXSA9PgogICAgICBub3JtYWxpemUocykuc3BsaXQoIiAiKS5maWx0ZXIodyA9PiB3Lmxlbmd0aCA+PSA0KTsKCiAgICBjb25zdCB0Tm9ybSA9IG5vcm1hbGl6ZSh0ZXh0KTsKICAgIGNvbnN0IHRUb2tlbnMgPSBuZXcgU2V0KHRva2VuaXplKHRleHQpKTsKCiAgICBmb3IgKGNvbnN0IHogb2Ygem9uZXMpIHsKICAgICAgLy8gVmFyaWFudGUgMTogbm9tYnJlIGNvbXBsZXRvIG5vcm1hbGl6YWRvIChzdWJzdHJpbmcpCiAgICAgIGNvbnN0IG5hbWVOb3JtID0gbm9ybWFsaXplKHoubmFtZSk7CiAgICAgIGlmIChuYW1lTm9ybSAmJiB0Tm9ybS5pbmNsdWRlcyhuYW1lTm9ybSkpIHJldHVybiB6Lm5hbWU7CgogICAgICAvLyBWYXJpYW50ZSAyOiBzbHVnIGNvbnZlcnRpZG8gYSBwYWxhYnJhcyAoc3Vic3RyaW5nKQogICAgICBjb25zdCBzbHVnTm9ybSA9IG5vcm1hbGl6ZSh6LnNsdWcucmVwbGFjZSgvLS9nLCAiICIpKTsKICAgICAgaWYgKHNsdWdOb3JtICYmIHROb3JtLmluY2x1ZGVzKHNsdWdOb3JtKSkgcmV0dXJuIHoubmFtZTsKCiAgICAgIC8vIFZhcmlhbnRlIDM6IGludGVyc2VjY2nDs24gZGUgdG9rZW5zIOKAlCBjdWJyZSBjb250cmFjY2lvbmVzIGNvbW8KICAgICAgLy8gIkQnVWl4w7IiICh2YWxlbmNpYW5vKSB2cyAiZGUgVWl4w7MiIChjYXN0ZWxsYW5vKS4KICAgICAgLy8gRWo6IFsidmFsbCIsInVpeG8iXSDiioYgdG9rZW5zKCJsYSB2YWxsIGRlIHVpeG8iKSDinJMKICAgICAgY29uc3QgelRva2VucyA9IHRva2VuaXplKHoubmFtZSk7CiAgICAgIGlmICh6VG9rZW5zLmxlbmd0aCA+IDAgJiYgelRva2Vucy5ldmVyeSh0ID0+IHRUb2tlbnMuaGFzKHQpKSkgcmV0dXJuIHoubmFtZTsKICAgIH0KICAgIHJldHVybiBmYWxsYmFjazsKICB9CgogIC8qKiBPYnRpZW5lIGxhcyB6b25hcyBhY3RpdmFzIGRlIGxhIEJEIChjb24gY2FjaMOpIFRUTCA2MHMgcGFyYSBubyBzYXR1cmFyIERCIGVuIGJ1Y2xlcykgKi8KICBwcml2YXRlIHN0YXRpYyBfem9uZXNDYWNoZTogeyB6b25lczogWm9uZVtdOyB0czogbnVtYmVyIH0gfCBudWxsID0gbnVsbDsKICBwcml2YXRlIHNlbGVjdERhaWx5Wm9uZUJhdGNoKHpvbmVzOiBab25lW10pOiBab25lW10gewogICAgY29uc3QgY29uZmlndXJlZCA9IHByb2Nlc3MuZW52LlNDUkFQRVJfTUFYX1pPTkVTX1BFUl9QT1JUQUw7CiAgICBjb25zdCBwYXJzZWQgPSBjb25maWd1cmVkID09PSB1bmRlZmluZWQgPyAxMiA6IE51bWJlcihjb25maWd1cmVkKTsKICAgIGNvbnN0IG1heFpvbmVzID0gTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkgPyBNYXRoLm1heCgwLCBwYXJzZWQpIDogMTI7CiAgICBjb25zdCBzY29wZWQgPSB6b25lcy5maWx0ZXIoeiA9PiB6LmNvdmVyYWdlX3Njb3BlID09PSAidmFsZW5jaWEtNDBrbSIgJiYgei5zbHVnICE9PSAidmFsZW5jaWEiKTsKICAgIGlmIChtYXhab25lcyA9PT0gMCB8fCBzY29wZWQubGVuZ3RoICsgMSA8PSBtYXhab25lcykgcmV0dXJuIHpvbmVzOwoKICAgIGNvbnN0IHZhbGVuY2lhID0gem9uZXMuZmluZCh6ID0+IHouc2x1ZyA9PT0gInZhbGVuY2lhIik7CiAgICBjb25zdCBsZWdhY3kgPSB6b25lcy5maWx0ZXIoeiA9PiB6LmNvdmVyYWdlX3Njb3BlICE9PSAidmFsZW5jaWEtNDBrbSIgJiYgei5zbHVnICE9PSAidmFsZW5jaWEiKTsKICAgIGNvbnN0IG9yZGVyZWQgPSBbLi4uc2NvcGVkXS5zb3J0KChhLCBiKSA9PgogICAgICAoYS5jb3ZlcmFnZV9zZWdtZW50IHx8ICIiKS5sb2NhbGVDb21wYXJlKGIuY292ZXJhZ2Vfc2VnbWVudCB8fCAiIikgfHwgYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKQogICAgKTsKICAgIGNvbnN0IGRheSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDg2XzQwMF8wMDApOwogICAgY29uc3Qgc291cmNlSGFzaCA9IFsuLi5gJHt0aGlzLnNvdXJjZU5hbWV9OiR7dGhpcy5fb3BlcmF0aW9uVHlwZX1gXQogICAgICAucmVkdWNlKChzdW0sIGNoYXIpID0+IChzdW0gKiAzMSArIGNoYXIuY2hhckNvZGVBdCgwKSkgPj4+IDAsIDApOwogICAgY29uc3QgYXZhaWxhYmxlID0gTWF0aC5tYXgoMSwgbWF4Wm9uZXMgLSAodmFsZW5jaWEgPyAxIDogMCkgLSBsZWdhY3kubGVuZ3RoKTsKICAgIGNvbnN0IHN0YXJ0ID0gKGRheSAqIGF2YWlsYWJsZSArIHNvdXJjZUhhc2gpICUgb3JkZXJlZC5sZW5ndGg7CiAgICBjb25zdCBzZWxlY3RlZCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGgubWluKGF2YWlsYWJsZSwgb3JkZXJlZC5sZW5ndGgpIH0sCiAgICAgIChfdW51c2VkLCBpbmRleCkgPT4gb3JkZXJlZFsoc3RhcnQgKyBpbmRleCkgJSBvcmRlcmVkLmxlbmd0aF0pOwogICAgY29uc3QgYmF0Y2ggPSBbLi4uKHZhbGVuY2lhID8gW3ZhbGVuY2lhXSA6IFtdKSwgLi4ubGVnYWN5LCAuLi5zZWxlY3RlZF07CiAgICBjb25zb2xlLmxvZyhgWyR7dGhpcy5zb3VyY2VOYW1lfV0gTG90ZSBnZW9ncsOhZmljbyBkaWFyaW86ICR7YmF0Y2gubGVuZ3RofS8ke3pvbmVzLmxlbmd0aH0gem9uYXMgKCR7dGhpcy5fb3BlcmF0aW9uVHlwZX0pYCk7CiAgICByZXR1cm4gYmF0Y2g7CiAgfQoKICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QWN0aXZlWm9uZXMoKTogUHJvbWlzZTxab25lW10+IHsKICAgIGlmICh0aGlzLl96b25lT3ZlcnJpZGUgIT09IG51bGwpIHJldHVybiB0aGlzLl96b25lT3ZlcnJpZGU7CiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpOwogICAgaWYgKEJhc2VTY3JhcGVyLl96b25lc0NhY2hlICYmIG5vdyAtIEJhc2VTY3JhcGVyLl96b25lc0NhY2hlLnRzIDwgNjBfMDAwKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERhaWx5Wm9uZUJhdGNoKEJhc2VTY3JhcGVyLl96b25lc0NhY2hlLnpvbmVzKTsKICAgIH0KICAgIHRyeSB7CiAgICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgWm9uZU1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgQmFzZVNjcmFwZXIuX3pvbmVzQ2FjaGUgPSB7IHpvbmVzLCB0czogbm93IH07CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERhaWx5Wm9uZUJhdGNoKHpvbmVzKTsKICAgIH0gY2F0Y2ggewogICAgICByZXR1cm4gW107CiAgICB9CiAgfQoKICAvKiogVmFsaWRhdGUgc2NyYXBlIHJlc3VsdHMg4oCUIHdhcm4gaWYgMCByZXN1bHRzIChwb3NzaWJsZSBzdHJ1Y3R1cmUgY2hhbmdlKSAqLwogIHByb3RlY3RlZCB2YWxpZGF0ZVJlc3VsdHMocHJvcHM6IFByb3BlcnR5W10pOiBQcm9wZXJ0eVtdIHsKICAgIGlmIChwcm9wcy5sZW5ndGggPT09IDApIHsKICAgICAgY29uc29sZS53YXJuKGDimqDvuI8gIFske3RoaXMuc291cmNlTmFtZX1dIDAgcmVzdWx0YWRvcyDigJQgcG9zaWJsZSBjYW1iaW8gZW4gZXN0cnVjdHVyYSBIVE1MIG8gYmxvcXVlbyBhbnRpLWJvdGApOwogICAgfSBlbHNlIHsKICAgICAgY29uc29sZS5sb2coYOKchSBbJHt0aGlzLnNvdXJjZU5hbWV9XSAke3Byb3BzLmxlbmd0aH0gcHJvcGllZGFkZXMgZW5jb250cmFkYXNgKTsKICAgIH0KICAgIHJldHVybiBwcm9wczsKICB9Cn0K","afterExisted":true,"afterHash":"9cde54320673eee9064f1c9a0f35da39796224782b48b7ff2cad8f2b13d07ddd","afterContent":"aW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gImF4aW9zIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IG5vcm1hbGl6ZVByb3BlcnR5VHlwZSB9IGZyb20gIi4uL3V0aWxzL25vcm1hbGl6ZVR5cGUiOwppbXBvcnQgeyBab25lTW9kZWwsIFpvbmUgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKCmNvbnN0IFVTRVJfQUdFTlRTID0gWwogICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMxLjAuMC4wIFNhZmFyaS81MzcuMzYiLAogICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV83KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMwLjAuMC4wIFNhZmFyaS81MzcuMzYiLAogICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0OyBydjoxMzMuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMzMuMCIsCiAgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDE0XzZfMSkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE4LjEgU2FmYXJpLzYwNS4xLjE1IiwKICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyOS4wLjAuMCBTYWZhcmkvNTM3LjM2IiwKICAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMxLjAuMC4wIFNhZmFyaS81MzcuMzYiLApdOwoKZnVuY3Rpb24gcmFuZG9tVUEoKTogc3RyaW5nIHsKICByZXR1cm4gVVNFUl9BR0VOVFNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogVVNFUl9BR0VOVFMubGVuZ3RoKV07Cn0KCmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHsKICByZXR1cm4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7Cn0KCmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2NyYXBlciB7CiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZzsKICBwcm90ZWN0ZWQgcmVhZG9ubHkgc291cmNlTmFtZTogc3RyaW5nOwogIHByaXZhdGUgc3RhdGljIGxhc3RSZXF1ZXN0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307CiAgcHJvdGVjdGVkIG1pbkRlbGF5ID0gMTUwMDsgLy8gbXMgZW50cmUgcmVxdWVzdHMgYWwgbWlzbW8gZG9taW5pbwogIHByb3RlY3RlZCBfem9uZU92ZXJyaWRlOiBab25lW10gfCBudWxsID0gbnVsbDsKICBwcm90ZWN0ZWQgX29wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiA9ICJzYWxlIjsKICBwcml2YXRlIF9wYXJ0aWFsQ292ZXJhZ2UgPSBmYWxzZTsKCiAgLyoqIEZ1ZXJ6YSBhIGVzdGUgc2NyYXBlciBhIHRyYWJhamFyIHPDs2xvIGNvbiBsYXMgem9uYXMgaW5kaWNhZGFzIChwYXJhIHNjcmFwaW5nIHBvciB6b25hKSAqLwogIHNldFpvbmVPdmVycmlkZSh6b25lczogWm9uZVtdKTogdGhpcyB7CiAgICB0aGlzLl96b25lT3ZlcnJpZGUgPSB6b25lczsKICAgIHJldHVybiB0aGlzOwogIH0KICBzZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvbjogInNhbGUiIHwgInJlbnQiKTogdGhpcyB7CiAgICB0aGlzLl9vcGVyYXRpb25UeXBlID0gb3BlcmF0aW9uOwogICAgcmV0dXJuIHRoaXM7CiAgfQoKICBjb25zdHJ1Y3RvcihiYXNlVXJsOiBzdHJpbmcsIHNvdXJjZU5hbWU6IHN0cmluZykgewogICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybDsKICAgIHRoaXMuc291cmNlTmFtZSA9IHNvdXJjZU5hbWU7CiAgfQoKICAvKiogTm9tYnJlIGRlbCBwb3J0YWwvZnVlbnRlIChhY2Nlc28gZXh0ZXJubykgKi8KICBnZXQgc291cmNlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLnNvdXJjZU5hbWU7IH0KICAvKiogSW5kaWNhIHF1ZSBlbCBjaWNsbyB2aXNpdMOzIHVuIGxvdGUgZ2VvZ3LDoWZpY28geSBubyBwZXJtaXRlIGFyY2hpdmFkbyBnbG9iYWwuICovCiAgaXNQYXJ0aWFsQ292ZXJhZ2UoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9wYXJ0aWFsQ292ZXJhZ2U7IH0KCiAgYWJzdHJhY3Qgc2NyYXBlKCk6IFByb21pc2U8UHJvcGVydHlbXT47CgogIC8qKiBUaHJvdHRsZSByZXF1ZXN0cyBwZXIgZG9tYWluICovCiAgcHJpdmF0ZSBhc3luYyB0aHJvdHRsZSgpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGNvbnN0IGRvbWFpbiA9IG5ldyBVUkwodGhpcy5iYXNlVXJsKS5ob3N0bmFtZTsKICAgIGNvbnN0IGxhc3QgPSBCYXNlU2NyYXBlci5sYXN0UmVxdWVzdFtkb21haW5dIHx8IDA7CiAgICBjb25zdCB3YWl0ID0gdGhpcy5taW5EZWxheSAtIChEYXRlLm5vdygpIC0gbGFzdCk7CiAgICBpZiAod2FpdCA+IDApIGF3YWl0IHNsZWVwKHdhaXQgKyBNYXRoLnJhbmRvbSgpICogNTAwKTsKICAgIEJhc2VTY3JhcGVyLmxhc3RSZXF1ZXN0W2RvbWFpbl0gPSBEYXRlLm5vdygpOwogIH0KCiAgcHJvdGVjdGVkIGFzeW5jIGZldGNoSHRtbCh1cmw6IHN0cmluZywgcmV0cmllcyA9IDMpOiBQcm9taXNlPHN0cmluZz4gewogICAgYXdhaXQgdGhpcy50aHJvdHRsZSgpOwogICAgY29uc3QgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7CiAgICAgIGhlYWRlcnM6IHsKICAgICAgICAiVXNlci1BZ2VudCI6IHJhbmRvbVVBKCksCiAgICAgICAgIkFjY2VwdCI6ICJ0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS9hdmlmLGltYWdlL3dlYnAsKi8qO3E9MC44IiwKICAgICAgICAiQWNjZXB0LUxhbmd1YWdlIjogImVzLUVTLGVzO3E9MC45LGNhO3E9MC44IiwKICAgICAgICAiQWNjZXB0LUVuY29kaW5nIjogImd6aXAsIGRlZmxhdGUsIGJyIiwKICAgICAgICAiQ29ubmVjdGlvbiI6ICJrZWVwLWFsaXZlIiwKICAgICAgICAiVXBncmFkZS1JbnNlY3VyZS1SZXF1ZXN0cyI6ICIxIiwKICAgICAgICAiQ2FjaGUtQ29udHJvbCI6ICJtYXgtYWdlPTAiLAogICAgICAgICJTZWMtRmV0Y2gtRGVzdCI6ICJkb2N1bWVudCIsCiAgICAgICAgIlNlYy1GZXRjaC1Nb2RlIjogIm5hdmlnYXRlIiwKICAgICAgICAiU2VjLUZldGNoLVNpdGUiOiAibm9uZSIsCiAgICAgIH0sCiAgICAgIHRpbWVvdXQ6IDIwMDAwLAogICAgICBtYXhSZWRpcmVjdHM6IDUsCiAgICB9OwogICAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IGF0dGVtcHQgPD0gcmV0cmllczsgYXR0ZW1wdCsrKSB7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQodXJsLCBjb25maWcpOwogICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhIGFzIHN0cmluZzsKICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkgewogICAgICAgIGNvbnN0IHN0YXR1cyA9IGVycm9yPy5yZXNwb25zZT8uc3RhdHVzOwogICAgICAgIGNvbnNvbGUud2FybihgWyR7dGhpcy5zb3VyY2VOYW1lfV0gSW50ZW50byAke2F0dGVtcHR9LyR7cmV0cmllc30gZmFsbGlkbyBwYXJhICR7dXJsfSDihpIgJHtzdGF0dXMgfHwgZXJyb3IubWVzc2FnZX1gKTsKICAgICAgICAvLyA0MDQg4oaSIGxhIFVSTCBubyBleGlzdGUsIG5vIHRpZW5lIHNlbnRpZG8gcmVpbnRlbnRhcgogICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCkgewogICAgICAgICAgY29uc29sZS53YXJuKGBbJHt0aGlzLnNvdXJjZU5hbWV9XSAke3VybH0g4oaSIDQwNCwgb21pdGllbmRvYCk7CiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0dXMgPT09IDQwMyB8fCBzdGF0dXMgPT09IDQyOSkgewogICAgICAgICAgLy8gQW50aS1ib3Q6IGVzcGVyYXIgbcOhcyB0aWVtcG8KICAgICAgICAgIGF3YWl0IHNsZWVwKDMwMDAgKiBhdHRlbXB0ICsgTWF0aC5yYW5kb20oKSAqIDIwMDApOwogICAgICAgIH0gZWxzZSBpZiAoYXR0ZW1wdCA8IHJldHJpZXMpIHsKICAgICAgICAgIGF3YWl0IHNsZWVwKDEwMDAgKiBhdHRlbXB0KTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUuZXJyb3IoYFske3RoaXMuc291cmNlTmFtZX1dIEZhbGzDsyB0cmFzICR7cmV0cmllc30gaW50ZW50b3M6ICR7dXJsfWApOwogICAgcmV0dXJuICIiOwogIH0KCiAgcHJvdGVjdGVkIHBhcnNlUHJpY2UocmF3OiBzdHJpbmcpOiBudW1iZXIgewogICAgLy8gRXh0cmFlciBlbCBQUklNRVIgbsO6bWVybyBxdWUgcGFyZXpjYSB1biBwcmVjaW8gKGV2aXRhIGNvbmNhdGVuYXIgdmFyaW9zIHByZWNpb3MgZGVsIG1pc21vIHRleHRvKQogICAgLy8gRm9ybWF0b3Mgc29wb3J0YWRvczogIjE1MC4wMDAg4oKsIiwgIjE1MCwwMDAg4oKsIiwgIuKCrDE1MDAwMCIsICIxNTAgMDAwIOKCrCIKICAgIGNvbnN0IG1hdGNoID0gcmF3Lm1hdGNoKC8oPzrigqxccyopPyhbXGRdW1xkLixcc117MSwxM30pKD86XHMq4oKsKT8vKTsKICAgIGlmICghbWF0Y2gpIHJldHVybiAwOwogICAgY29uc3QgY2xlYW5lZCA9IG1hdGNoWzFdLnJlcGxhY2UoL1teXGRdL2csICIiKTsKICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQoY2xlYW5lZCwgMTApIHx8IDA7CiAgICAvLyBFbiBhbHF1aWxlciBwZXJtaXRpbW9zIGltcG9ydGVzIGJham9zIChoYWJpdGFjaW9uZXMvZXN0dWRpb3MpLCBlbiB2ZW50YSBtYW50ZW5lbW9zIHVtYnJhbCBtw6FzIGFsdG8uCiAgICBjb25zdCBtaW5BbGxvd2VkID0gdGhpcy5fb3BlcmF0aW9uVHlwZSA9PT0gInJlbnQiID8gNTAgOiAxXzAwMDsKICAgIC8vIEzDrW1pdGUgcmVhbGlzdGEgcGFyYSBldml0YXIgZGVzYm9yZGFtaWVudG8gZW4gREVDSU1BTCgxMiwyKQogICAgcmV0dXJuIHZhbHVlID49IG1pbkFsbG93ZWQgJiYgdmFsdWUgPD0gOTlfMDAwXzAwMCA/IHZhbHVlIDogMDsKICB9CgogIHByb3RlY3RlZCBzYW5pdGl6ZVRleHQocmF3OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHsKICAgIHJldHVybiAocmF3IHx8ICIiKS5yZXBsYWNlKC9ccysvZywgIiAiKS50cmltKCk7CiAgfQoKICAvKiogTm9ybWFsaXphIHRpcG8gZGUgcHJvcGllZGFkIGEgdmFsb3IgY2Fuw7NuaWNvIHVzYW5kbyBsYSB1dGlsaWRhZCBjZW50cmFsaXphZGEgKi8KICBwcm90ZWN0ZWQgbm9ybWFsaXplVHlwZSh0aXRsZU9yVHlwZTogc3RyaW5nLCBjYXRlZ29yeT86IHN0cmluZyk6IHN0cmluZyB7CiAgICByZXR1cm4gbm9ybWFsaXplUHJvcGVydHlUeXBlKGNhdGVnb3J5IHx8IHRpdGxlT3JUeXBlKTsKICB9CgogIC8qKiBEZXRlY3RhIGVsIG11bmljaXBpbyBkZSB1bmEgY2FkZW5hIGRlIHRleHRvIGNvbXBhcsOhbmRvbGEgY29uIGxvcyBzbHVncyBkZSB6b25hcyAqLwogIHByb3RlY3RlZCBkZXRlY3RNdW5pY2lwYWxpdHkodGV4dDogc3RyaW5nLCB6b25lczogWm9uZVtdLCBmYWxsYmFjayA9ICJMbFx1MDBlZHJpYSIpOiBzdHJpbmcgewogICAgLyoqCiAgICAgKiBOb3JtYWxpemFjacOzbiByb2J1c3RhOgogICAgICogIDEpIE1pbsO6c2N1bGFzICsgTkZEIOKGkiBxdWl0YSBhY2VudG9zICjDsiDihpIgbykKICAgICAqICAyKSBFbGltaW5hIGFww7NzdHJvZmVzLCBjb21hcywgcHVudG9zIHkgZGVtw6FzIHNpZ25vcyDihpIgY29udmllcnRlIGVuIGVzcGFjaW8KICAgICAqICAzKSBDb2xhcHNhIGVzcGFjaW9zIG3Dumx0aXBsZXMKICAgICAqIEVzdG8gcGVybWl0ZSBjb21wYXJhciAiTGEgVmFsbCBEJ1VpeMOyIiwgIkxhIFZhbGwgZGUgVWl4w7MiIHkgImxhLXZhbGwtZC11aXhvIgogICAgICogY29tbyB2YXJpYW50ZXMgZGUgbGEgbWlzbWEgY2FkZW5hLgogICAgICovCiAgICBjb25zdCBub3JtYWxpemUgPSAoczogc3RyaW5nKSA9PgogICAgICBzLnRvTG93ZXJDYXNlKCkKICAgICAgICAubm9ybWFsaXplKCJORkQiKQogICAgICAgIC5yZXBsYWNlKC9bXHUwMzAwLVx1MDM2Zl0vZywgIiIpICAgLy8gcXVpdGFyIGFjZW50b3MKICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcc10vZywgIiAiKSAgICAgICAvLyBhcMOzc3Ryb2ZlcywgZ3Vpb25lcywgZXRjLiDihpIgZXNwYWNpbwogICAgICAgIC5yZXBsYWNlKC9ccysvZywgIiAiKQogICAgICAgIC50cmltKCk7CgogICAgLyoqIFRva2VucyBzaWduaWZpY2F0aXZvcyAo4omlIDQgY2hhcnMpIHBhcmEgY29tcGFyYWNpw7NuIGZsZXhpYmxlIHBvciBpbnRlcnNlY2Npw7NuICovCiAgICBjb25zdCB0b2tlbml6ZSA9IChzOiBzdHJpbmcpOiBzdHJpbmdbXSA9PgogICAgICBub3JtYWxpemUocykuc3BsaXQoIiAiKS5maWx0ZXIodyA9PiB3Lmxlbmd0aCA+PSA0KTsKCiAgICBjb25zdCB0Tm9ybSA9IG5vcm1hbGl6ZSh0ZXh0KTsKICAgIGNvbnN0IHRUb2tlbnMgPSBuZXcgU2V0KHRva2VuaXplKHRleHQpKTsKCiAgICBmb3IgKGNvbnN0IHogb2Ygem9uZXMpIHsKICAgICAgLy8gVmFyaWFudGUgMTogbm9tYnJlIGNvbXBsZXRvIG5vcm1hbGl6YWRvIChzdWJzdHJpbmcpCiAgICAgIGNvbnN0IG5hbWVOb3JtID0gbm9ybWFsaXplKHoubmFtZSk7CiAgICAgIGlmIChuYW1lTm9ybSAmJiB0Tm9ybS5pbmNsdWRlcyhuYW1lTm9ybSkpIHJldHVybiB6Lm5hbWU7CgogICAgICAvLyBWYXJpYW50ZSAyOiBzbHVnIGNvbnZlcnRpZG8gYSBwYWxhYnJhcyAoc3Vic3RyaW5nKQogICAgICBjb25zdCBzbHVnTm9ybSA9IG5vcm1hbGl6ZSh6LnNsdWcucmVwbGFjZSgvLS9nLCAiICIpKTsKICAgICAgaWYgKHNsdWdOb3JtICYmIHROb3JtLmluY2x1ZGVzKHNsdWdOb3JtKSkgcmV0dXJuIHoubmFtZTsKCiAgICAgIC8vIFZhcmlhbnRlIDM6IGludGVyc2VjY2nDs24gZGUgdG9rZW5zIOKAlCBjdWJyZSBjb250cmFjY2lvbmVzIGNvbW8KICAgICAgLy8gIkQnVWl4w7IiICh2YWxlbmNpYW5vKSB2cyAiZGUgVWl4w7MiIChjYXN0ZWxsYW5vKS4KICAgICAgLy8gRWo6IFsidmFsbCIsInVpeG8iXSDiioYgdG9rZW5zKCJsYSB2YWxsIGRlIHVpeG8iKSDinJMKICAgICAgY29uc3QgelRva2VucyA9IHRva2VuaXplKHoubmFtZSk7CiAgICAgIGlmICh6VG9rZW5zLmxlbmd0aCA+IDAgJiYgelRva2Vucy5ldmVyeSh0ID0+IHRUb2tlbnMuaGFzKHQpKSkgcmV0dXJuIHoubmFtZTsKICAgIH0KICAgIHJldHVybiBmYWxsYmFjazsKICB9CgogIC8qKiBPYnRpZW5lIGxhcyB6b25hcyBhY3RpdmFzIGRlIGxhIEJEIChjb24gY2FjaMOpIFRUTCA2MHMgcGFyYSBubyBzYXR1cmFyIERCIGVuIGJ1Y2xlcykgKi8KICBwcml2YXRlIHN0YXRpYyBfem9uZXNDYWNoZTogeyB6b25lczogWm9uZVtdOyB0czogbnVtYmVyIH0gfCBudWxsID0gbnVsbDsKICBwcml2YXRlIHNlbGVjdERhaWx5Wm9uZUJhdGNoKHpvbmVzOiBab25lW10pOiBab25lW10gewogICAgY29uc3QgY29uZmlndXJlZCA9IHByb2Nlc3MuZW52LlNDUkFQRVJfTUFYX1pPTkVTX1BFUl9QT1JUQUw7CiAgICBjb25zdCBwYXJzZWQgPSBjb25maWd1cmVkID09PSB1bmRlZmluZWQgPyAxMiA6IE51bWJlcihjb25maWd1cmVkKTsKICAgIGNvbnN0IG1heFpvbmVzID0gTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkgPyBNYXRoLm1heCgwLCBwYXJzZWQpIDogMTI7CiAgICBjb25zdCBzY29wZWQgPSB6b25lcy5maWx0ZXIoeiA9PiB6LmNvdmVyYWdlX3Njb3BlID09PSAidmFsZW5jaWEtNDBrbSIgJiYgei5zbHVnICE9PSAidmFsZW5jaWEiKTsKICAgIGlmIChtYXhab25lcyA9PT0gMCB8fCBzY29wZWQubGVuZ3RoICsgMSA8PSBtYXhab25lcykgewogICAgICB0aGlzLl9wYXJ0aWFsQ292ZXJhZ2UgPSBmYWxzZTsKICAgICAgcmV0dXJuIHpvbmVzOwogICAgfQoKICAgIGNvbnN0IHZhbGVuY2lhID0gem9uZXMuZmluZCh6ID0+IHouc2x1ZyA9PT0gInZhbGVuY2lhIik7CiAgICBjb25zdCBsZWdhY3kgPSB6b25lcy5maWx0ZXIoeiA9PiB6LmNvdmVyYWdlX3Njb3BlICE9PSAidmFsZW5jaWEtNDBrbSIgJiYgei5zbHVnICE9PSAidmFsZW5jaWEiKTsKICAgIGNvbnN0IG9yZGVyZWQgPSBbLi4uc2NvcGVkXS5zb3J0KChhLCBiKSA9PgogICAgICAoYS5jb3ZlcmFnZV9zZWdtZW50IHx8ICIiKS5sb2NhbGVDb21wYXJlKGIuY292ZXJhZ2Vfc2VnbWVudCB8fCAiIikgfHwgYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKQogICAgKTsKICAgIGNvbnN0IGRheSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDg2XzQwMF8wMDApOwogICAgY29uc3Qgc291cmNlSGFzaCA9IFsuLi5gJHt0aGlzLnNvdXJjZU5hbWV9OiR7dGhpcy5fb3BlcmF0aW9uVHlwZX1gXQogICAgICAucmVkdWNlKChzdW0sIGNoYXIpID0+IChzdW0gKiAzMSArIGNoYXIuY2hhckNvZGVBdCgwKSkgPj4+IDAsIDApOwogICAgY29uc3QgYXZhaWxhYmxlID0gTWF0aC5tYXgoMSwgbWF4Wm9uZXMgLSAodmFsZW5jaWEgPyAxIDogMCkgLSBsZWdhY3kubGVuZ3RoKTsKICAgIGNvbnN0IHN0YXJ0ID0gKGRheSAqIGF2YWlsYWJsZSArIHNvdXJjZUhhc2gpICUgb3JkZXJlZC5sZW5ndGg7CiAgICBjb25zdCBzZWxlY3RlZCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGgubWluKGF2YWlsYWJsZSwgb3JkZXJlZC5sZW5ndGgpIH0sCiAgICAgIChfdW51c2VkLCBpbmRleCkgPT4gb3JkZXJlZFsoc3RhcnQgKyBpbmRleCkgJSBvcmRlcmVkLmxlbmd0aF0pOwogICAgY29uc3QgYmF0Y2ggPSBbLi4uKHZhbGVuY2lhID8gW3ZhbGVuY2lhXSA6IFtdKSwgLi4ubGVnYWN5LCAuLi5zZWxlY3RlZF07CiAgICB0aGlzLl9wYXJ0aWFsQ292ZXJhZ2UgPSB0cnVlOwogICAgY29uc29sZS5sb2coYFske3RoaXMuc291cmNlTmFtZX1dIExvdGUgZ2VvZ3LDoWZpY28gZGlhcmlvOiAke2JhdGNoLmxlbmd0aH0vJHt6b25lcy5sZW5ndGh9IHpvbmFzICgke3RoaXMuX29wZXJhdGlvblR5cGV9KWApOwogICAgcmV0dXJuIGJhdGNoOwogIH0KCiAgcHJvdGVjdGVkIGFzeW5jIGdldEFjdGl2ZVpvbmVzKCk6IFByb21pc2U8Wm9uZVtdPiB7CiAgICBpZiAodGhpcy5fem9uZU92ZXJyaWRlICE9PSBudWxsKSByZXR1cm4gdGhpcy5fem9uZU92ZXJyaWRlOwogICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTsKICAgIGlmIChCYXNlU2NyYXBlci5fem9uZXNDYWNoZSAmJiBub3cgLSBCYXNlU2NyYXBlci5fem9uZXNDYWNoZS50cyA8IDYwXzAwMCkgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REYWlseVpvbmVCYXRjaChCYXNlU2NyYXBlci5fem9uZXNDYWNoZS56b25lcyk7CiAgICB9CiAgICB0cnkgewogICAgICBjb25zdCB6b25lcyA9IGF3YWl0IFpvbmVNb2RlbC5maW5kQWN0aXZlKCk7CiAgICAgIEJhc2VTY3JhcGVyLl96b25lc0NhY2hlID0geyB6b25lcywgdHM6IG5vdyB9OwogICAgICByZXR1cm4gdGhpcy5zZWxlY3REYWlseVpvbmVCYXRjaCh6b25lcyk7CiAgICB9IGNhdGNoIHsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KCiAgLyoqIFZhbGlkYXRlIHNjcmFwZSByZXN1bHRzIOKAlCB3YXJuIGlmIDAgcmVzdWx0cyAocG9zc2libGUgc3RydWN0dXJlIGNoYW5nZSkgKi8KICBwcm90ZWN0ZWQgdmFsaWRhdGVSZXN1bHRzKHByb3BzOiBQcm9wZXJ0eVtdKTogUHJvcGVydHlbXSB7CiAgICBpZiAocHJvcHMubGVuZ3RoID09PSAwKSB7CiAgICAgIGNvbnNvbGUud2Fybihg4pqg77iPICBbJHt0aGlzLnNvdXJjZU5hbWV9XSAwIHJlc3VsdGFkb3Mg4oCUIHBvc2libGUgY2FtYmlvIGVuIGVzdHJ1Y3R1cmEgSFRNTCBvIGJsb3F1ZW8gYW50aS1ib3RgKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnNvbGUubG9nKGDinIUgWyR7dGhpcy5zb3VyY2VOYW1lfV0gJHtwcm9wcy5sZW5ndGh9IHByb3BpZWRhZGVzIGVuY29udHJhZGFzYCk7CiAgICB9CiAgICByZXR1cm4gcHJvcHM7CiAgfQp9Cg==","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\propertyService.ts","beforeExisted":true,"beforeHash":"467d97fd5b77c5cbff2edf28e18554d2ebedccaf3ae7b4a7ad48840c9f100bd5","beforeContent":"aW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKaW1wb3J0IHsgYnVzTG9nLCBzY3JhcGVyQnVzIH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKaW1wb3J0IHsKICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwgRm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlciwKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn0gZnJvbSAiLi4vc2NyYXBlcnMvaW5kZXgiOwppbXBvcnQgeyBHZW9jb2RpbmdTZXJ2aWNlIH0gZnJvbSAiLi9nZW9jb2RpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgU2NvcmluZ1NlcnZpY2UgfSBmcm9tICIuL3Njb3JpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgRGVkdXBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICIuL2RlZHVwbGljYXRpb25TZXJ2aWNlIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOwppbXBvcnQgeyBab25lTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUm93RGF0YVBhY2tldCB9IGZyb20gIm15c3FsMiI7CmltcG9ydCB7IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbiB9IGZyb20gIi4uL3NjcmFwZXJzL2NhcGFiaWxpdGllcyI7CgovLyBNYXBhIGRlIG5vbWJyZSBkZSBjbGFzZSDihpIgY29uc3RydWN0b3IgZGUgc2NyYXBlciAoUGxheXdyaWdodCA+IENoZWVyaW8gcGFyYSBwb3J0YWxlcyBKUykKY29uc3QgU0NSQVBFUl9NQVA6IFJlY29yZDxzdHJpbmcsIG5ldyAoKSA9PiBhbnk+ID0gewogIElkZWFsaXN0YVNjcmFwZXI6IElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgLy8gYWxpYXMgbGVnYWN5IOKGkiBQbGF5d3JpZ2h0CiAgSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGF2ZSBkaXJlY3RhICh2YWxvciBhY3R1YWwgZW4gQkQpCiAgRm90b2Nhc2FTY3JhcGVyOiBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAvLyBhbGlhcyBsZWdhY3kg4oaSIFBsYXl3cmlnaHQKICBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsYXZlIGRpcmVjdGEgKHZhbG9yIGFjdHVhbCBlbiBCRCkKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn07Cgpjb25zdCBnZW9TZXJ2aWNlID0gbmV3IEdlb2NvZGluZ1NlcnZpY2UoKTsKY29uc3Qgc2NvcmluZ1NlcnZpY2UgPSBuZXcgU2NvcmluZ1NlcnZpY2UoKTsKY29uc3QgZGVkdXBsaWNhdGlvblNlcnZpY2UgPSBuZXcgRGVkdXBsaWNhdGlvblNlcnZpY2UoKTsKCmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlcnZpY2UgewogIGFzeW5jIGdldEFsbFByb3BlcnRpZXMoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICByZXR1cm4gUHJvcGVydHlNb2RlbC5maW5kQWxsKCk7CiAgfQoKICBhc3luYyBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoZmlsdGVyOiBQYXJ0aWFsPEZpbHRlcj4pOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIHJldHVybiBQcm9wZXJ0eU1vZGVsLmZpbHRlckFkdmFuY2VkKAogICAgICBmaWx0ZXIubWluX3ByaWNlLCBmaWx0ZXIubWF4X3ByaWNlLCBmaWx0ZXIucHJvcGVydHlfdHlwZSwKICAgICAgZmlsdGVyLm11bmljaXBhbGl0eSwgZmlsdGVyLm1pbl9yb29tcywgZmlsdGVyLm1pbl9zaXplX20yCiAgICApOwogIH0KCiAgYXN5bmMgZ2V0UHJvcGVydHlCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb3BlcnR5IHwgbnVsbD4gewogICAgcmV0dXJuIFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICB9CgogIGFzeW5jIGNyZWF0ZVByb3BlcnR5KHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHk+IHsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHByb3BlcnR5KTsKICAgIHJldHVybiBwcm9wZXJ0eTsKICB9CgogIGFzeW5jIHVwZGF0ZVByb3BlcnR5KGlkOiBzdHJpbmcsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHkgfCBudWxsPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBudWxsOwogICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cHNlcnQoeyAuLi5leGlzdGluZywgLi4ucHJvcGVydHkgfSk7CiAgICByZXR1cm4gcHJvcGVydHk7CiAgfQoKICBhc3luYyBkZWxldGVQcm9wZXJ0eShpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBmYWxzZTsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwuZGVsZXRlQnlJZChwYXJzZUludChpZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICBhc3luYyBzY3JhcGVBbGwob3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIC8vIENvbnN0cnVpciBsaXN0YSBkZSBzY3JhcGVycyBhY3Rpdm9zIHNlZ8O6biBsYSBCRCBkZSBwb3J0YWxlcwogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBrbm93blNjcmFwZXJDbGFzc2VzID0gc2NyYXBlckNsYXNzZXMuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKTsKICAgIGNvbnN0IGNvbXBhdGlibGVDbGFzc2VzID0ga25vd25TY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCB1bnN1cHBvcnRlZENsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+ICFzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCBzY3JhcGVycyA9IGNvbXBhdGlibGVDbGFzc2VzCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgVXNhbmRvICR7c2NyYXBlcnMubGVuZ3RofSBwb3J0YWxlcyBhY3Rpdm9zICgke29wZXJhdGlvblR5cGV9KTogJHtjb21wYXRpYmxlQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgaWYgKHVuc3VwcG9ydGVkQ2xhc3Nlcy5sZW5ndGggPiAwKSB7CiAgICAgIGJ1c0xvZygiaW5mbyIsIGBPbWl0aWRvcyBwb3Igbm8gc29wb3J0YXIgJHtvcGVyYXRpb25UeXBlfTogJHt1bnN1cHBvcnRlZENsYXNzZXMuam9pbigiLCAiKX1gKTsKICAgIH0KCiAgICBsZXQgdG90YWwgPSAwOwogICAgbGV0IG5ld19jb3VudCA9IDA7CiAgICBjb25zdCBzYXZlZElkczogbnVtYmVyW10gPSBbXTsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwoKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSB7IG5ld19jb3VudCsrOyBzYXZlZElkcy5wdXNoKHNhdmVkKTsgfQogICAgICAgIH0KCiAgICAgICAgLy8gQXJjaGl2YXIgYW51bmNpb3MgZGVsIHBvcnRhbCBxdWUgeWEgbm8gZXN0w6FuIHB1YmxpY2Fkb3MKICAgICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCkgewogICAgICAgICAgY29uc3Qgc3JjOiBzdHJpbmcgPSBzY3JhcGVyLnNvdXJjZSA/PyBwcm9wc1swXS5zb3VyY2U7CiAgICAgICAgICBjb25zdCBhcmNoaXZlZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuYXJjaGl2ZVN0YWxlQnlTb3VyY2Uoc3JjLCBvcGVyYXRpb25UeXBlLCBzY3JhcGVTdGFydGVkQXQpOwogICAgICAgICAgaWYgKGFyY2hpdmVkID4gMCkgYnVzTG9nKCJpbmZvIiwgYCR7YXJjaGl2ZWR9IGFudW5jaW8ocykgYXJjaGl2YWRvcyAoeWEgbm8gcHVibGljYWRvcylgLCBwb3J0YWxOYW1lKTsKICAgICAgICB9CgogICAgICAgIGJ1c0xvZygic3VjY2VzcyIsIGBDb21wbGV0YWRvOiAke3Byb3BzLmxlbmd0aH0gb2J0ZW5pZGFzLCAke25ld19jb3VudH0gZ3VhcmRhZGFzL2FjdHVhbGl6YWRhc2AsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZG9uZSIsIHRvdGFsOiBwcm9wcy5sZW5ndGgsIHNhdmVkOiBuZXdfY291bnQgfSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGJ1c0xvZygiZXJyb3IiLCBgRXJyb3I6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLCBwb3J0YWxOYW1lKTsKICAgICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImVycm9yIiwgbXNnOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlIH0pOwogICAgICB9CiAgICB9CgogICAgYnVzTG9nKCJzdWNjZXNzIiwgYFNjcmFwaW5nIGNvbXBsZXRhZG86ICR7dG90YWx9IHByb3BpZWRhZGVzIHByb2Nlc2FkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXMvYWN0dWFsaXphZGFzYCk7CgogICAgLy8gUG9zdC1wcm9jZXNhZG8gYXPDrW5jcm9ubzogc2NvcmluZyArIGRlZHVwbGljYWNpw7NuCiAgICB0aGlzLl9wb3N0UHJvY2VzcygpOwoKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBFamVjdXRhIGVsIHNjcmFwaW5nIGRlIFVOIMO6bmljbyBwb3J0YWwgcG9yIHN1IHNjcmFwZXJfY2xhc3MgKi8KICBhc3luYyBzY3JhcGVQb3J0YWwoc2NyYXBlckNsYXNzOiBzdHJpbmcsIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiA9ICJzYWxlIik6IFByb21pc2U8eyB0b3RhbDogbnVtYmVyOyBuZXdfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCBTY3JhcGVyQ3RvciA9IFNDUkFQRVJfTUFQW3NjcmFwZXJDbGFzc107CiAgICBpZiAoIVNjcmFwZXJDdG9yKSB0aHJvdyBuZXcgRXJyb3IoYFNjcmFwZXIgbm8gZW5jb250cmFkbzogJHtzY3JhcGVyQ2xhc3N9YCk7CiAgICBpZiAoIXN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihzY3JhcGVyQ2xhc3MsIG9wZXJhdGlvblR5cGUpKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgc2NyYXBlciAke3NjcmFwZXJDbGFzc30gbm8gc29wb3J0YSBsYSBvcGVyYWNpw7NuICcke29wZXJhdGlvblR5cGV9J2ApOwogICAgfQogICAgY29uc3Qgc2NyYXBlciA9IG5ldyBTY3JhcGVyQ3RvcigpLnNldE9wZXJhdGlvblR5cGUob3BlcmF0aW9uVHlwZSk7CiAgICBjb25zdCBwb3J0YWxOYW1lID0gc2NyYXBlckNsYXNzLnJlcGxhY2UoL1NjcmFwZXIkLywgIiIpLnJlcGxhY2UoL1BsYXl3cmlnaHQkLywgIiAoUGxheXdyaWdodCkiKTsKICAgIGJ1c0xvZygiaW5mbyIsIGBJbmljaWFuZG8gc2NyYXBpbmcuLi5gLCBwb3J0YWxOYW1lKTsKICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKCiAgICB0cnkgewogICAgICBjb25zdCBzY3JhcGVTdGFydGVkQXQgPSBuZXcgRGF0ZSgpOwogICAgICBjb25zdCBwcm9wczogUHJvcGVydHlbXSA9IGF3YWl0IHNjcmFwZXIuc2NyYXBlKCk7CiAgICAgIHRvdGFsID0gcHJvcHMubGVuZ3RoOwogICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlcyBkZWwgcG9ydGFsYCwgcG9ydGFsTmFtZSk7CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykgewogICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgIGlmIChzYXZlZCkgbmV3X2NvdW50Kys7CiAgICAgIH0KICAgICAgLy8gQXJjaGl2YXIgYW51bmNpb3MgZGVsIHBvcnRhbCBxdWUgeWEgbm8gZXN0w6FuIHB1YmxpY2Fkb3MKICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDApIHsKICAgICAgICBjb25zdCBzcmM6IHN0cmluZyA9IHNjcmFwZXIuc291cmNlID8/IHByb3BzWzBdLnNvdXJjZTsKICAgICAgICBjb25zdCBhcmNoaXZlZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuYXJjaGl2ZVN0YWxlQnlTb3VyY2Uoc3JjLCBvcGVyYXRpb25UeXBlLCBzY3JhcGVTdGFydGVkQXQpOwogICAgICAgIGlmIChhcmNoaXZlZCA+IDApIGJ1c0xvZygiaW5mbyIsIGAke2FyY2hpdmVkfSBhbnVuY2lvKHMpIGFyY2hpdmFkb3MgKHlhIG5vIHB1YmxpY2Fkb3MpYCwgcG9ydGFsTmFtZSk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGVycikgewogICAgICBidXNMb2coImVycm9yIiwgYEVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCwgcG9ydGFsTmFtZSk7CiAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICB9CgogICAgYnVzTG9nKCJzdWNjZXNzIiwgYENvbXBsZXRhZG86ICR7dG90YWx9IG9idGVuaWRhcywgJHtuZXdfY291bnR9IGd1YXJkYWRhc2AsIHBvcnRhbE5hbWUpOwogICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJkb25lIiwgdG90YWwsIHNhdmVkOiBuZXdfY291bnQgfSk7CiAgICB0aGlzLl9wb3N0UHJvY2Vzcyhwb3J0YWxOYW1lKTsKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBTY3JhcGluZyByZXN0cmluZ2lkbyBhIHVuYSDDum5pY2Egem9uYSBnZW9ncsOhZmljYSAodG9kb3MgbG9zIHBvcnRhbGVzIGFjdGl2b3MpICovCiAgYXN5bmMgc2NyYXBlQnlab25lKHpvbmVTbHVnOiBzdHJpbmcsIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiA9ICJzYWxlIik6IFByb21pc2U8eyB0b3RhbDogbnVtYmVyOyBuZXdfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCB6b25lID0gYXdhaXQgWm9uZU1vZGVsLmZpbmRCeVNsdWcoem9uZVNsdWcpOwogICAgaWYgKCF6b25lKSB0aHJvdyBuZXcgRXJyb3IoYFpvbmEgJyR7em9uZVNsdWd9JyBubyBlbmNvbnRyYWRhIGVuIGxhIGJhc2UgZGUgZGF0b3NgKTsKCiAgICBsZXQgc2NyYXBlckNsYXNzZXM6IHN0cmluZ1tdID0gW107CiAgICB0cnkgewogICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFjdGl2ZSgpOwogICAgICBzY3JhcGVyQ2xhc3NlcyA9IHBvcnRhbHMubWFwKHAgPT4gcC5zY3JhcGVyX2NsYXNzKTsKICAgIH0gY2F0Y2ggKF9lKSB7CiAgICAgIHNjcmFwZXJDbGFzc2VzID0gT2JqZWN0LmtleXMoU0NSQVBFUl9NQVApOwogICAgfQoKICAgIGNvbnN0IGtub3duU2NyYXBlckNsYXNzZXMgPSBzY3JhcGVyQ2xhc3Nlcy5maWx0ZXIoY2xzID0+IFNDUkFQRVJfTUFQW2Nsc10pOwogICAgY29uc3QgY29tcGF0aWJsZUNsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihjbHMsIG9wZXJhdGlvblR5cGUpKTsKICAgIGNvbnN0IHVuc3VwcG9ydGVkQ2xhc3NlcyA9IGtub3duU2NyYXBlckNsYXNzZXMKICAgICAgLmZpbHRlcihjbHMgPT4gIXN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihjbHMsIG9wZXJhdGlvblR5cGUpKTsKICAgIGNvbnN0IHNjcmFwZXJzID0gY29tcGF0aWJsZUNsYXNzZXMKICAgICAgLm1hcChjbHMgPT4gKG5ldyBTQ1JBUEVSX01BUFtjbHNdKCkpLnNldFpvbmVPdmVycmlkZShbem9uZV0pLnNldE9wZXJhdGlvblR5cGUob3BlcmF0aW9uVHlwZSkpOwoKICAgIGJ1c0xvZygiaW5mbyIsIGBTY3JhcGluZyB6b25hICIke3pvbmUubmFtZX0iIOKAlCAke3NjcmFwZXJzLmxlbmd0aH0gcG9ydGFsZXNgKTsKICAgIGlmICh1bnN1cHBvcnRlZENsYXNzZXMubGVuZ3RoID4gMCkgewogICAgICBidXNMb2coImluZm8iLCBgT21pdGlkb3MgcG9yIG5vIHNvcG9ydGFyICR7b3BlcmF0aW9uVHlwZX06ICR7dW5zdXBwb3J0ZWRDbGFzc2VzLmpvaW4oIiwgIil9YCk7CiAgICB9CgogICAgbGV0IHRvdGFsID0gMDsKICAgIGxldCBuZXdfY291bnQgPSAwOwoKICAgIGZvciAoY29uc3Qgc2NyYXBlciBvZiBzY3JhcGVycykgewogICAgICBjb25zdCBwb3J0YWxOYW1lOiBzdHJpbmcgPSBzY3JhcGVyLmNvbnN0cnVjdG9yPy5uYW1lID8/ICJTY3JhcGVyIjsKICAgICAgdHJ5IHsKICAgICAgICBidXNMb2coImluZm8iLCBgSW5pY2lhbmRvIHNjcmFwaW5nLi4uYCwgcG9ydGFsTmFtZSk7CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJzdGFydCIgfSk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwogICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykgewogICAgICAgICAgY29uc3Qgc2F2ZWQgPSBhd2FpdCB0aGlzLl9zYXZlUHJvcGVydHkocHJvcCk7CiAgICAgICAgICBpZiAoc2F2ZWQpIG5ld19jb3VudCsrOwogICAgICAgIH0KICAgICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImRvbmUiLCB0b3RhbDogcHJvcHMubGVuZ3RoLCBzYXZlZDogbmV3X2NvdW50IH0pOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBidXNMb2coImVycm9yIiwgYEVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCwgcG9ydGFsTmFtZSk7CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJlcnJvciIsIG1zZzogKGVyciBhcyBFcnJvcikubWVzc2FnZSB9KTsKICAgICAgfQogICAgfQoKICAgIGJ1c0xvZygic3VjY2VzcyIsIGBab25hICIke3pvbmUubmFtZX0iIGNvbXBsZXRhZGE6ICR7dG90YWx9IHByb3BpZWRhZGVzIHByb2Nlc2FkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXNgKTsKICAgIHRoaXMuX3Bvc3RQcm9jZXNzKGB6b25hOiR7em9uZS5uYW1lfWApOwogICAgcmV0dXJuIHsgdG90YWwsIG5ld19jb3VudCB9OwogIH0KCiAgLyoqIFJlLWdlb2NvZGlmaWNhIHByb3BpZWRhZGVzIHF1ZSB0aWVuZW4gY29vcmRlbmFkYXMgZGUgY2VudHJvIGRlIG11bmljaXBpbyBleGFjdGFzICovCiAgYXN5bmMgcmVHZW9jb2RlQWxsKCk6IFByb21pc2U8eyB1cGRhdGVkOiBudW1iZXIgfT4gewogICAgLy8gVXNhciBjZW50cm9zIGRlIHpvbmEgZGVzZGUgbGEgQkQgZW4gbHVnYXIgZGUgdmFsb3JlcyBoYXJkY29kZWFkb3MKICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgWm9uZU1vZGVsLmZpbmRBY3RpdmUoKTsKICAgIGNvbnN0IGNlbnRlckNvb3JkcyA9IHpvbmVzLm1hcCh6ID0+IFt6LmxhdCwgei5sbmddIGFzIFtudW1iZXIsIG51bWJlcl0pOwogICAgY29uc3QgaXNDZW50ZXIgPSAobGF0OiBudW1iZXIsIGxuZzogbnVtYmVyKSA9PgogICAgICBjZW50ZXJDb29yZHMuc29tZSgoW2xhLCBsbl0pID0+IE1hdGguYWJzKGxhIC0gbGF0KSA8IDAuMDAwMSAmJiBNYXRoLmFicyhsbiAtIGxuZykgPCAwLjAwMDEpOwoKICAgIGNvbnN0IGFsbCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEFsbCgpOwogICAgbGV0IHVwZGF0ZWQgPSAwOwogICAgZm9yIChjb25zdCBwcm9wIG9mIGFsbCkgewogICAgICB0cnkgewogICAgICAgIGlmICghcHJvcC5sYXQgfHwgIXByb3AubG5nIHx8IGlzQ2VudGVyKHByb3AubGF0LCBwcm9wLmxuZykpIHsKICAgICAgICAgIGNvbnN0IGdlb1F1ZXJ5ID0gW3Byb3AubG9jYXRpb24sIHByb3AubXVuaWNpcGFsaXR5LCAiVmFsZW5jaWEiLCAiRXNwYcOxYSJdCiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpLmpvaW4oIiwgIik7CiAgICAgICAgICBsZXQgZ2VvOiB7IGxhdDogbnVtYmVyOyBsbmc6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdldENvb3JkaW5hdGVzKGdlb1F1ZXJ5KTsKICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICBpZiAocHJvcC5tdW5pY2lwYWxpdHkpIHsKICAgICAgICAgICAgICBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdlb2NvZGVNdW5pY2lwYWxpdHkocHJvcC5tdW5pY2lwYWxpdHkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZ2VvKSB7CiAgICAgICAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHsgLi4ucHJvcCwgbGF0OiBnZW8ubGF0LCBsbmc6IGdlby5sbmcgfSk7CiAgICAgICAgICAgIHVwZGF0ZWQrKzsKICAgICAgICAgIH0KICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxMTAwKSk7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChfZSkgeyAvKiBza2lwICovIH0KICAgIH0KICAgIHJldHVybiB7IHVwZGF0ZWQgfTsKICB9CgogIC8vIOKUgOKUgOKUgCBIZWxwZXJzIHByaXZhZG9zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAoKICAvKiogR2VvY29kaWZpY2Egc2kgZmFsdGEsIGNhbGN1bGEgcHJlY2lvL23CsiwgZ3VhcmRhIGVuIEJEIHkgcmVnaXN0cmEgaGlzdG9yaWFsLgogICAqICBEZXZ1ZWx2ZSBlbCBJRCBndWFyZGFkbyBvIG51bGwgc2kgaHVibyBlcnJvciAoZHVwbGljYWRvIHUgb3RybykuICovCiAgcHJpdmF0ZSBhc3luYyBfc2F2ZVByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogUHJvbWlzZTxudW1iZXIgfCBudWxsPiB7CiAgICB0cnkgewogICAgICBpZiAoIXByb3AubGF0ICYmICFwcm9wLmxuZykgewogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBnZW9RdWVyeSA9IChbcHJvcC5sb2NhdGlvbiwgcHJvcC5tdW5pY2lwYWxpdHksICJWYWxlbmNpYSIsICJFc3Bhw7FhIl0gYXMgc3RyaW5nW10pCiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpLmpvaW4oIiwgIik7CiAgICAgICAgICBjb25zdCBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdldENvb3JkaW5hdGVzKGdlb1F1ZXJ5KTsKICAgICAgICAgIHByb3AubGF0ID0gZ2VvLmxhdDsKICAgICAgICAgIHByb3AubG5nID0gZ2VvLmxuZzsKICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgIGlmIChwcm9wLm11bmljaXBhbGl0eSkgewogICAgICAgICAgICBjb25zdCBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdlb2NvZGVNdW5pY2lwYWxpdHkocHJvcC5tdW5pY2lwYWxpdHkpOwogICAgICAgICAgICBpZiAoZ2VvKSB7IHByb3AubGF0ID0gZ2VvLmxhdDsgcHJvcC5sbmcgPSBnZW8ubG5nOyB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChwcm9wLnByaWNlID4gMCAmJiAocHJvcC5zaXplX20yIHx8IDApID4gMCkgewogICAgICAgIChwcm9wIGFzIGFueSkucHJpY2VfcGVyX20yID0gTWF0aC5yb3VuZChwcm9wLnByaWNlIC8gcHJvcC5zaXplX20yISk7CiAgICAgIH0KICAgICAgY29uc3Qgc2F2ZWRJZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHByb3ApOwogICAgICBpZiAoc2F2ZWRJZCAmJiBwcm9wLnByaWNlID4gMCkgewogICAgICAgIGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLnJlY29yZElmQ2hhbmdlZChzYXZlZElkLCBwcm9wLnByaWNlKTsKICAgICAgfQogICAgICByZXR1cm4gc2F2ZWRJZCA/PyBudWxsOwogICAgfSBjYXRjaCB7CiAgICAgIHJldHVybiBudWxsOyAvLyBza2lwIGR1cGxpY2F0ZXMgLyBjb25zdHJhaW50IGVycm9ycwogICAgfQogIH0KCiAgLyoqIExhbnphIHNjb3JpbmcgKyBkZWR1cGxpY2FjacOzbiBkZSBmb3JtYSBhc8OtbmNyb25hIHNpbiBibG9xdWVhciBsYSByZXNwdWVzdGEgKi8KICBwcml2YXRlIF9wb3N0UHJvY2VzcyhsYWJlbCA9ICIiKTogdm9pZCB7CiAgICBzZXRJbW1lZGlhdGUoYXN5bmMgKCkgPT4gewogICAgICB0cnkgewogICAgICAgIGJ1c0xvZygiaW5mbyIsICJDYWxjdWxhbmRvIHNjb3Jlcy4uLiIsIGxhYmVsKTsKICAgICAgICBhd2FpdCBzY29yaW5nU2VydmljZS5zY29yZUFsbCgpOwogICAgICAgIGJ1c0xvZygiaW5mbyIsICJFamVjdXRhbmRvIGRlZHVwbGljYWNpw7NuLi4uIiwgbGFiZWwpOwogICAgICAgIGF3YWl0IGRlZHVwbGljYXRpb25TZXJ2aWNlLnJlc2V0RHVwbGljYXRlcygpOwogICAgICAgIGF3YWl0IGRlZHVwbGljYXRpb25TZXJ2aWNlLnJ1bkRlZHVwbGljYXRpb24oKTsKICAgICAgICBidXNMb2coInN1Y2Nlc3MiLCAiUG9zdC1wcm9jZXNhZG8gY29tcGxldGFkbyDinIUiLCBsYWJlbCk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGJ1c0xvZygiZXJyb3IiLCBgW1Bvc3Qtc2NyYXBpbmddIEVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCwgbGFiZWwpOwogICAgICB9CiAgICB9KTsKICB9CgogIC8qKiBEYXRvcyBkZSBhbmFseXRpY3MgcGFyYSBlbCBkYXNoYm9hcmQgKi8KICBhc3luYyBnZXRBbmFseXRpY3MoKTogUHJvbWlzZTxhbnk+IHsKICAgIGNvbnN0IFtieVBvcnRhbF0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYAogICAgICBTRUxFQ1Qgc291cmNlLCBDT1VOVCgqKSBBUyBjb3VudCwgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UsIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIKICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2R1cGxpY2F0ZSA9IDAgT1IgaXNfZHVwbGljYXRlIElTIE5VTEwKICAgICAgR1JPVVAgQlkgc291cmNlIE9SREVSIEJZIGNvdW50IERFU0MKICAgIGApOwoKICAgIGNvbnN0IFtieU11bmldID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIG11bmljaXBhbGl0eSwgQ09VTlQoKikgQVMgY291bnQsIEFWRyhwcmljZSkgQVMgYXZnX3ByaWNlLAogICAgICAgICAgICAgQVZHKHByaWNlX3Blcl9tMikgQVMgYXZnX3BtMiwgQVZHKHNjb3JlKSBBUyBhdmdfc2NvcmUKICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2R1cGxpY2F0ZSA9IDAgT1IgaXNfZHVwbGljYXRlIElTIE5VTEwKICAgICAgR1JPVVAgQlkgbXVuaWNpcGFsaXR5IE9SREVSIEJZIGNvdW50IERFU0MKICAgIGApOwoKICAgIGNvbnN0IFtieVR5cGVdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIHByb3BlcnR5X3R5cGUsIENPVU5UKCopIEFTIGNvdW50LCBBVkcocHJpY2UpIEFTIGF2Z19wcmljZQogICAgICBGUk9NIHByb3BlcnRpZXMgV0hFUkUgaXNfZHVwbGljYXRlID0gMCBPUiBpc19kdXBsaWNhdGUgSVMgTlVMTAogICAgICBHUk9VUCBCWSBwcm9wZXJ0eV90eXBlIE9SREVSIEJZIGNvdW50IERFU0MKICAgIGApOwoKICAgIGNvbnN0IFtzdW1tYXJ5XSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwKICAgICAgICAgICAgIENPVU5UKENBU0UgV0hFTiBpc19kdXBsaWNhdGUgPSAxIFRIRU4gMSBFTkQpIEFTIGR1cGxpY2F0ZXMsCiAgICAgICAgICAgICBBVkcocHJpY2UpIEFTIGF2Z19wcmljZSwgQVZHKHByaWNlX3Blcl9tMikgQVMgYXZnX3BtMiwKICAgICAgICAgICAgIEFWRyhzY29yZSkgQVMgYXZnX3Njb3JlLAogICAgICAgICAgICAgTUlOKHByaWNlKSBBUyBtaW5fcHJpY2UsIE1BWChwcmljZSkgQVMgbWF4X3ByaWNlLAogICAgICAgICAgICAgKFNFTEVDVCBDT1VOVCgqKSBGUk9NIHByaWNlX2hpc3RvcnkpIEFTIHByaWNlX3JlY29yZHMKICAgICAgRlJPTSBwcm9wZXJ0aWVzCiAgICBgKTsKCiAgICBjb25zdCBwcmljZURyb3BzID0gYXdhaXQgUHJpY2VIaXN0b3J5TW9kZWwuZ2V0UHJpY2VEcm9wU3RhdHMoKTsKICAgIGNvbnN0IHByaWNlT3ZlclRpbWUgPSBhd2FpdCBQcmljZUhpc3RvcnlNb2RlbC5nZXRPdmVyYWxsVHJlbmQoOTApOwoKICAgIHJldHVybiB7CiAgICAgIHN1bW1hcnk6IHN1bW1hcnlbMF0sCiAgICAgIGJ5UG9ydGFsLCBieU11bmksIGJ5VHlwZSwKICAgICAgcHJpY2VEcm9wcywgcHJpY2VPdmVyVGltZSwKICAgIH07CiAgfQp9CgpleHBvcnQgZGVmYXVsdCBuZXcgUHJvcGVydHlTZXJ2aWNlKCk7Cg==","afterExisted":true,"afterHash":"fa0014e4b21f696aed24f6ebb75691ec67fd23e55642ee288da3479060ff70d4","afterContent":"aW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKaW1wb3J0IHsgYnVzTG9nLCBzY3JhcGVyQnVzIH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKaW1wb3J0IHsKICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwgRm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlciwKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn0gZnJvbSAiLi4vc2NyYXBlcnMvaW5kZXgiOwppbXBvcnQgeyBHZW9jb2RpbmdTZXJ2aWNlIH0gZnJvbSAiLi9nZW9jb2RpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgU2NvcmluZ1NlcnZpY2UgfSBmcm9tICIuL3Njb3JpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgRGVkdXBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICIuL2RlZHVwbGljYXRpb25TZXJ2aWNlIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOwppbXBvcnQgeyBab25lTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUm93RGF0YVBhY2tldCB9IGZyb20gIm15c3FsMiI7CmltcG9ydCB7IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbiB9IGZyb20gIi4uL3NjcmFwZXJzL2NhcGFiaWxpdGllcyI7CgovLyBNYXBhIGRlIG5vbWJyZSBkZSBjbGFzZSDihpIgY29uc3RydWN0b3IgZGUgc2NyYXBlciAoUGxheXdyaWdodCA+IENoZWVyaW8gcGFyYSBwb3J0YWxlcyBKUykKY29uc3QgU0NSQVBFUl9NQVA6IFJlY29yZDxzdHJpbmcsIG5ldyAoKSA9PiBhbnk+ID0gewogIElkZWFsaXN0YVNjcmFwZXI6IElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgLy8gYWxpYXMgbGVnYWN5IOKGkiBQbGF5d3JpZ2h0CiAgSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGF2ZSBkaXJlY3RhICh2YWxvciBhY3R1YWwgZW4gQkQpCiAgRm90b2Nhc2FTY3JhcGVyOiBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAvLyBhbGlhcyBsZWdhY3kg4oaSIFBsYXl3cmlnaHQKICBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsYXZlIGRpcmVjdGEgKHZhbG9yIGFjdHVhbCBlbiBCRCkKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn07Cgpjb25zdCBnZW9TZXJ2aWNlID0gbmV3IEdlb2NvZGluZ1NlcnZpY2UoKTsKY29uc3Qgc2NvcmluZ1NlcnZpY2UgPSBuZXcgU2NvcmluZ1NlcnZpY2UoKTsKY29uc3QgZGVkdXBsaWNhdGlvblNlcnZpY2UgPSBuZXcgRGVkdXBsaWNhdGlvblNlcnZpY2UoKTsKCmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlcnZpY2UgewogIGFzeW5jIGdldEFsbFByb3BlcnRpZXMoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICByZXR1cm4gUHJvcGVydHlNb2RlbC5maW5kQWxsKCk7CiAgfQoKICBhc3luYyBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoZmlsdGVyOiBQYXJ0aWFsPEZpbHRlcj4pOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIHJldHVybiBQcm9wZXJ0eU1vZGVsLmZpbHRlckFkdmFuY2VkKAogICAgICBmaWx0ZXIubWluX3ByaWNlLCBmaWx0ZXIubWF4X3ByaWNlLCBmaWx0ZXIucHJvcGVydHlfdHlwZSwKICAgICAgZmlsdGVyLm11bmljaXBhbGl0eSwgZmlsdGVyLm1pbl9yb29tcywgZmlsdGVyLm1pbl9zaXplX20yCiAgICApOwogIH0KCiAgYXN5bmMgZ2V0UHJvcGVydHlCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb3BlcnR5IHwgbnVsbD4gewogICAgcmV0dXJuIFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICB9CgogIGFzeW5jIGNyZWF0ZVByb3BlcnR5KHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHk+IHsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHByb3BlcnR5KTsKICAgIHJldHVybiBwcm9wZXJ0eTsKICB9CgogIGFzeW5jIHVwZGF0ZVByb3BlcnR5KGlkOiBzdHJpbmcsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHkgfCBudWxsPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBudWxsOwogICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cHNlcnQoeyAuLi5leGlzdGluZywgLi4ucHJvcGVydHkgfSk7CiAgICByZXR1cm4gcHJvcGVydHk7CiAgfQoKICBhc3luYyBkZWxldGVQcm9wZXJ0eShpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBmYWxzZTsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwuZGVsZXRlQnlJZChwYXJzZUludChpZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICBhc3luYyBzY3JhcGVBbGwob3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIC8vIENvbnN0cnVpciBsaXN0YSBkZSBzY3JhcGVycyBhY3Rpdm9zIHNlZ8O6biBsYSBCRCBkZSBwb3J0YWxlcwogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBrbm93blNjcmFwZXJDbGFzc2VzID0gc2NyYXBlckNsYXNzZXMuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKTsKICAgIGNvbnN0IGNvbXBhdGlibGVDbGFzc2VzID0ga25vd25TY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCB1bnN1cHBvcnRlZENsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+ICFzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCBzY3JhcGVycyA9IGNvbXBhdGlibGVDbGFzc2VzCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgVXNhbmRvICR7c2NyYXBlcnMubGVuZ3RofSBwb3J0YWxlcyBhY3Rpdm9zICgke29wZXJhdGlvblR5cGV9KTogJHtjb21wYXRpYmxlQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgaWYgKHVuc3VwcG9ydGVkQ2xhc3Nlcy5sZW5ndGggPiAwKSB7CiAgICAgIGJ1c0xvZygiaW5mbyIsIGBPbWl0aWRvcyBwb3Igbm8gc29wb3J0YXIgJHtvcGVyYXRpb25UeXBlfTogJHt1bnN1cHBvcnRlZENsYXNzZXMuam9pbigiLCAiKX1gKTsKICAgIH0KCiAgICBsZXQgdG90YWwgPSAwOwogICAgbGV0IG5ld19jb3VudCA9IDA7CiAgICBjb25zdCBzYXZlZElkczogbnVtYmVyW10gPSBbXTsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwoKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSB7IG5ld19jb3VudCsrOyBzYXZlZElkcy5wdXNoKHNhdmVkKTsgfQogICAgICAgIH0KCiAgICAgICAgLy8gQXJjaGl2YXIgYW51bmNpb3MgZGVsIHBvcnRhbCBxdWUgeWEgbm8gZXN0w6FuIHB1YmxpY2Fkb3MKICAgICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCAmJiAhc2NyYXBlci5pc1BhcnRpYWxDb3ZlcmFnZSgpKSB7CiAgICAgICAgICBjb25zdCBzcmM6IHN0cmluZyA9IHNjcmFwZXIuc291cmNlID8/IHByb3BzWzBdLnNvdXJjZTsKICAgICAgICAgIGNvbnN0IGFyY2hpdmVkID0gYXdhaXQgUHJvcGVydHlNb2RlbC5hcmNoaXZlU3RhbGVCeVNvdXJjZShzcmMsIG9wZXJhdGlvblR5cGUsIHNjcmFwZVN0YXJ0ZWRBdCk7CiAgICAgICAgICBpZiAoYXJjaGl2ZWQgPiAwKSBidXNMb2coImluZm8iLCBgJHthcmNoaXZlZH0gYW51bmNpbyhzKSBhcmNoaXZhZG9zICh5YSBubyBwdWJsaWNhZG9zKWAsIHBvcnRhbE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgYnVzTG9nKCJzdWNjZXNzIiwgYENvbXBsZXRhZG86ICR7cHJvcHMubGVuZ3RofSBvYnRlbmlkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXMvYWN0dWFsaXphZGFzYCwgcG9ydGFsTmFtZSk7CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJkb25lIiwgdG90YWw6IHByb3BzLmxlbmd0aCwgc2F2ZWQ6IG5ld19jb3VudCB9KTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidXNMb2coInN1Y2Nlc3MiLCBgU2NyYXBpbmcgY29tcGxldGFkbzogJHt0b3RhbH0gcHJvcGllZGFkZXMgcHJvY2VzYWRhcywgJHtuZXdfY291bnR9IGd1YXJkYWRhcy9hY3R1YWxpemFkYXNgKTsKCiAgICAvLyBQb3N0LXByb2Nlc2FkbyBhc8OtbmNyb25vOiBzY29yaW5nICsgZGVkdXBsaWNhY2nDs24KICAgIHRoaXMuX3Bvc3RQcm9jZXNzKCk7CgogICAgcmV0dXJuIHsgdG90YWwsIG5ld19jb3VudCB9OwogIH0KCiAgLyoqIEVqZWN1dGEgZWwgc2NyYXBpbmcgZGUgVU4gw7puaWNvIHBvcnRhbCBwb3Igc3Ugc2NyYXBlcl9jbGFzcyAqLwogIGFzeW5jIHNjcmFwZVBvcnRhbChzY3JhcGVyQ2xhc3M6IHN0cmluZywgb3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IFNjcmFwZXJDdG9yID0gU0NSQVBFUl9NQVBbc2NyYXBlckNsYXNzXTsKICAgIGlmICghU2NyYXBlckN0b3IpIHRocm93IG5ldyBFcnJvcihgU2NyYXBlciBubyBlbmNvbnRyYWRvOiAke3NjcmFwZXJDbGFzc31gKTsKICAgIGlmICghc3VwcG9ydHNTY3JhcGVyT3BlcmF0aW9uKHNjcmFwZXJDbGFzcywgb3BlcmF0aW9uVHlwZSkpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBzY3JhcGVyICR7c2NyYXBlckNsYXNzfSBubyBzb3BvcnRhIGxhIG9wZXJhY2nDs24gJyR7b3BlcmF0aW9uVHlwZX0nYCk7CiAgICB9CiAgICBjb25zdCBzY3JhcGVyID0gbmV3IFNjcmFwZXJDdG9yKCkuc2V0T3BlcmF0aW9uVHlwZShvcGVyYXRpb25UeXBlKTsKICAgIGNvbnN0IHBvcnRhbE5hbWUgPSBzY3JhcGVyQ2xhc3MucmVwbGFjZSgvU2NyYXBlciQvLCAiIikucmVwbGFjZSgvUGxheXdyaWdodCQvLCAiIChQbGF5d3JpZ2h0KSIpOwogICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJzdGFydCIgfSk7CgogICAgbGV0IHRvdGFsID0gMDsKICAgIGxldCBuZXdfY291bnQgPSAwOwoKICAgIHRyeSB7CiAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoKTsKICAgICAgdG90YWwgPSBwcm9wcy5sZW5ndGg7CiAgICAgIGJ1c0xvZygiaW5mbyIsIGBPYnRlbmlkYXMgJHtwcm9wcy5sZW5ndGh9IHByb3BpZWRhZGVzIGRlbCBwb3J0YWxgLCBwb3J0YWxOYW1lKTsKICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BzKSB7CiAgICAgICAgY29uc3Qgc2F2ZWQgPSBhd2FpdCB0aGlzLl9zYXZlUHJvcGVydHkocHJvcCk7CiAgICAgICAgaWYgKHNhdmVkKSBuZXdfY291bnQrKzsKICAgICAgfQogICAgICAvLyBBcmNoaXZhciBhbnVuY2lvcyBkZWwgcG9ydGFsIHF1ZSB5YSBubyBlc3TDoW4gcHVibGljYWRvcwogICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCAmJiAhc2NyYXBlci5pc1BhcnRpYWxDb3ZlcmFnZSgpKSB7CiAgICAgICAgY29uc3Qgc3JjOiBzdHJpbmcgPSBzY3JhcGVyLnNvdXJjZSA/PyBwcm9wc1swXS5zb3VyY2U7CiAgICAgICAgY29uc3QgYXJjaGl2ZWQgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmFyY2hpdmVTdGFsZUJ5U291cmNlKHNyYywgb3BlcmF0aW9uVHlwZSwgc2NyYXBlU3RhcnRlZEF0KTsKICAgICAgICBpZiAoYXJjaGl2ZWQgPiAwKSBidXNMb2coImluZm8iLCBgJHthcmNoaXZlZH0gYW51bmNpbyhzKSBhcmNoaXZhZG9zICh5YSBubyBwdWJsaWNhZG9zKWAsIHBvcnRhbE5hbWUpOwogICAgICB9CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImVycm9yIiwgbXNnOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlIH0pOwogICAgfQoKICAgIGJ1c0xvZygic3VjY2VzcyIsIGBDb21wbGV0YWRvOiAke3RvdGFsfSBvYnRlbmlkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXNgLCBwb3J0YWxOYW1lKTsKICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZG9uZSIsIHRvdGFsLCBzYXZlZDogbmV3X2NvdW50IH0pOwogICAgdGhpcy5fcG9zdFByb2Nlc3MocG9ydGFsTmFtZSk7CiAgICByZXR1cm4geyB0b3RhbCwgbmV3X2NvdW50IH07CiAgfQoKICAvKiogU2NyYXBpbmcgcmVzdHJpbmdpZG8gYSB1bmEgw7puaWNhIHpvbmEgZ2VvZ3LDoWZpY2EgKHRvZG9zIGxvcyBwb3J0YWxlcyBhY3Rpdm9zKSAqLwogIGFzeW5jIHNjcmFwZUJ5Wm9uZSh6b25lU2x1Zzogc3RyaW5nLCBvcGVyYXRpb25UeXBlOiAic2FsZSIgfCAicmVudCIgPSAic2FsZSIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgbmV3X2NvdW50OiBudW1iZXIgfT4gewogICAgY29uc3Qgem9uZSA9IGF3YWl0IFpvbmVNb2RlbC5maW5kQnlTbHVnKHpvbmVTbHVnKTsKICAgIGlmICghem9uZSkgdGhyb3cgbmV3IEVycm9yKGBab25hICcke3pvbmVTbHVnfScgbm8gZW5jb250cmFkYSBlbiBsYSBiYXNlIGRlIGRhdG9zYCk7CgogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBrbm93blNjcmFwZXJDbGFzc2VzID0gc2NyYXBlckNsYXNzZXMuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKTsKICAgIGNvbnN0IGNvbXBhdGlibGVDbGFzc2VzID0ga25vd25TY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCB1bnN1cHBvcnRlZENsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+ICFzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCBzY3JhcGVycyA9IGNvbXBhdGlibGVDbGFzc2VzCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRab25lT3ZlcnJpZGUoW3pvbmVdKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgU2NyYXBpbmcgem9uYSAiJHt6b25lLm5hbWV9IiDigJQgJHtzY3JhcGVycy5sZW5ndGh9IHBvcnRhbGVzYCk7CiAgICBpZiAodW5zdXBwb3J0ZWRDbGFzc2VzLmxlbmd0aCA+IDApIHsKICAgICAgYnVzTG9nKCJpbmZvIiwgYE9taXRpZG9zIHBvciBubyBzb3BvcnRhciAke29wZXJhdGlvblR5cGV9OiAke3Vuc3VwcG9ydGVkQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgfQoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoKTsKICAgICAgICB0b3RhbCArPSBwcm9wcy5sZW5ndGg7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYE9idGVuaWRhcyAke3Byb3BzLmxlbmd0aH0gcHJvcGllZGFkZXNgLCBwb3J0YWxOYW1lKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSBuZXdfY291bnQrKzsKICAgICAgICB9CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJkb25lIiwgdG90YWw6IHByb3BzLmxlbmd0aCwgc2F2ZWQ6IG5ld19jb3VudCB9KTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidXNMb2coInN1Y2Nlc3MiLCBgWm9uYSAiJHt6b25lLm5hbWV9IiBjb21wbGV0YWRhOiAke3RvdGFsfSBwcm9waWVkYWRlcyBwcm9jZXNhZGFzLCAke25ld19jb3VudH0gZ3VhcmRhZGFzYCk7CiAgICB0aGlzLl9wb3N0UHJvY2Vzcyhgem9uYToke3pvbmUubmFtZX1gKTsKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBSZS1nZW9jb2RpZmljYSBwcm9waWVkYWRlcyBxdWUgdGllbmVuIGNvb3JkZW5hZGFzIGRlIGNlbnRybyBkZSBtdW5pY2lwaW8gZXhhY3RhcyAqLwogIGFzeW5jIHJlR2VvY29kZUFsbCgpOiBQcm9taXNlPHsgdXBkYXRlZDogbnVtYmVyIH0+IHsKICAgIC8vIFVzYXIgY2VudHJvcyBkZSB6b25hIGRlc2RlIGxhIEJEIGVuIGx1Z2FyIGRlIHZhbG9yZXMgaGFyZGNvZGVhZG9zCiAgICBjb25zdCB6b25lcyA9IGF3YWl0IFpvbmVNb2RlbC5maW5kQWN0aXZlKCk7CiAgICBjb25zdCBjZW50ZXJDb29yZHMgPSB6b25lcy5tYXAoeiA9PiBbei5sYXQsIHoubG5nXSBhcyBbbnVtYmVyLCBudW1iZXJdKTsKICAgIGNvbnN0IGlzQ2VudGVyID0gKGxhdDogbnVtYmVyLCBsbmc6IG51bWJlcikgPT4KICAgICAgY2VudGVyQ29vcmRzLnNvbWUoKFtsYSwgbG5dKSA9PiBNYXRoLmFicyhsYSAtIGxhdCkgPCAwLjAwMDEgJiYgTWF0aC5hYnMobG4gLSBsbmcpIDwgMC4wMDAxKTsKCiAgICBjb25zdCBhbGwgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmZpbmRBbGwoKTsKICAgIGxldCB1cGRhdGVkID0gMDsKICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGwpIHsKICAgICAgdHJ5IHsKICAgICAgICBpZiAoIXByb3AubGF0IHx8ICFwcm9wLmxuZyB8fCBpc0NlbnRlcihwcm9wLmxhdCwgcHJvcC5sbmcpKSB7CiAgICAgICAgICBjb25zdCBnZW9RdWVyeSA9IFtwcm9wLmxvY2F0aW9uLCBwcm9wLm11bmljaXBhbGl0eSwgIlZhbGVuY2lhIiwgIkVzcGHDsWEiXQogICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKS5qb2luKCIsICIpOwogICAgICAgICAgbGV0IGdlbzogeyBsYXQ6IG51bWJlcjsgbG5nOiBudW1iZXIgfSB8IG51bGwgPSBudWxsOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZXRDb29yZGluYXRlcyhnZW9RdWVyeSk7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgaWYgKHByb3AubXVuaWNpcGFsaXR5KSB7CiAgICAgICAgICAgICAgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZW9jb2RlTXVuaWNpcGFsaXR5KHByb3AubXVuaWNpcGFsaXR5KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGdlbykgewogICAgICAgICAgICBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydCh7IC4uLnByb3AsIGxhdDogZ2VvLmxhdCwgbG5nOiBnZW8ubG5nIH0pOwogICAgICAgICAgICB1cGRhdGVkKys7CiAgICAgICAgICB9CiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMTEwMCkpOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoX2UpIHsgLyogc2tpcCAqLyB9CiAgICB9CiAgICByZXR1cm4geyB1cGRhdGVkIH07CiAgfQoKICAvLyDilIDilIDilIAgSGVscGVycyBwcml2YWRvcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKCiAgLyoqIEdlb2NvZGlmaWNhIHNpIGZhbHRhLCBjYWxjdWxhIHByZWNpby9twrIsIGd1YXJkYSBlbiBCRCB5IHJlZ2lzdHJhIGhpc3RvcmlhbC4KICAgKiAgRGV2dWVsdmUgZWwgSUQgZ3VhcmRhZG8gbyBudWxsIHNpIGh1Ym8gZXJyb3IgKGR1cGxpY2FkbyB1IG90cm8pLiAqLwogIHByaXZhdGUgYXN5bmMgX3NhdmVQcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IFByb21pc2U8bnVtYmVyIHwgbnVsbD4gewogICAgdHJ5IHsKICAgICAgaWYgKCFwcm9wLmxhdCAmJiAhcHJvcC5sbmcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgY29uc3QgZ2VvUXVlcnkgPSAoW3Byb3AubG9jYXRpb24sIHByb3AubXVuaWNpcGFsaXR5LCAiVmFsZW5jaWEiLCAiRXNwYcOxYSJdIGFzIHN0cmluZ1tdKQogICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKS5qb2luKCIsICIpOwogICAgICAgICAgY29uc3QgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZXRDb29yZGluYXRlcyhnZW9RdWVyeSk7CiAgICAgICAgICBwcm9wLmxhdCA9IGdlby5sYXQ7CiAgICAgICAgICBwcm9wLmxuZyA9IGdlby5sbmc7CiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICBpZiAocHJvcC5tdW5pY2lwYWxpdHkpIHsKICAgICAgICAgICAgY29uc3QgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZW9jb2RlTXVuaWNpcGFsaXR5KHByb3AubXVuaWNpcGFsaXR5KTsKICAgICAgICAgICAgaWYgKGdlbykgeyBwcm9wLmxhdCA9IGdlby5sYXQ7IHByb3AubG5nID0gZ2VvLmxuZzsgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBpZiAocHJvcC5wcmljZSA+IDAgJiYgKHByb3Auc2l6ZV9tMiB8fCAwKSA+IDApIHsKICAgICAgICAocHJvcCBhcyBhbnkpLnByaWNlX3Blcl9tMiA9IE1hdGgucm91bmQocHJvcC5wcmljZSAvIHByb3Auc2l6ZV9tMiEpOwogICAgICB9CiAgICAgIGNvbnN0IHNhdmVkSWQgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydChwcm9wKTsKICAgICAgaWYgKHNhdmVkSWQgJiYgcHJvcC5wcmljZSA+IDApIHsKICAgICAgICBhd2FpdCBQcmljZUhpc3RvcnlNb2RlbC5yZWNvcmRJZkNoYW5nZWQoc2F2ZWRJZCwgcHJvcC5wcmljZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHNhdmVkSWQgPz8gbnVsbDsKICAgIH0gY2F0Y2ggewogICAgICByZXR1cm4gbnVsbDsgLy8gc2tpcCBkdXBsaWNhdGVzIC8gY29uc3RyYWludCBlcnJvcnMKICAgIH0KICB9CgogIC8qKiBMYW56YSBzY29yaW5nICsgZGVkdXBsaWNhY2nDs24gZGUgZm9ybWEgYXPDrW5jcm9uYSBzaW4gYmxvcXVlYXIgbGEgcmVzcHVlc3RhICovCiAgcHJpdmF0ZSBfcG9zdFByb2Nlc3MobGFiZWwgPSAiIik6IHZvaWQgewogICAgc2V0SW1tZWRpYXRlKGFzeW5jICgpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBidXNMb2coImluZm8iLCAiQ2FsY3VsYW5kbyBzY29yZXMuLi4iLCBsYWJlbCk7CiAgICAgICAgYXdhaXQgc2NvcmluZ1NlcnZpY2Uuc2NvcmVBbGwoKTsKICAgICAgICBidXNMb2coImluZm8iLCAiRWplY3V0YW5kbyBkZWR1cGxpY2FjacOzbi4uLiIsIGxhYmVsKTsKICAgICAgICBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5yZXNldER1cGxpY2F0ZXMoKTsKICAgICAgICBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5ydW5EZWR1cGxpY2F0aW9uKCk7CiAgICAgICAgYnVzTG9nKCJzdWNjZXNzIiwgIlBvc3QtcHJvY2VzYWRvIGNvbXBsZXRhZG8g4pyFIiwgbGFiZWwpOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBidXNMb2coImVycm9yIiwgYFtQb3N0LXNjcmFwaW5nXSBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIGxhYmVsKTsKICAgICAgfQogICAgfSk7CiAgfQoKICAvKiogRGF0b3MgZGUgYW5hbHl0aWNzIHBhcmEgZWwgZGFzaGJvYXJkICovCiAgYXN5bmMgZ2V0QW5hbHl0aWNzKCk6IFByb21pc2U8YW55PiB7CiAgICBjb25zdCBbYnlQb3J0YWxdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIHNvdXJjZSwgQ09VTlQoKikgQVMgY291bnQsIEFWRyhwcmljZSkgQVMgYXZnX3ByaWNlLCBBVkcocHJpY2VfcGVyX20yKSBBUyBhdmdfcG0yCiAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBpc19kdXBsaWNhdGUgPSAwIE9SIGlzX2R1cGxpY2F0ZSBJUyBOVUxMCiAgICAgIEdST1VQIEJZIHNvdXJjZSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbYnlNdW5pXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBtdW5pY2lwYWxpdHksIENPVU5UKCopIEFTIGNvdW50LCBBVkcocHJpY2UpIEFTIGF2Z19wcmljZSwKICAgICAgICAgICAgIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIsIEFWRyhzY29yZSkgQVMgYXZnX3Njb3JlCiAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBpc19kdXBsaWNhdGUgPSAwIE9SIGlzX2R1cGxpY2F0ZSBJUyBOVUxMCiAgICAgIEdST1VQIEJZIG11bmljaXBhbGl0eSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbYnlUeXBlXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBwcm9wZXJ0eV90eXBlLCBDT1VOVCgqKSBBUyBjb3VudCwgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UKICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2R1cGxpY2F0ZSA9IDAgT1IgaXNfZHVwbGljYXRlIElTIE5VTEwKICAgICAgR1JPVVAgQlkgcHJvcGVydHlfdHlwZSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbc3VtbWFyeV0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYAogICAgICBTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwsCiAgICAgICAgICAgICBDT1VOVChDQVNFIFdIRU4gaXNfZHVwbGljYXRlID0gMSBUSEVOIDEgRU5EKSBBUyBkdXBsaWNhdGVzLAogICAgICAgICAgICAgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UsIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIsCiAgICAgICAgICAgICBBVkcoc2NvcmUpIEFTIGF2Z19zY29yZSwKICAgICAgICAgICAgIE1JTihwcmljZSkgQVMgbWluX3ByaWNlLCBNQVgocHJpY2UpIEFTIG1heF9wcmljZSwKICAgICAgICAgICAgIChTRUxFQ1QgQ09VTlQoKikgRlJPTSBwcmljZV9oaXN0b3J5KSBBUyBwcmljZV9yZWNvcmRzCiAgICAgIEZST00gcHJvcGVydGllcwogICAgYCk7CgogICAgY29uc3QgcHJpY2VEcm9wcyA9IGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLmdldFByaWNlRHJvcFN0YXRzKCk7CiAgICBjb25zdCBwcmljZU92ZXJUaW1lID0gYXdhaXQgUHJpY2VIaXN0b3J5TW9kZWwuZ2V0T3ZlcmFsbFRyZW5kKDkwKTsKCiAgICByZXR1cm4gewogICAgICBzdW1tYXJ5OiBzdW1tYXJ5WzBdLAogICAgICBieVBvcnRhbCwgYnlNdW5pLCBieVR5cGUsCiAgICAgIHByaWNlRHJvcHMsIHByaWNlT3ZlclRpbWUsCiAgICB9OwogIH0KfQoKZXhwb3J0IGRlZmF1bHQgbmV3IFByb3BlcnR5U2VydmljZSgpOwo=","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\schedulerService.ts","beforeExisted":true,"beforeHash":"5c09f3f19c6af8782817138f42e59d23cf193ed4a80a1a68b425144b4556903c","beforeContent":"aW1wb3J0IGNyb24gZnJvbSAibm9kZS1jcm9uIjsNCmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gIi4vcHJvcGVydHlTZXJ2aWNlIjsNCmltcG9ydCB7IEVtYWlsU2VydmljZSB9IGZyb20gIi4vZW1haWxTZXJ2aWNlIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7DQppbXBvcnQgeyBSZXN1bHRTZXRIZWFkZXIsIFJvd0RhdGFQYWNrZXQgfSBmcm9tICJteXNxbDIiOw0KDQpsZXQgaXNSdW5uaW5nID0gZmFsc2U7DQpsZXQgbGFzdFJ1bkF0OiBEYXRlIHwgbnVsbCA9IG51bGw7DQpsZXQgbGFzdFJ1blN0YXR1czogInN1Y2Nlc3MiIHwgImVycm9yIiB8IG51bGwgPSBudWxsOw0KbGV0IGxhc3RSdW5Ub3RhbCA9IDA7DQpsZXQgbGFzdFJ1bk5ldyA9IDA7DQpsZXQgbmV4dFJ1bkF0OiBEYXRlIHwgbnVsbCA9IG51bGw7CgpleHBvcnQgZnVuY3Rpb24gcGFyc2VEYWlseVRpbWUodmFsdWUgPSAiMDE6MDAiKTogeyBob3VyOiBudW1iZXI7IG1pbnV0ZTogbnVtYmVyIH0gewogIGNvbnN0IG1hdGNoID0gL14oXGR7MSwyfSk6KFxkezJ9KSQvLmV4ZWModmFsdWUudHJpbSgpKTsKICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYFNDUkFQSU5HX0RBSUxZX1RJTUUgaW52w6FsaWRvOiAiJHt2YWx1ZX0iIChmb3JtYXRvIGVzcGVyYWRvIEhIOm1tKWApOwogIGNvbnN0IGhvdXIgPSBOdW1iZXIobWF0Y2hbMV0pOwogIGNvbnN0IG1pbnV0ZSA9IE51bWJlcihtYXRjaFsyXSk7CiAgaWYgKGhvdXIgPiAyMyB8fCBtaW51dGUgPiA1OSkgdGhyb3cgbmV3IEVycm9yKGBTQ1JBUElOR19EQUlMWV9USU1FIGZ1ZXJhIGRlIHJhbmdvOiAiJHt2YWx1ZX0iYCk7CiAgcmV0dXJuIHsgaG91ciwgbWludXRlIH07Cn0KCi8qKiBDYWxjdWxhIGxhIHNpZ3VpZW50ZSBob3JhIGRpYXJpYSByZXNwZXRhbmRvIGxhIHpvbmEgeSBjYW1iaW9zIERTVC4gKi8KZXhwb3J0IGZ1bmN0aW9uIGdldE5leHREYWlseVJ1bkF0KAogIG5vdzogRGF0ZSwKICBob3VyOiBudW1iZXIsCiAgbWludXRlOiBudW1iZXIsCiAgdGltZXpvbmU6IHN0cmluZwopOiBEYXRlIHsKICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tR0IiLCB7CiAgICB0aW1lWm9uZTogdGltZXpvbmUsCiAgICBob3VyOiAiMi1kaWdpdCIsCiAgICBtaW51dGU6ICIyLWRpZ2l0IiwKICAgIGhvdXJDeWNsZTogImgyMyIsCiAgfSk7CiAgY29uc3QgY2FuZGlkYXRlID0gbmV3IERhdGUobm93KTsKICBjYW5kaWRhdGUuc2V0VVRDU2Vjb25kcygwLCAwKTsKICBjYW5kaWRhdGUuc2V0VVRDTWludXRlcyhjYW5kaWRhdGUuZ2V0VVRDTWludXRlcygpICsgMSk7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCA2MCAqIDQ5OyBpKyspIHsKICAgIGNvbnN0IHBhcnRzID0gT2JqZWN0LmZyb21FbnRyaWVzKGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKGNhbmRpZGF0ZSkubWFwKHAgPT4gW3AudHlwZSwgcC52YWx1ZV0pKTsKICAgIGlmIChOdW1iZXIocGFydHMuaG91cikgPT09IGhvdXIgJiYgTnVtYmVyKHBhcnRzLm1pbnV0ZSkgPT09IG1pbnV0ZSkgcmV0dXJuIGNhbmRpZGF0ZTsKICAgIGNhbmRpZGF0ZS5zZXRVVENNaW51dGVzKGNhbmRpZGF0ZS5nZXRVVENNaW51dGVzKCkgKyAxKTsKICB9CiAgdGhyb3cgbmV3IEVycm9yKGBObyBzZSBwdWRvIGNhbGN1bGFyIGxhIHByw7N4aW1hIGVqZWN1Y2nDs24gcGFyYSAke3RpbWV6b25lfWApOwp9CgpmdW5jdGlvbiBnZXRTY2hlZHVsZWRPcGVyYXRpb25zKCk6IEFycmF5PCJzYWxlIiB8ICJyZW50Ij4gewogIGNvbnN0IGNvbmZpZ3VyZWQgPSAocHJvY2Vzcy5lbnYuU0NSQVBJTkdfT1BFUkFUSU9OUyB8fCAicmVudCxzYWxlIikKICAgIC5zcGxpdCgiLCIpCiAgICAubWFwKHZhbHVlID0+IHZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKQogICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyAic2FsZSIgfCAicmVudCIgPT4gdmFsdWUgPT09ICJzYWxlIiB8fCB2YWx1ZSA9PT0gInJlbnQiKTsKICByZXR1cm4gY29uZmlndXJlZC5sZW5ndGggPiAwID8gWy4uLm5ldyBTZXQoY29uZmlndXJlZCldIDogWyJyZW50IiwgInNhbGUiXTsKfQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nU3RhcnQoKTogUHJvbWlzZTxudW1iZXI+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnk8UmVzdWx0U2V0SGVhZGVyPigNCiAgICAgICJJTlNFUlQgSU5UTyBzY3JhcGluZ19sb2cgKHN0YXJ0ZWRfYXQsIHN0YXR1cykgVkFMVUVTIChOT1coKSwgJ3J1bm5pbmcnKSINCiAgICApOw0KICAgIHJldHVybiByZXN1bHQuaW5zZXJ0SWQ7DQogIH0gY2F0Y2ggKF9lKSB7IHJldHVybiAwOyB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nRW5kKAogIGxvZ0lkOiBudW1iZXIsDQogIHRvdGFsOiBudW1iZXIsDQogIG5ld1NhdmVkOiBudW1iZXIsDQogIGVycm9yczogc3RyaW5nLA0KICBzdGF0dXM6ICJzdWNjZXNzIiB8ICJlcnJvciINCik6IFByb21pc2U8dm9pZD4gew0KICB0cnkgew0KICAgIGF3YWl0IHBvb2wucXVlcnkoCiAgICAgIGBVUERBVEUgc2NyYXBpbmdfbG9nIFNFVCBmaW5pc2hlZF9hdCA9IE5PVygpLCB0b3RhbF9mb3VuZCA9ID8sIG5ld19zYXZlZCA9ID8sIGVycm9ycyA9ID8sIGRldGFpbHMgPSA/LCBzdGF0dXMgPSA/IFdIRVJFIGlkID0gP2AsCiAgICAgIFt0b3RhbCwgbmV3U2F2ZWQsIHN0YXR1cyA9PT0gImVycm9yIiA/IDEgOiAwLCBlcnJvcnMgfHwgbnVsbCwgc3RhdHVzLCBsb2dJZF0KICAgICk7CiAgfSBjYXRjaCAoX2UpIHsgLyogbm9uLWNyaXRpY2FsICovIH0KfQoKYXN5bmMgZnVuY3Rpb24gY2xvc2VJbnRlcnJ1cHRlZExvZ3MoKTogUHJvbWlzZTx2b2lkPiB7CiAgdHJ5IHsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICBgVVBEQVRFIHNjcmFwaW5nX2xvZyBTRVQgZmluaXNoZWRfYXQgPSBOT1coKSwgc3RhdHVzID0gJ2Vycm9yJywgZXJyb3JzID0gMSwKICAgICAgICAgZGV0YWlscyA9IENPQUxFU0NFKGRldGFpbHMsICdFamVjdWNpw7NuIGludGVycnVtcGlkYSBwb3IgcmVpbmljaW8gZGVsIHByb2Nlc28nKQogICAgICAgV0hFUkUgc3RhdHVzID0gJ3J1bm5pbmcnIEFORCBmaW5pc2hlZF9hdCBJUyBOVUxMYAogICAgKTsKICAgIGlmIChyZXN1bHQuYWZmZWN0ZWRSb3dzID4gMCkgewogICAgICBjb25zb2xlLndhcm4oYFtTY2hlZHVsZXJdICR7cmVzdWx0LmFmZmVjdGVkUm93c30gZWplY3VjacOzbihlcykgaHXDqXJmYW5hKHMpIGNlcnJhZGEocylgKTsKICAgIH0KICB9IGNhdGNoIChfZSkgeyAvKiBub24tY3JpdGljYWwgKi8gfQp9Cg0KZXhwb3J0IGNvbnN0IHN0YXJ0U2NoZWR1bGVyID0gKCk6IHZvaWQgPT4gewogIGNvbnN0IHRpbWV6b25lID0gcHJvY2Vzcy5lbnYuU0NSQVBJTkdfVElNRVpPTkUgfHwgIkV1cm9wZS9NYWRyaWQiOwogIGNvbnN0IHsgaG91ciwgbWludXRlIH0gPSBwYXJzZURhaWx5VGltZShwcm9jZXNzLmVudi5TQ1JBUElOR19EQUlMWV9USU1FIHx8ICIwMTowMCIpOwogIGNvbnN0IGNyb25FeHByZXNzaW9uID0gYCR7bWludXRlfSAke2hvdXJ9ICogKiAqYDsKCiAgY29uc29sZS5sb2coYFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzICR7U3RyaW5nKGhvdXIpLnBhZFN0YXJ0KDIsICIwIil9OiR7U3RyaW5nKG1pbnV0ZSkucGFkU3RhcnQoMiwgIjAiKX0gKCR7dGltZXpvbmV9KWApOwogIHZvaWQgY2xvc2VJbnRlcnJ1cHRlZExvZ3MoKTsKDQogIC8vIENhbGN1bGFyIHByw7N4aW1hIGVqZWN1Y2nDs24NCiAgY29uc3QgY2FsY05leHRSdW4gPSAoKSA9PiB7CiAgICBuZXh0UnVuQXQgPSBnZXROZXh0RGFpbHlSdW5BdChuZXcgRGF0ZSgpLCBob3VyLCBtaW51dGUsIHRpbWV6b25lKTsKICB9Ow0KICBjYWxjTmV4dFJ1bigpOw0KDQogIGNyb24uc2NoZWR1bGUoY3JvbkV4cHJlc3Npb24sIGFzeW5jICgpID0+IHsKICAgIGlmIChpc1J1bm5pbmcpIHsNCiAgICAgIGNvbnNvbGUubG9nKCJTY3JhcGluZyB5YSBlbiBlamVjdWNpw7NuLCBzYWx0YW5kby4uLiIpOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpc1J1bm5pbmcgPSB0cnVlOw0KICAgIGNvbnN0IGxvZ0lkID0gYXdhaXQgbG9nU2NyYXBpbmdTdGFydCgpOw0KICAgIGxldCBlcnJvck1zZyA9ICIiOw0KICAgIHRyeSB7DQogICAgICBjb25zdCBwcm9wZXJ0eVNlcnZpY2UgPSBuZXcgUHJvcGVydHlTZXJ2aWNlKCk7CiAgICAgIGNvbnN0IGVtYWlsU2VydmljZSA9IG5ldyBFbWFpbFNlcnZpY2UoKTsKICAgICAgY29uc3Qgb3BlcmF0aW9ucyA9IGdldFNjaGVkdWxlZE9wZXJhdGlvbnMoKTsKICAgICAgbGFzdFJ1blRvdGFsID0gMDsKICAgICAgbGFzdFJ1bk5ldyA9IDA7CiAgICAgIGNvbnNvbGUubG9nKGBJbmljaWFuZG8gc2NyYXBpbmcgcHJvZ3JhbWFkbzogJHtvcGVyYXRpb25zLmpvaW4oIiwgIil9Li4uYCk7CiAgICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIG9wZXJhdGlvbnMpIHsKICAgICAgICBjb25zb2xlLmxvZyhgSW5pY2lhbmRvIGNpY2xvIHByb2dyYW1hZG8gJHtvcGVyYXRpb259Li4uYCk7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvcGVydHlTZXJ2aWNlLnNjcmFwZUFsbChvcGVyYXRpb24pOwogICAgICAgIGxhc3RSdW5Ub3RhbCArPSByZXN1bHQudG90YWw7CiAgICAgICAgbGFzdFJ1bk5ldyArPSByZXN1bHQubmV3X2NvdW50IHx8IDA7CiAgICAgICAgY29uc29sZS5sb2coYENpY2xvICR7b3BlcmF0aW9ufSBjb21wbGV0YWRvOiAke3Jlc3VsdC50b3RhbH0gcHJvcGllZGFkZXMsICR7cmVzdWx0Lm5ld19jb3VudCB8fCAwfSBudWV2YXMvYWN0dWFsaXphZGFzYCk7CiAgICAgIH0KICAgICAgY29uc29sZS5sb2coYFNjcmFwaW5nIHByb2dyYW1hZG8gY29tcGxldGFkbzogJHtsYXN0UnVuVG90YWx9IHByb3BpZWRhZGVzLCAke2xhc3RSdW5OZXd9IG51ZXZhcy9hY3R1YWxpemFkYXNgKTsKICAgICAgYXdhaXQgZW1haWxTZXJ2aWNlLnNlbmRGaWx0ZXJlZEFsZXJ0cygpOw0KICAgICAgbGFzdFJ1blN0YXR1cyA9ICJzdWNjZXNzIjsNCiAgICAgIGF3YWl0IGxvZ1NjcmFwaW5nRW5kKGxvZ0lkLCBsYXN0UnVuVG90YWwsIGxhc3RSdW5OZXcsICIiLCAic3VjY2VzcyIpOw0KICAgIH0gY2F0Y2ggKGVycjogYW55KSB7DQogICAgICBlcnJvck1zZyA9IGVycj8ubWVzc2FnZSB8fCBTdHJpbmcoZXJyKTsNCiAgICAgIGNvbnNvbGUuZXJyb3IoIkVycm9yIGVuIHNjcmFwaW5nIHByb2dyYW1hZG86IiwgZXJyb3JNc2cpOw0KICAgICAgbGFzdFJ1blN0YXR1cyA9ICJlcnJvciI7DQogICAgICBhd2FpdCBsb2dTY3JhcGluZ0VuZChsb2dJZCwgbGFzdFJ1blRvdGFsLCBsYXN0UnVuTmV3LCBlcnJvck1zZywgImVycm9yIik7DQogICAgfSBmaW5hbGx5IHsNCiAgICAgIGlzUnVubmluZyA9IGZhbHNlOw0KICAgICAgbGFzdFJ1bkF0ID0gbmV3IERhdGUoKTsNCiAgICAgIGNhbGNOZXh0UnVuKCk7DQogICAgfQ0KICB9LCB7IHRpbWV6b25lIH0pOwoNCiAgLy8gUHVyZ2EgZGlhcmlhIGEgbGFzIDM6MDAg4oCUIGVsaW1pbmEgZGVsIGFyY2hpdm8gbG9zIGFudW5jaW9zIGNvbiBtw6FzIGRlIDMwIGTDrWFzDQogIGNyb24uc2NoZWR1bGUoIjAgMyAqICogKiIsIGFzeW5jICgpID0+IHsKICAgIHRyeSB7DQogICAgICBjb25zdCBQTSA9IGF3YWl0IGltcG9ydCgiLi4vbW9kZWxzL3Byb3BlcnR5TW9kZWwiKTsNCiAgICAgIGNvbnN0IFByb3BlcnR5TW9kZWwgPSBQTS5Qcm9wZXJ0eU1vZGVsOw0KICAgICAgY29uc3QgbiA9IGF3YWl0IFByb3BlcnR5TW9kZWwucHVyZ2VPbGREZWxldGVkKCk7DQogICAgICBpZiAobiA+IDApIHsNCiAgICAgICAgY29uc29sZS5sb2coYFtQdXJnZV0gJHtufSBwcm9waWVkYWRlcyBlbGltaW5hZGFzIGRlZmluaXRpdmFtZW50ZSBkZWwgYXJjaGl2byAoPjMwIGTDrWFzKWApOw0KICAgICAgfQ0KICAgIH0gY2F0Y2ggKGU6IGFueSkgew0KICAgICAgY29uc29sZS5lcnJvcigiW1B1cmdlXSBFcnJvciBlbiBwdXJnYSBkaWFyaWE6IiwgZT8ubWVzc2FnZSB8fCBTdHJpbmcoZSkpOw0KICAgIH0NCiAgfSwgeyB0aW1lem9uZSB9KTsKfTsKDQpleHBvcnQgY29uc3QgZ2V0U2NoZWR1bGVyU3RhdHVzID0gKCk6IHsNCiAgcnVubmluZzogYm9vbGVhbjsNCiAgbGFzdFJ1bkF0OiBzdHJpbmcgfCBudWxsOw0KICBsYXN0UnVuU3RhdHVzOiBzdHJpbmcgfCBudWxsOw0KICBsYXN0UnVuVG90YWw6IG51bWJlcjsNCiAgbGFzdFJ1bk5ldzogbnVtYmVyOw0KICBuZXh0UnVuQXQ6IHN0cmluZyB8IG51bGw7DQp9ID0+ICh7DQogIHJ1bm5pbmc6IGlzUnVubmluZywNCiAgbGFzdFJ1bkF0OiBsYXN0UnVuQXQgPyBsYXN0UnVuQXQudG9JU09TdHJpbmcoKSA6IG51bGwsDQogIGxhc3RSdW5TdGF0dXMsDQogIGxhc3RSdW5Ub3RhbCwNCiAgbGFzdFJ1bk5ldywNCiAgbmV4dFJ1bkF0OiBuZXh0UnVuQXQgPyBuZXh0UnVuQXQudG9JU09TdHJpbmcoKSA6IG51bGwsDQp9KTsNCg0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlY2VudFNjcmFwaW5nTG9ncyhsaW1pdCA9IDEwKTogUHJvbWlzZTxSb3dEYXRhUGFja2V0W10+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oDQogICAgICAiU0VMRUNUICogRlJPTSBzY3JhcGluZ19sb2cgT1JERVIgQlkgc3RhcnRlZF9hdCBERVNDIExJTUlUID8iLA0KICAgICAgW2xpbWl0XQ0KICAgICk7DQogICAgcmV0dXJuIHJvd3M7DQogIH0gY2F0Y2ggKF9lKSB7IHJldHVybiBbXTsgfQ0KfQ0KDQo=","afterExisted":true,"afterHash":"90ae48219e3418d7968d01d88338c5109bbe252a94db3cd5170a0eb7e64f599e","afterContent":"aW1wb3J0IGNyb24gZnJvbSAibm9kZS1jcm9uIjsNCmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gIi4vcHJvcGVydHlTZXJ2aWNlIjsNCmltcG9ydCB7IEVtYWlsU2VydmljZSB9IGZyb20gIi4vZW1haWxTZXJ2aWNlIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7DQppbXBvcnQgeyBSZXN1bHRTZXRIZWFkZXIsIFJvd0RhdGFQYWNrZXQgfSBmcm9tICJteXNxbDIiOwppbXBvcnQgeyBzY3JhcGVSdW5Db29yZGluYXRvciB9IGZyb20gIi4vc2NyYXBlUnVuQ29vcmRpbmF0b3IiOwoKbGV0IGxhc3RSdW5BdDogRGF0ZSB8IG51bGwgPSBudWxsOwpsZXQgbGFzdFJ1blN0YXR1czogInN1Y2Nlc3MiIHwgImVycm9yIiB8IG51bGwgPSBudWxsOw0KbGV0IGxhc3RSdW5Ub3RhbCA9IDA7DQpsZXQgbGFzdFJ1bk5ldyA9IDA7DQpsZXQgbmV4dFJ1bkF0OiBEYXRlIHwgbnVsbCA9IG51bGw7CgpleHBvcnQgZnVuY3Rpb24gcGFyc2VEYWlseVRpbWUodmFsdWUgPSAiMDE6MDAiKTogeyBob3VyOiBudW1iZXI7IG1pbnV0ZTogbnVtYmVyIH0gewogIGNvbnN0IG1hdGNoID0gL14oXGR7MSwyfSk6KFxkezJ9KSQvLmV4ZWModmFsdWUudHJpbSgpKTsKICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYFNDUkFQSU5HX0RBSUxZX1RJTUUgaW52w6FsaWRvOiAiJHt2YWx1ZX0iIChmb3JtYXRvIGVzcGVyYWRvIEhIOm1tKWApOwogIGNvbnN0IGhvdXIgPSBOdW1iZXIobWF0Y2hbMV0pOwogIGNvbnN0IG1pbnV0ZSA9IE51bWJlcihtYXRjaFsyXSk7CiAgaWYgKGhvdXIgPiAyMyB8fCBtaW51dGUgPiA1OSkgdGhyb3cgbmV3IEVycm9yKGBTQ1JBUElOR19EQUlMWV9USU1FIGZ1ZXJhIGRlIHJhbmdvOiAiJHt2YWx1ZX0iYCk7CiAgcmV0dXJuIHsgaG91ciwgbWludXRlIH07Cn0KCi8qKiBDYWxjdWxhIGxhIHNpZ3VpZW50ZSBob3JhIGRpYXJpYSByZXNwZXRhbmRvIGxhIHpvbmEgeSBjYW1iaW9zIERTVC4gKi8KZXhwb3J0IGZ1bmN0aW9uIGdldE5leHREYWlseVJ1bkF0KAogIG5vdzogRGF0ZSwKICBob3VyOiBudW1iZXIsCiAgbWludXRlOiBudW1iZXIsCiAgdGltZXpvbmU6IHN0cmluZwopOiBEYXRlIHsKICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tR0IiLCB7CiAgICB0aW1lWm9uZTogdGltZXpvbmUsCiAgICBob3VyOiAiMi1kaWdpdCIsCiAgICBtaW51dGU6ICIyLWRpZ2l0IiwKICAgIGhvdXJDeWNsZTogImgyMyIsCiAgfSk7CiAgY29uc3QgY2FuZGlkYXRlID0gbmV3IERhdGUobm93KTsKICBjYW5kaWRhdGUuc2V0VVRDU2Vjb25kcygwLCAwKTsKICBjYW5kaWRhdGUuc2V0VVRDTWludXRlcyhjYW5kaWRhdGUuZ2V0VVRDTWludXRlcygpICsgMSk7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCA2MCAqIDQ5OyBpKyspIHsKICAgIGNvbnN0IHBhcnRzID0gT2JqZWN0LmZyb21FbnRyaWVzKGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKGNhbmRpZGF0ZSkubWFwKHAgPT4gW3AudHlwZSwgcC52YWx1ZV0pKTsKICAgIGlmIChOdW1iZXIocGFydHMuaG91cikgPT09IGhvdXIgJiYgTnVtYmVyKHBhcnRzLm1pbnV0ZSkgPT09IG1pbnV0ZSkgcmV0dXJuIGNhbmRpZGF0ZTsKICAgIGNhbmRpZGF0ZS5zZXRVVENNaW51dGVzKGNhbmRpZGF0ZS5nZXRVVENNaW51dGVzKCkgKyAxKTsKICB9CiAgdGhyb3cgbmV3IEVycm9yKGBObyBzZSBwdWRvIGNhbGN1bGFyIGxhIHByw7N4aW1hIGVqZWN1Y2nDs24gcGFyYSAke3RpbWV6b25lfWApOwp9CgpmdW5jdGlvbiBnZXRTY2hlZHVsZWRPcGVyYXRpb25zKCk6IEFycmF5PCJzYWxlIiB8ICJyZW50Ij4gewogIGNvbnN0IGNvbmZpZ3VyZWQgPSAocHJvY2Vzcy5lbnYuU0NSQVBJTkdfT1BFUkFUSU9OUyB8fCAicmVudCxzYWxlIikKICAgIC5zcGxpdCgiLCIpCiAgICAubWFwKHZhbHVlID0+IHZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKQogICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyAic2FsZSIgfCAicmVudCIgPT4gdmFsdWUgPT09ICJzYWxlIiB8fCB2YWx1ZSA9PT0gInJlbnQiKTsKICByZXR1cm4gY29uZmlndXJlZC5sZW5ndGggPiAwID8gWy4uLm5ldyBTZXQoY29uZmlndXJlZCldIDogWyJyZW50IiwgInNhbGUiXTsKfQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nU3RhcnQoKTogUHJvbWlzZTxudW1iZXI+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnk8UmVzdWx0U2V0SGVhZGVyPigNCiAgICAgICJJTlNFUlQgSU5UTyBzY3JhcGluZ19sb2cgKHN0YXJ0ZWRfYXQsIHN0YXR1cykgVkFMVUVTIChOT1coKSwgJ3J1bm5pbmcnKSINCiAgICApOw0KICAgIHJldHVybiByZXN1bHQuaW5zZXJ0SWQ7DQogIH0gY2F0Y2ggKF9lKSB7IHJldHVybiAwOyB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIGxvZ1NjcmFwaW5nRW5kKAogIGxvZ0lkOiBudW1iZXIsDQogIHRvdGFsOiBudW1iZXIsDQogIG5ld1NhdmVkOiBudW1iZXIsDQogIGVycm9yczogc3RyaW5nLA0KICBzdGF0dXM6ICJzdWNjZXNzIiB8ICJlcnJvciINCik6IFByb21pc2U8dm9pZD4gew0KICB0cnkgew0KICAgIGF3YWl0IHBvb2wucXVlcnkoCiAgICAgIGBVUERBVEUgc2NyYXBpbmdfbG9nIFNFVCBmaW5pc2hlZF9hdCA9IE5PVygpLCB0b3RhbF9mb3VuZCA9ID8sIG5ld19zYXZlZCA9ID8sIGVycm9ycyA9ID8sIGRldGFpbHMgPSA/LCBzdGF0dXMgPSA/IFdIRVJFIGlkID0gP2AsCiAgICAgIFt0b3RhbCwgbmV3U2F2ZWQsIHN0YXR1cyA9PT0gImVycm9yIiA/IDEgOiAwLCBlcnJvcnMgfHwgbnVsbCwgc3RhdHVzLCBsb2dJZF0KICAgICk7CiAgfSBjYXRjaCAoX2UpIHsgLyogbm9uLWNyaXRpY2FsICovIH0KfQoKYXN5bmMgZnVuY3Rpb24gY2xvc2VJbnRlcnJ1cHRlZExvZ3MoKTogUHJvbWlzZTx2b2lkPiB7CiAgdHJ5IHsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICBgVVBEQVRFIHNjcmFwaW5nX2xvZyBTRVQgZmluaXNoZWRfYXQgPSBOT1coKSwgc3RhdHVzID0gJ2Vycm9yJywgZXJyb3JzID0gMSwKICAgICAgICAgZGV0YWlscyA9IENPQUxFU0NFKGRldGFpbHMsICdFamVjdWNpw7NuIGludGVycnVtcGlkYSBwb3IgcmVpbmljaW8gZGVsIHByb2Nlc28nKQogICAgICAgV0hFUkUgc3RhdHVzID0gJ3J1bm5pbmcnIEFORCBmaW5pc2hlZF9hdCBJUyBOVUxMYAogICAgKTsKICAgIGlmIChyZXN1bHQuYWZmZWN0ZWRSb3dzID4gMCkgewogICAgICBjb25zb2xlLndhcm4oYFtTY2hlZHVsZXJdICR7cmVzdWx0LmFmZmVjdGVkUm93c30gZWplY3VjacOzbihlcykgaHXDqXJmYW5hKHMpIGNlcnJhZGEocylgKTsKICAgIH0KICB9IGNhdGNoIChfZSkgeyAvKiBub24tY3JpdGljYWwgKi8gfQp9Cg0KZXhwb3J0IGNvbnN0IHN0YXJ0U2NoZWR1bGVyID0gKCk6IHZvaWQgPT4gewogIGNvbnN0IHRpbWV6b25lID0gcHJvY2Vzcy5lbnYuU0NSQVBJTkdfVElNRVpPTkUgfHwgIkV1cm9wZS9NYWRyaWQiOwogIGNvbnN0IHsgaG91ciwgbWludXRlIH0gPSBwYXJzZURhaWx5VGltZShwcm9jZXNzLmVudi5TQ1JBUElOR19EQUlMWV9USU1FIHx8ICIwMTowMCIpOwogIGNvbnN0IGNyb25FeHByZXNzaW9uID0gYCR7bWludXRlfSAke2hvdXJ9ICogKiAqYDsKCiAgY29uc29sZS5sb2coYFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzICR7U3RyaW5nKGhvdXIpLnBhZFN0YXJ0KDIsICIwIil9OiR7U3RyaW5nKG1pbnV0ZSkucGFkU3RhcnQoMiwgIjAiKX0gKCR7dGltZXpvbmV9KWApOwogIHZvaWQgY2xvc2VJbnRlcnJ1cHRlZExvZ3MoKTsKDQogIC8vIENhbGN1bGFyIHByw7N4aW1hIGVqZWN1Y2nDs24NCiAgY29uc3QgY2FsY05leHRSdW4gPSAoKSA9PiB7CiAgICBuZXh0UnVuQXQgPSBnZXROZXh0RGFpbHlSdW5BdChuZXcgRGF0ZSgpLCBob3VyLCBtaW51dGUsIHRpbWV6b25lKTsKICB9Ow0KICBjYWxjTmV4dFJ1bigpOw0KDQogIGNyb24uc2NoZWR1bGUoY3JvbkV4cHJlc3Npb24sIGFzeW5jICgpID0+IHsKICAgIGlmICghc2NyYXBlUnVuQ29vcmRpbmF0b3IudHJ5U3RhcnQoInNjaGVkdWxlZCIpKSB7CiAgICAgIGNvbnNvbGUubG9nKCJTY3JhcGluZyB5YSBlbiBlamVjdWNpw7NuLCBzYWx0YW5kby4uLiIpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBsb2dJZCA9IGF3YWl0IGxvZ1NjcmFwaW5nU3RhcnQoKTsNCiAgICBsZXQgZXJyb3JNc2cgPSAiIjsNCiAgICB0cnkgew0KICAgICAgY29uc3QgcHJvcGVydHlTZXJ2aWNlID0gbmV3IFByb3BlcnR5U2VydmljZSgpOwogICAgICBjb25zdCBlbWFpbFNlcnZpY2UgPSBuZXcgRW1haWxTZXJ2aWNlKCk7CiAgICAgIGNvbnN0IG9wZXJhdGlvbnMgPSBnZXRTY2hlZHVsZWRPcGVyYXRpb25zKCk7CiAgICAgIGxhc3RSdW5Ub3RhbCA9IDA7CiAgICAgIGxhc3RSdW5OZXcgPSAwOwogICAgICBjb25zb2xlLmxvZyhgSW5pY2lhbmRvIHNjcmFwaW5nIHByb2dyYW1hZG86ICR7b3BlcmF0aW9ucy5qb2luKCIsICIpfS4uLmApOwogICAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBvcGVyYXRpb25zKSB7CiAgICAgICAgY29uc29sZS5sb2coYEluaWNpYW5kbyBjaWNsbyBwcm9ncmFtYWRvICR7b3BlcmF0aW9ufS4uLmApOwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb3BlcnR5U2VydmljZS5zY3JhcGVBbGwob3BlcmF0aW9uKTsKICAgICAgICBsYXN0UnVuVG90YWwgKz0gcmVzdWx0LnRvdGFsOwogICAgICAgIGxhc3RSdW5OZXcgKz0gcmVzdWx0Lm5ld19jb3VudCB8fCAwOwogICAgICAgIGNvbnNvbGUubG9nKGBDaWNsbyAke29wZXJhdGlvbn0gY29tcGxldGFkbzogJHtyZXN1bHQudG90YWx9IHByb3BpZWRhZGVzLCAke3Jlc3VsdC5uZXdfY291bnQgfHwgMH0gbnVldmFzL2FjdHVhbGl6YWRhc2ApOwogICAgICB9CiAgICAgIGNvbnNvbGUubG9nKGBTY3JhcGluZyBwcm9ncmFtYWRvIGNvbXBsZXRhZG86ICR7bGFzdFJ1blRvdGFsfSBwcm9waWVkYWRlcywgJHtsYXN0UnVuTmV3fSBudWV2YXMvYWN0dWFsaXphZGFzYCk7CiAgICAgIGF3YWl0IGVtYWlsU2VydmljZS5zZW5kRmlsdGVyZWRBbGVydHMoKTsNCiAgICAgIGxhc3RSdW5TdGF0dXMgPSAic3VjY2VzcyI7DQogICAgICBhd2FpdCBsb2dTY3JhcGluZ0VuZChsb2dJZCwgbGFzdFJ1blRvdGFsLCBsYXN0UnVuTmV3LCAiIiwgInN1Y2Nlc3MiKTsNCiAgICB9IGNhdGNoIChlcnI6IGFueSkgew0KICAgICAgZXJyb3JNc2cgPSBlcnI/Lm1lc3NhZ2UgfHwgU3RyaW5nKGVycik7DQogICAgICBjb25zb2xlLmVycm9yKCJFcnJvciBlbiBzY3JhcGluZyBwcm9ncmFtYWRvOiIsIGVycm9yTXNnKTsNCiAgICAgIGxhc3RSdW5TdGF0dXMgPSAiZXJyb3IiOw0KICAgICAgYXdhaXQgbG9nU2NyYXBpbmdFbmQobG9nSWQsIGxhc3RSdW5Ub3RhbCwgbGFzdFJ1bk5ldywgZXJyb3JNc2csICJlcnJvciIpOw0KICAgIH0gZmluYWxseSB7DQogICAgICBzY3JhcGVSdW5Db29yZGluYXRvci5maW5pc2goInNjaGVkdWxlZCIpOwogICAgICBsYXN0UnVuQXQgPSBuZXcgRGF0ZSgpOw0KICAgICAgY2FsY05leHRSdW4oKTsNCiAgICB9DQogIH0sIHsgdGltZXpvbmUgfSk7Cg0KICAvLyBQdXJnYSBkaWFyaWEgYSBsYXMgMzowMCDigJQgZWxpbWluYSBkZWwgYXJjaGl2byBsb3MgYW51bmNpb3MgY29uIG3DoXMgZGUgMzAgZMOtYXMNCiAgY3Jvbi5zY2hlZHVsZSgiMCAzICogKiAqIiwgYXN5bmMgKCkgPT4gewogICAgdHJ5IHsNCiAgICAgIGNvbnN0IFBNID0gYXdhaXQgaW1wb3J0KCIuLi9tb2RlbHMvcHJvcGVydHlNb2RlbCIpOw0KICAgICAgY29uc3QgUHJvcGVydHlNb2RlbCA9IFBNLlByb3BlcnR5TW9kZWw7DQogICAgICBjb25zdCBuID0gYXdhaXQgUHJvcGVydHlNb2RlbC5wdXJnZU9sZERlbGV0ZWQoKTsNCiAgICAgIGlmIChuID4gMCkgew0KICAgICAgICBjb25zb2xlLmxvZyhgW1B1cmdlXSAke259IHByb3BpZWRhZGVzIGVsaW1pbmFkYXMgZGVmaW5pdGl2YW1lbnRlIGRlbCBhcmNoaXZvICg+MzAgZMOtYXMpYCk7DQogICAgICB9DQogICAgfSBjYXRjaCAoZTogYW55KSB7DQogICAgICBjb25zb2xlLmVycm9yKCJbUHVyZ2VdIEVycm9yIGVuIHB1cmdhIGRpYXJpYToiLCBlPy5tZXNzYWdlIHx8IFN0cmluZyhlKSk7DQogICAgfQ0KICB9LCB7IHRpbWV6b25lIH0pOwp9OwoNCmV4cG9ydCBjb25zdCBnZXRTY2hlZHVsZXJTdGF0dXMgPSAoKTogew0KICBydW5uaW5nOiBib29sZWFuOw0KICBsYXN0UnVuQXQ6IHN0cmluZyB8IG51bGw7DQogIGxhc3RSdW5TdGF0dXM6IHN0cmluZyB8IG51bGw7DQogIGxhc3RSdW5Ub3RhbDogbnVtYmVyOw0KICBsYXN0UnVuTmV3OiBudW1iZXI7DQogIG5leHRSdW5BdDogc3RyaW5nIHwgbnVsbDsNCn0gPT4gKHsNCiAgcnVubmluZzogc2NyYXBlUnVuQ29vcmRpbmF0b3Iuc3RhdHVzKCkubW9kZSA9PT0gInNjaGVkdWxlZCIsCiAgbGFzdFJ1bkF0OiBsYXN0UnVuQXQgPyBsYXN0UnVuQXQudG9JU09TdHJpbmcoKSA6IG51bGwsDQogIGxhc3RSdW5TdGF0dXMsDQogIGxhc3RSdW5Ub3RhbCwNCiAgbGFzdFJ1bk5ldywNCiAgbmV4dFJ1bkF0OiBuZXh0UnVuQXQgPyBuZXh0UnVuQXQudG9JU09TdHJpbmcoKSA6IG51bGwsDQp9KTsNCg0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlY2VudFNjcmFwaW5nTG9ncyhsaW1pdCA9IDEwKTogUHJvbWlzZTxSb3dEYXRhUGFja2V0W10+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oDQogICAgICAiU0VMRUNUICogRlJPTSBzY3JhcGluZ19sb2cgT1JERVIgQlkgc3RhcnRlZF9hdCBERVNDIExJTUlUID8iLA0KICAgICAgW2xpbWl0XQ0KICAgICk7DQogICAgcmV0dXJuIHJvd3M7DQogIH0gY2F0Y2ggKF9lKSB7IHJldHVybiBbXTsgfQ0KfQ0KDQo=","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"},{"relativePath":"lliria-properties-scraper\\src\\views\\dashboard\\portals.ejs","beforeExisted":true,"beforeHash":"d5ecb0dd3c3dfa52a8c151efa25095333f8ce4ba12cfe68d3a81f53ba7475a73","beforeContent":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlcyI+DQo8aGVhZD4NCiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgdmlld3BvcnQtZml0PWNvdmVyIj4NCiAgPG1ldGEgbmFtZT0ibW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZSIgY29udGVudD0iYmxhY2stdHJhbnNsdWNlbnQiPg0KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iTGzDrXJpYVByb3BzIj4NCiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPg0KICA8bWV0YSBuYW1lPSJjb2xvci1zY2hlbWUiIGNvbnRlbnQ9ImxpZ2h0Ij4NCiAgPG1ldGEgbmFtZT0iZm9ybWF0LWRldGVjdGlvbiIgY29udGVudD0idGVsZXBob25lPW5vLCBkYXRlPW5vLCBlbWFpbD1ubywgYWRkcmVzcz1ubyI+DQogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4NCiAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi5wbmciPg0KICA8bGluayByZWw9Imljb24iIGhyZWY9Ii9pY29ucy9pY29uLnN2ZyIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCI+DQogIDx0aXRsZT5Qb3J0YWxlcyAtIExsaXJpYSBQcm9wZXJ0aWVzPC90aXRsZT4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXAtaWNvbnNAMS4xMS4yL2ZvbnQvYm9vdHN0cmFwLWljb25zLm1pbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvbWFpbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvZGFzaGJvYXJkLmNzcyI+DQo8L2hlYWQ+DQo8Ym9keSBjbGFzcz0iaGFzLWJvdHRvbS1uYXYiPg0KPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctcHJpbWFyeSBzdGlja3ktdG9wIj4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIHB4LTMiPg0KICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQgZnctYm9sZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIiBocmVmPSIvZGFzaGJvYXJkIj4NCiAgICAgIDxpIGNsYXNzPSJiaSBiaS1ob3VzZS1oZWFydC1maWxsIGZzLTUiPjwvaT4NCiAgICAgIDxzcGFuIGNsYXNzPSJkLW5vbmUgZC1zbS1pbmxpbmUiPkxsaXJpYSBQcm9wZXJ0aWVzPC9zcGFuPg0KICAgIDwvYT4NCiAgICA8YnV0dG9uIGNsYXNzPSJuYXZiYXItdG9nZ2xlciIgdHlwZT0iYnV0dG9uIiBkYXRhLWJzLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtYnMtdGFyZ2V0PSIjbWFpbk5hdiI+DQogICAgICA8c3BhbiBjbGFzcz0ibmF2YmFyLXRvZ2dsZXItaWNvbiI+PC9zcGFuPg0KICAgIDwvYnV0dG9uPg0KICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSIgaWQ9Im1haW5OYXYiPg0KICAgICAgPHVsIGNsYXNzPSJuYXZiYXItbmF2IG1lLWF1dG8iPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsiIGhyZWY9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS10YWJsZSBtZS0xIj48L2k+UHJvcGllZGFkZXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL21hcCI+PGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIG1lLTEiPjwvaT5NYXBhPC9hPjwvbGk+DQogICAgICAgIDxsaSBjbGFzcz0ibmF2LWl0ZW0iPjxhIGNsYXNzPSJuYXYtbGluayIgaHJlZj0iL2Rhc2hib2FyZC96b25lcyI+PGkgY2xhc3M9ImJpIGJpLWdlby1hbHQtZmlsbCBtZS0xIj48L2k+Wm9uYXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL2ZpbHRlcnMiPjxpIGNsYXNzPSJiaSBiaS1mdW5uZWwtZmlsbCBtZS0xIj48L2k+RmlsdHJvczwvYT48L2xpPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsgYWN0aXZlIiBocmVmPSIvZGFzaGJvYXJkL3BvcnRhbHMiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMSI+PC9pPlBvcnRhbGVzPC9hPjwvbGk+DQogICAgICA8L3VsPg0KICAgICAgPGRpdiBjbGFzcz0iZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgIDxhIGhyZWY9Ii9sb2dvdXQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktYm94LWFycm93LXJpZ2h0Ij48L2k+PC9hPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9uYXY+DQoNCjxtYWluIGNsYXNzPSJjb250YWluZXIgcHktNCIgc3R5bGU9Im1heC13aWR0aDo5MDBweCI+DQogIDxkaXYgY2xhc3M9ImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgbWItNCI+DQogICAgPGg0IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMiB0ZXh0LXByaW1hcnkiPjwvaT5HZXN0acOzbiBkZSBQb3J0YWxlczwvaDQ+DQogICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3MiIGlkPSJhY3RpdmVDb3VudCI+4oCUPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj5hY3Rpdm9zPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IiBpZD0iZGF0YUNvdW50Ij7igJQ8L3NwYW4+DQogICAgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPmNvbiBkYXRvczwvc3Bhbj4NCiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1zbSBtcy1hdXRvIHJvdW5kZWQtMyIgb25jbGljaz0ibG9hZFBvcnRhbHMoKSI+DQogICAgICA8aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5SZWNhcmdhcg0KICAgIDwvYnV0dG9uPg0KICA8L2Rpdj4NCg0KICA8IS0tIExpc3RhIGRlIHBvcnRhbGVzIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20gbWItNCI+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciBhbGlnbi1taWRkbGUgbWItMCIgaWQ9InBvcnRhbHNUYWJsZSI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1kYXJrIj4NCiAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJwcy0zIj5Qb3J0YWw8L3RoPg0KICAgICAgICAgICAgICA8dGg+Q2xhc2Ugc2NyYXBlcjwvdGg+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPlByb3BpZWRhZGVzPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+RXN0YWRvPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+QWNjaW9uZXM8L3RoPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgIDx0Ym9keSBpZD0icG9ydGFsc0JvZHkiPg0KICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI1IiBjbGFzcz0idGV4dC1jZW50ZXIgcHktNCB0ZXh0LW11dGVkIj4NCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG1lLTIiPjwvc3Bhbj5DYXJnYW5kby4uLg0KICAgICAgICAgICAgPC90ZD48L3RyPg0KICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQoNCiAgPCEtLSBTYWx1ZCBkZSBzY3JhcGVycyAtLT4NCiAgPGRpdiBjbGFzcz0iY2FyZCByb3VuZGVkLTQgYm9yZGVyLTAgc2hhZG93LXNtIG1iLTQiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLXdoaXRlIGJvcmRlci0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIiPg0KICAgICAgPGg2IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1oZWFydC1wdWxzZS1maWxsIHRleHQtZGFuZ2VyIG1lLTIiPjwvaT5TYWx1ZCBkZSBzY3JhcGVycyBwb3IgcG9ydGFsL29wZXJhY2nDs248L2g2Pg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tc20gcm91bmRlZC0zIiBvbmNsaWNrPSJsb2FkU2NyYXBlckhlYWx0aCgpIj48aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5BY3R1YWxpemFyPC9idXR0b24+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1zbSBhbGlnbi1taWRkbGUgbWItMCI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1saWdodCI+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0icHMtMyI+UG9ydGFsPC90aD4NCiAgICAgICAgICAgICAgPHRoPlZlbnRhICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkFscXVpbGVyICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkRpYWduw7NzdGljbzwvdGg+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDwvdGhlYWQ+DQogICAgICAgICAgPHRib2R5IGlkPSJoZWFsdGhCb2R5Ij4NCiAgICAgICAgICAgIDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+Q2FyZ2FuZG8gc2FsdWQuLi48L3RkPjwvdHI+DQogICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCg0KICA8IS0tIFBhbmVsIGRlIExvZ3MgZW4gVGllbXBvIFJlYWwgLS0+DQogIDxkaXYgY2xhc3M9ImNhcmQgcm91bmRlZC00IGJvcmRlci0wIHNoYWRvdy1zbSBtYi00IiBpZD0ibG9nc0NhcmQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLWRhcmsgdGV4dC13aGl0ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtdG9wLTQgcHktMiI+DQogICAgICA8c3BhbiBpZD0ibG9nU3RhdHVzRG90IiBjbGFzcz0icm91bmRlZC1jaXJjbGUgZC1pbmxpbmUtYmxvY2siIHN0eWxlPSJ3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6IzZjNzU3ZDtmbGV4LXNocmluazowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MiPjwvc3Bhbj4NCiAgICAgIDxzcGFuIGNsYXNzPSJmdy1zZW1pYm9sZCBzbWFsbCBmbGV4LWdyb3ctMSI+PGkgY2xhc3M9ImJpIGJpLXRlcm1pbmFsLWZpbGwgbWUtMSI+PC9pPkxvZ3MgZGUgU2NyYXBpbmcgZW4gVGllbXBvIFJlYWw8L3NwYW4+DQogICAgICA8c3BhbiBpZD0ibG9nUG9ydGFsQmFkZ2UiIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IiBzdHlsZT0iZGlzcGxheTpub25lIj48L3NwYW4+DQogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSByb3VuZGVkLTMgcHktMCBweC0yIiBvbmNsaWNrPSJjbGVhckxvZ3MoKSIgdGl0bGU9IkxpbXBpYXIgbG9ncyI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaDMiPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgcm91bmRlZC0zIHB5LTAgcHgtMiIgb25jbGljaz0idG9nZ2xlTG9nUGFuZWwoKSIgdGl0bGU9Ik1pbmltaXphciI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS1kYXNoLWxnIiBpZD0ibG9nc1RvZ2dsZUljb24iPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImxvZ3NCb2R5IiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGlkPSJsb2dzQ29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OjI4MHB4O292ZXJmbG93LXk6YXV0bztmb250LWZhbWlseTonQ291cmllciBOZXcnLG1vbm9zcGFjZTtmb250LXNpemU6MC43OHJlbTtiYWNrZ3JvdW5kOiMwZDExMTc7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXJhZGl1czowIDAgMXJlbSAxcmVtIj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1tdXRlZCIgaWQ9ImxvZ3NQbGFjZWhvbGRlciI+Q29uZWN0YW5kbyBhbCBzdHJlYW0gZGUgbG9ncy4uLjwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQogIDwhLS0gRm9ybXVsYXJpbyBwYXJhIGHDsWFkaXIgcG9ydGFsIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20iPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQogICAgICA8aDYgY2xhc3M9ImZ3LWJvbGQgbWItMyI+PGkgY2xhc3M9ImJpIGJpLXBsdXMtY2lyY2xlLWZpbGwgbWUtMiB0ZXh0LXN1Y2Nlc3MiPjwvaT5Bw7FhZGlyIFBvcnRhbCBQZXJzb25hbGl6YWRvPC9oNj4NCiAgICAgIDxmb3JtIGlkPSJhZGRQb3J0YWxGb3JtIiBjbGFzcz0icm93IGctMiIgb25zdWJtaXQ9ImFkZFBvcnRhbChldmVudCkiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgY29sLW1kLTQiPg0KICAgICAgICAgIDxpbnB1dCBpZD0icE5hbWUiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iTm9tYnJlIChlajogRm90b2Nhc2EpIiByZXF1aXJlZD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBjb2wtbWQtNCI+DQogICAgICAgICAgPGlucHV0IGlkPSJwQ2xhc3MiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iQ2xhc2Ugc2NyYXBlciAoZWo6IEZvdG9jYXNhU2NyYXBlcikiIHJlcXVpcmVkPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxzZWxlY3QgaWQ9InBBY3RpdmUiIGNsYXNzPSJmb3JtLXNlbGVjdCByb3VuZGVkLTMiPg0KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+QWN0aXZvPC9vcHRpb24+DQogICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5JbmFjdGl2bzwvb3B0aW9uPg0KICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIHctMTAwIHJvdW5kZWQtMyI+DQogICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktcGx1cy1sZyBtZS0xIj48L2k+QcOxYWRpcg0KICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZm9ybT4NCiAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXQtMyBtYi0wIHNtYWxsIHB5LTIiPg0KICAgICAgICA8aSBjbGFzcz0iYmkgYmktaW5mby1jaXJjbGUgbWUtMSI+PC9pPg0KICAgICAgICBMYSBjbGFzZSBzY3JhcGVyIGRlYmUgY29pbmNpZGlyIGV4YWN0YW1lbnRlIGNvbiBlbCBub21icmUgZXhwb3J0YWRvIGVuIDxjb2RlPnNyYy9zY3JhcGVycy9pbmRleC50czwvY29kZT4uPGJyPg0KICAgICAgICA8c3Ryb25nPkNsYXNlcyBhY3RpdmFzICg2KTo8L3N0cm9uZz4NCiAgICAgICAgPGNvZGU+Rm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlcjwvY29kZT4sIDxjb2RlPkdsb2JhbGl6YVNjcmFwZXI8L2NvZGU+LA0KICAgICAgICA8Y29kZT5IYWJpdGFjbGlhU2NyYXBlcjwvY29kZT4sIDxjb2RlPklkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyPC9jb2RlPiwNCiAgICAgICAgPGNvZGU+UGlzb3NTY3JhcGVyPC9jb2RlPiwgPGNvZGU+VGhpbmtTcGFpblNjcmFwZXI8L2NvZGU+Ljxicj4NCiAgICAgICAgPHN0cm9uZz5DbGFzZXMgZGlzcG9uaWJsZXMgKGRlc2FjdGl2YWRhcyk6PC9zdHJvbmc+DQogICAgICAgIDxjb2RlPkNhc2FzYXBvU2NyYXBlcjwvY29kZT4sIDxjb2RlPkVuZ2VsVm9sa2Vyc1NjcmFwZXI8L2NvZGU+LA0KICAgICAgICA8Y29kZT5FcmFTcGFpblNjcmFwZXI8L2NvZGU+LCA8Y29kZT5Gb3RvY2FzYVNjcmFwZXI8L2NvZGU+LA0KICAgICAgICA8Y29kZT5Ib2xwcm9wU2NyYXBlcjwvY29kZT4sIDxjb2RlPklkZWFsaXN0YVNjcmFwZXI8L2NvZGU+LA0KICAgICAgICA8Y29kZT5Jbm1vYmlsaWFyaWFTY3JhcGVyPC9jb2RlPiwgPGNvZGU+S3llcm9TY3JhcGVyPC9jb2RlPiwNCiAgICAgICAgPGNvZGU+TWlsYW51bmNpb3NTY3JhcGVyPC9jb2RlPiwgPGNvZGU+TnVyb2FTY3JhcGVyPC9jb2RlPiwNCiAgICAgICAgPGNvZGU+UmVtYXhTY3JhcGVyPC9jb2RlPiwgPGNvZGU+U3BhaW5Ib3VzZXNTY3JhcGVyPC9jb2RlPiwNCiAgICAgICAgPGNvZGU+VGVjbm9jYXNhU2NyYXBlcjwvY29kZT4sIDxjb2RlPlRyb3ZhdFNjcmFwZXI8L2NvZGU+LA0KICAgICAgICA8Y29kZT5WaWJib1NjcmFwZXI8L2NvZGU+LCA8Y29kZT5ZYWVuY29udHJlU2NyYXBlcjwvY29kZT4uDQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L21haW4+DQoNCjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQ+DQpjb25zdCBJQ09OX01BUCA9IHsNCiAgaWRlYWxpc3RhOiAiYmktYnVpbGRpbmciLA0KICBmb3RvY2FzYTogImJpLWNhbWVyYS1maWxsIiwNCiAgaGFiaXRhY2xpYTogImJpLWhvdXNlLWRvb3ItZmlsbCIsDQogICJwaXNvcy1jb20iOiAiYmktbGlzdC11bCIsDQogIHRyb3ZpdDogImJpLXNlYXJjaCIsDQogIGt5ZXJvOiAiYmktZ2xvYmUyIiwNCiAgdGhpbmtzcGFpbjogImJpLWZsYWctZmlsbCIsDQogIGdsb2JhbGl6YTogImJpLWdlby1maWxsIiwNCiAgdGVjbm9jYXNhOiAiYmktc2hvcCIsDQogIHJlbWF4OiAiYmktc3Rhci1maWxsIiwNCiAgbWlsYW51bmNpb3M6ICJiaS1tZWdhcGhvbmUtZmlsbCIsDQogIG51cm9hOiAiYmktbGF5ZXJzLWZpbGwiLA0KICBzcGFpbmhvdXNlczogImJpLWhvdXNlcy1maWxsIiwNCiAgaG9scHJvcDogImJpLWtleS1maWxsIiwNCiAgeWFlbmNvbnRyZTogImJpLXBpbi1tYXAtZmlsbCIsDQogIGNhc2FzYXBvOiAiYmktYnVpbGRpbmctZmlsbCIsDQogIGVuZ2Vsdm9sa2VyczogImJpLWdlbSIsDQogICJlcmEtc3BhaW4iOiAiYmktYXdhcmQtZmlsbCIsDQogIHZpYmJvOiAiYmktY2hhdC1zcXVhcmUtZG90cy1maWxsIiwNCiAgaW5tb2JpbGlhcmlhOiAiYmktc2lnbi10dXJuLXJpZ2h0LWZpbGwiDQp9Ow0KDQpmdW5jdGlvbiBnZXRJY29uKHNsdWcpIHsNCiAgcmV0dXJuIElDT05fTUFQW3NsdWddIHx8ICJiaS1wbHVnLWZpbGwiOw0KfQ0KDQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIFNTRSDigJQgTG9ncyBlbiB0aWVtcG8gcmVhbA0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpsZXQgc3NlU291cmNlID0gbnVsbDsNCmxldCBsb2dzVmlzaWJsZSA9IGZhbHNlOw0KbGV0IGxvZ0NvdW50ID0gMDsNCg0KY29uc3QgTEVWRUxfU1RZTEUgPSB7DQogIGluZm86ICAgIHsgY29sb3I6ICIjOGJiOWZlIiwgaWNvbjogImJpLWluZm8tY2lyY2xlLWZpbGwiIH0sDQogIHN1Y2Nlc3M6IHsgY29sb3I6ICIjNTZkMzY0IiwgaWNvbjogImJpLWNoZWNrLWNpcmNsZS1maWxsIiB9LA0KICB3YXJuOiAgICB7IGNvbG9yOiAiI2UzYjM0MSIsIGljb246ICJiaS1leGNsYW1hdGlvbi10cmlhbmdsZS1maWxsIiB9LA0KICBlcnJvcjogICB7IGNvbG9yOiAiI2Y4NTE0OSIsIGljb246ICJiaS14LWNpcmNsZS1maWxsIiB9LA0KICBkZWJ1ZzogICB7IGNvbG9yOiAiIzhkOTZhMCIsIGljb246ICJiaS1idWctZmlsbCIgfSwNCn07DQoNCmZ1bmN0aW9uIGluaXRTU0UoKSB7DQogIGlmIChzc2VTb3VyY2UpIHJldHVybjsNCiAgc3NlU291cmNlID0gbmV3IEV2ZW50U291cmNlKCIvYXBpL3NjcmFwZXIvbG9ncy9zdHJlYW0iKTsNCg0KICBzc2VTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcigibG9nIiwgKGUpID0+IHsNCiAgICBjb25zdCBldiA9IEpTT04ucGFyc2UoZS5kYXRhKTsNCiAgICBhcHBlbmRMb2coZXYpOw0KICB9KTsNCg0KICBzc2VTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLCAoZSkgPT4gew0KICAgIGNvbnN0IGV2ID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGhhbmRsZVByb2dyZXNzKGV2KTsNCiAgfSk7DQoNCiAgc3NlU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoInN0YXR1cyIsIChlKSA9PiB7DQogICAgY29uc3QgZXYgPSBKU09OLnBhcnNlKGUuZGF0YSk7DQogICAgdXBkYXRlU3RhdHVzRG90KGV2LnJ1bm5pbmcpOw0KICAgIGlmIChldi5ydW5uaW5nKSBzaG93TG9nUGFuZWwoKTsNCiAgfSk7DQoNCiAgc3NlU291cmNlLm9uZXJyb3IgPSAoKSA9PiB7DQogICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICBpZiAoc3NlU291cmNlKSB7IHNzZVNvdXJjZS5jbG9zZSgpOyBzc2VTb3VyY2UgPSBudWxsOyB9DQogICAgICBpbml0U1NFKCk7DQogICAgfSwgNTAwMCk7DQogIH07DQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVN0YXR1c0RvdChydW5uaW5nKSB7DQogIGNvbnN0IGRvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dTdGF0dXNEb3QiKTsNCiAgaWYgKCFkb3QpIHJldHVybjsNCiAgaWYgKHJ1bm5pbmcpIHsNCiAgICBkb3Quc3R5bGUuYmFja2dyb3VuZCA9ICIjNTZkMzY0IjsNCiAgICBkb3Quc3R5bGUuYm94U2hhZG93ID0gIjAgMCA2cHggIzU2ZDM2NCI7DQogIH0gZWxzZSB7DQogICAgZG90LnN0eWxlLmJhY2tncm91bmQgPSAiIzZjNzU3ZCI7DQogICAgZG90LnN0eWxlLmJveFNoYWRvdyA9ICJub25lIjsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBhcHBlbmRMb2coZXYpIHsNCiAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NDb250YWluZXIiKTsNCiAgaWYgKCFjb250YWluZXIpIHJldHVybjsNCiAgY29uc3QgcGxhY2Vob2xkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc1BsYWNlaG9sZGVyIik7DQogIGlmIChwbGFjZWhvbGRlcikgcGxhY2Vob2xkZXIucmVtb3ZlKCk7DQoNCiAgY29uc3Qgc3R5bGUgPSBMRVZFTF9TVFlMRVtldi5sZXZlbF0gfHwgTEVWRUxfU1RZTEUuaW5mbzsNCiAgY29uc3QgdHMgPSBuZXcgRGF0ZShldi50cykudG9Mb2NhbGVUaW1lU3RyaW5nKCJlcy1FUyIsIHsgaG91cjEyOiBmYWxzZSB9KTsNCiAgY29uc3QgcG9ydGFsID0gZXYucG9ydGFsID8gYDxzcGFuIHN0eWxlPSJjb2xvcjojZTNiMzQxO21hcmdpbi1yaWdodDo0cHgiPlske2V2LnBvcnRhbH1dPC9zcGFuPmAgOiAiIjsNCiAgY29uc3QgbGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICBsaW5lLnN0eWxlLmNzc1RleHQgPSAibWFyZ2luLWJvdHRvbToycHg7bGluZS1oZWlnaHQ6MS41O3dvcmQtYnJlYWs6YnJlYWstd29yZCI7DQogIGxpbmUuaW5uZXJIVE1MID0gYDxzcGFuIHN0eWxlPSJjb2xvcjojNTU1O3VzZXItc2VsZWN0Om5vbmUiPiR7dHN9IDwvc3Bhbj4ke3BvcnRhbH08aSBjbGFzcz0iYmkgJHtzdHlsZS5pY29ufSIgc3R5bGU9ImNvbG9yOiR7c3R5bGUuY29sb3J9O21hcmdpbi1yaWdodDo0cHg7Zm9udC1zaXplOi43cmVtIj48L2k+PHNwYW4gc3R5bGU9ImNvbG9yOiR7c3R5bGUuY29sb3J9Ij4ke2VzY0h0bWwoZXYubXNnKX08L3NwYW4+YDsNCiAgY29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmUpOw0KICBsb2dDb3VudCsrOw0KICAvLyBNYW50ZW5lciBtw6F4aW1vIDQwMCBsw61uZWFzIHZpc2libGVzDQogIHdoaWxlIChjb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoID4gNDAwKSBjb250YWluZXIucmVtb3ZlQ2hpbGQoY29udGFpbmVyLmZpcnN0Q2hpbGQpOw0KICAvLyBBdXRvLXNjcm9sbCBzaSBlc3RhYmEgYWwgZmluYWwNCiAgaWYgKGNvbnRhaW5lci5zY3JvbGxUb3AgKyBjb250YWluZXIuY2xpZW50SGVpZ2h0ID49IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQgLSA0MCkgew0KICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0Ow0KICB9DQp9DQoNCmZ1bmN0aW9uIGhhbmRsZVByb2dyZXNzKGV2KSB7DQogIGlmIChldi5waGFzZSA9PT0gInN0YXJ0Iikgew0KICAgIGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ1BvcnRhbEJhZGdlIik7DQogICAgaWYgKGJhZGdlKSB7IGJhZGdlLnRleHRDb250ZW50ID0gZXYucG9ydGFsOyBiYWRnZS5zdHlsZS5kaXNwbGF5ID0gIiI7IH0NCiAgICBzaG93TG9nUGFuZWwoKTsNCiAgfSBlbHNlIGlmIChldi5waGFzZSA9PT0gImRvbmUiIHx8IGV2LnBoYXNlID09PSAiZXJyb3IiKSB7DQogICAgc2V0VGltZW91dChsb2FkUG9ydGFscywgMzAwMCk7IC8vIHJlZnJlc2NhciBjb250YWRvcmVzIHRyYXMgM3MNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nUGFuZWwoKSB7DQogIGNvbnN0IGNhcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc0NhcmQiKTsNCiAgaWYgKGNhcmQpIHsgY2FyZC5zdHlsZS5kaXNwbGF5ID0gIiI7IGxvZ3NWaXNpYmxlID0gdHJ1ZTsgfQ0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVMb2dQYW5lbCgpIHsNCiAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzQm9keSIpOw0KICBjb25zdCBpY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NUb2dnbGVJY29uIik7DQogIGlmICghYm9keSkgcmV0dXJuOw0KICBjb25zdCBjb2xsYXBzZWQgPSBib2R5LnN0eWxlLmRpc3BsYXkgPT09ICJub25lIjsNCiAgYm9keS5zdHlsZS5kaXNwbGF5ID0gY29sbGFwc2VkID8gIiIgOiAibm9uZSI7DQogIGljb24uY2xhc3NOYW1lID0gY29sbGFwc2VkID8gImJpIGJpLWRhc2gtbGciIDogImJpIGJpLWNoZXZyb24tdXAiOw0KfQ0KDQpmdW5jdGlvbiBjbGVhckxvZ3MoKSB7DQogIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzQ29udGFpbmVyIik7DQogIGlmIChjb250YWluZXIpIHsNCiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InRleHQtbXV0ZWQiIGlkPSJsb2dzUGxhY2Vob2xkZXIiPkxvZ3MgbGltcGlhZG9zPC9kaXY+JzsNCiAgfQ0KICBsb2dDb3VudCA9IDA7DQp9DQoNCmZ1bmN0aW9uIGVzY0h0bWwoc3RyKSB7DQogIHJldHVybiBTdHJpbmcoc3RyKQ0KICAgIC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxhY2UoLzwvZywgIiZsdDsiKS5yZXBsYWNlKC8+L2csICImZ3Q7IikNCiAgICAucmVwbGFjZSgvIi9nLCAiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCAiJiMwMzk7Iik7DQp9DQoNCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8gUG9ydGFsZXMNCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KYXN5bmMgZnVuY3Rpb24gbG9hZFBvcnRhbHMoKSB7DQogIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKCIvYXBpL3BvcnRhbHMiKTsNCiAgY29uc3QgcG9ydGFscyA9IGF3YWl0IHJlcy5qc29uKCk7DQogIGNvbnN0IHRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcnRhbHNCb2R5Iik7DQogIGxldCBhY3RpdmUgPSAwOw0KICBsZXQgd2l0aERhdGEgPSAwOw0KDQogIGlmICghcG9ydGFscy5sZW5ndGgpIHsNCiAgICB0Ym9keS5pbm5lckhUTUwgPSBgPHRyPjx0ZCBjb2xzcGFuPSI1IiBjbGFzcz0idGV4dC1jZW50ZXIgcHktNCB0ZXh0LW11dGVkIj5ObyBoYXkgcG9ydGFsZXMgY29uZmlndXJhZG9zPC90ZD48L3RyPmA7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgdGJvZHkuaW5uZXJIVE1MID0gcG9ydGFscy5tYXAocCA9PiB7DQogICAgaWYgKHAuYWN0aXZlKSBhY3RpdmUrKzsNCiAgICBjb25zdCBpY29uID0gZ2V0SWNvbihwLnNsdWcpOw0KICAgIGNvbnN0IGNvdW50ID0gcC5wcm9wZXJ0eV9jb3VudCB8fCAwOw0KICAgIGlmIChjb3VudCA+IDApIHdpdGhEYXRhKys7DQogICAgY29uc3QgYmFkZ2UgPSBwLmFjdGl2ZQ0KICAgICAgPyBgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3MiPkFjdGl2bzwvc3Bhbj5gDQogICAgICA6IGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc2Vjb25kYXJ5Ij5JbmFjdGl2bzwvc3Bhbj5gOw0KICAgIGNvbnN0IHRvZ2dsZVRpdGxlID0gcC5hY3RpdmUgPyAiRGVzYWN0aXZhciIgOiAiQWN0aXZhciI7DQogICAgY29uc3QgdG9nZ2xlQ2xhc3MgPSBwLmFjdGl2ZSA/ICJidG4tb3V0bGluZS13YXJuaW5nIiA6ICJidG4tb3V0bGluZS1zdWNjZXNzIjsNCiAgICBjb25zdCB0b2dnbGVJY29uID0gcC5hY3RpdmUgPyAiYmktcGF1c2UtZmlsbCIgOiAiYmktcGxheS1maWxsIjsNCiAgICBjb25zdCBjb3VudEJhZGdlID0gY291bnQgPiAwDQogICAgICA/IGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctcHJpbWFyeSByb3VuZGVkLXBpbGwiPiR7Y291bnR9PC9zcGFuPmANCiAgICAgIDogYDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj7igJQ8L3NwYW4+YDsNCiAgICByZXR1cm4gYDx0ciBpZD0icm93LSR7cC5pZH0iPg0KICAgICAgPHRkIGNsYXNzPSJwcy0zIj4NCiAgICAgICAgPGkgY2xhc3M9ImJpICR7aWNvbn0gbWUtMiB0ZXh0LXByaW1hcnkiPjwvaT4NCiAgICAgICAgPHN0cm9uZz4ke3AubmFtZX08L3N0cm9uZz4NCiAgICAgIDwvdGQ+DQogICAgICA8dGQ+PGNvZGUgY2xhc3M9InRleHQtbXV0ZWQiPiR7cC5zY3JhcGVyX2NsYXNzfTwvY29kZT48L3RkPg0KICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciI+JHtjb3VudEJhZGdlfTwvdGQ+DQogICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIiBpZD0iYmFkZ2UtJHtwLmlkfSI+JHtiYWRnZX08L3RkPg0KICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciI+DQogICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biAke3RvZ2dsZUNsYXNzfSBidG4tc20gcm91bmRlZC0zIG1lLTEiIHRpdGxlPSIke3RvZ2dsZVRpdGxlfSIgb25jbGljaz0idG9nZ2xlUG9ydGFsKCR7cC5pZH0pIj4NCiAgICAgICAgICA8aSBjbGFzcz0iYmkgJHt0b2dnbGVJY29ufSI+PC9pPg0KICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgJHtwLmFjdGl2ZSA/IGA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tc20gcm91bmRlZC0zIG1lLTEiIHRpdGxlPSJFc2NhbmVhciBlc3RlIHBvcnRhbCBhaG9yYSIgaWQ9InNjYW4tJHtwLnNsdWd9IiBvbmNsaWNrPSJzY3JhcGVQb3J0YWwoJyR7cC5zbHVnfScsIHRoaXMpIj4NCiAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktcGxheS1jaXJjbGUtZmlsbCI+PC9pPg0KICAgICAgICA8L2J1dHRvbj5gIDogJyd9DQogICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tb3V0bGluZS1kYW5nZXIgYnRuLXNtIHJvdW5kZWQtMyIgdGl0bGU9IkVsaW1pbmFyIiBvbmNsaWNrPSJkZWxldGVQb3J0YWwoJHtwLmlkfSwgJyR7cC5uYW1lfScpIj4NCiAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktdHJhc2gzLWZpbGwiPjwvaT4NCiAgICAgICAgPC9idXR0b24+DQogICAgICA8L3RkPg0KICAgIDwvdHI+YDsNCiAgfSkuam9pbigiIik7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZUNvdW50IikudGV4dENvbnRlbnQgPSBhY3RpdmU7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkYXRhQ291bnQiKS50ZXh0Q29udGVudCA9IHdpdGhEYXRhOw0KfQ0KDQpmdW5jdGlvbiBoZWFsdGhCYWRnZShtc2cpIHsNCiAgY29uc3QgbSA9IChtc2cgfHwgIiIpLnRvTG93ZXJDYXNlKCk7DQogIGlmIChtLmluY2x1ZGVzKCJvayIpKSByZXR1cm4gYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zdWNjZXNzLXN1YnRsZSB0ZXh0LXN1Y2Nlc3MgYm9yZGVyIGJvcmRlci1zdWNjZXNzLXN1YnRsZSI+JHttc2d9PC9zcGFuPmA7DQogIGlmIChtLmluY2x1ZGVzKCJpbmFjdGl2byIpKSByZXR1cm4gYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zZWNvbmRhcnktc3VidGxlIHRleHQtc2Vjb25kYXJ5IGJvcmRlciBib3JkZXItc2Vjb25kYXJ5LXN1YnRsZSI+JHttc2d9PC9zcGFuPmA7DQogIHJldHVybiBgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXdhcm5pbmctc3VidGxlIHRleHQtd2FybmluZyBib3JkZXIgYm9yZGVyLXdhcm5pbmctc3VidGxlIj4ke21zZ308L3NwYW4+YDsNCn0NCg0KYXN5bmMgZnVuY3Rpb24gbG9hZFNjcmFwZXJIZWFsdGgoKSB7DQogIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhbHRoQm9keSIpOw0KICBib2R5LmlubmVySFRNTCA9IGA8dHI+PHRkIGNvbHNwYW49IjQiIGNsYXNzPSJ0ZXh0LWNlbnRlciB0ZXh0LW11dGVkIHB5LTMiPkNhcmdhbmRvIHNhbHVkLi4uPC90ZD48L3RyPmA7DQogIHRyeSB7DQogICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goIi9hcGkvcG9ydGFscy9oZWFsdGgiKTsNCiAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgICBpZiAoIWpzb24uc3VjY2VzcyB8fCAhanNvbi5kYXRhPy5sZW5ndGgpIHsNCiAgICAgIGJvZHkuaW5uZXJIVE1MID0gYDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+U2luIGRhdG9zPC90ZD48L3RyPmA7DQogICAgICByZXR1cm47DQogICAgfQ0KICAgIGJvZHkuaW5uZXJIVE1MID0ganNvbi5kYXRhLm1hcChyID0+IHsNCiAgICAgIGNvbnN0IHNhbGUgPSBgJHtyLnNhbGUudG90YWx9IC8gJHtyLnNhbGUubGFzdDI0aH1gOw0KICAgICAgY29uc3QgcmVudCA9IGAke3IucmVudC50b3RhbH0gLyAke3IucmVudC5sYXN0MjRofWA7DQogICAgICBjb25zdCBkaWFnID0gYA0KICAgICAgICA8ZGl2IGNsYXNzPSJzbWFsbCBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTEiPg0KICAgICAgICAgICR7aGVhbHRoQmFkZ2UoIlZlbnRhOiAiICsgci5zYWxlLmRpYWdub3Npcyl9DQogICAgICAgICAgJHtoZWFsdGhCYWRnZSgiQWxxdWlsZXI6ICIgKyByLnJlbnQuZGlhZ25vc2lzKX0NCiAgICAgICAgPC9kaXY+YDsNCiAgICAgIHJldHVybiBgPHRyPg0KICAgICAgICA8dGQgY2xhc3M9InBzLTMiPjxzdHJvbmc+JHtyLnBvcnRhbH08L3N0cm9uZz48L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+JHtzYWxlfTwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+JHtyZW50fTwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+JHtkaWFnfTwvdGQ+DQogICAgICA8L3RyPmA7DQogICAgfSkuam9pbigiIik7DQogIH0gY2F0Y2ggKGUpIHsNCiAgICBib2R5LmlubmVySFRNTCA9IGA8dHI+PHRkIGNvbHNwYW49IjQiIGNsYXNzPSJ0ZXh0LWNlbnRlciB0ZXh0LWRhbmdlciBweS0zIj5FcnJvciBjYXJnYW5kbyBzYWx1ZDwvdGQ+PC90cj5gOw0KICB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIHRvZ2dsZVBvcnRhbChpZCkgew0KICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9wb3J0YWxzLyR7aWR9L3RvZ2dsZWAsIHsgbWV0aG9kOiAiUEFUQ0giIH0pOw0KICBjb25zdCBkID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgaWYgKGQuc3VjY2VzcykgbG9hZFBvcnRhbHMoKTsNCn0NCg0KYXN5bmMgZnVuY3Rpb24gZGVsZXRlUG9ydGFsKGlkLCBuYW1lKSB7DQogIGlmICghY29uZmlybShgwr9FbGltaW5hciBlbCBwb3J0YWwgIiR7bmFtZX0iPyBFc3RhIGFjY2nDs24gbm8gc2UgcHVlZGUgZGVzaGFjZXIuYCkpIHJldHVybjsNCiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYC9hcGkvcG9ydGFscy8ke2lkfWAsIHsgbWV0aG9kOiAiREVMRVRFIiB9KTsNCiAgY29uc3QgZCA9IGF3YWl0IHJlcy5qc29uKCk7DQogIGlmIChkLnN1Y2Nlc3MpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgcm93LSR7aWR9YCk/LnJlbW92ZSgpOw0KICAgIGxvYWRQb3J0YWxzKCk7DQogIH0gZWxzZSB7DQogICAgYWxlcnQoIkVycm9yIGFsIGVsaW1pbmFyIGVsIHBvcnRhbCIpOw0KICB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIGFkZFBvcnRhbChldmVudCkgew0KICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KICBjb25zdCBuYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBOYW1lIikudmFsdWUudHJpbSgpOw0KICBjb25zdCBzY3JhcGVyX2NsYXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBDbGFzcyIpLnZhbHVlLnRyaW0oKTsNCiAgY29uc3QgYWN0aXZlID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBBY3RpdmUiKS52YWx1ZSk7DQogIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKCIvYXBpL3BvcnRhbHMiLCB7DQogICAgbWV0aG9kOiAiUE9TVCIsDQogICAgaGVhZGVyczogeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sDQogICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBuYW1lLCBzY3JhcGVyX2NsYXNzLCBhY3RpdmUgfSkNCiAgfSk7DQogIGNvbnN0IGQgPSBhd2FpdCByZXMuanNvbigpOw0KICBpZiAoZC5zdWNjZXNzKSB7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFkZFBvcnRhbEZvcm0iKS5yZXNldCgpOw0KICAgIGxvYWRQb3J0YWxzKCk7DQogIH0gZWxzZSB7DQogICAgYWxlcnQoIkVycm9yOiAiICsgKGQuZXJyb3IgfHwgImRlc2Nvbm9jaWRvIikpOw0KICB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIHNjcmFwZVBvcnRhbChzbHVnLCBidG4pIHsNCiAgY29uc3Qgb3BJbiA9IHByb21wdCgnT3BlcmFjacOzbiBwYXJhIGVzY2FuZWFyIGVzdGUgcG9ydGFsOiAic2FsZSIgKHZlbnRhKSBvICJyZW50IiAoYWxxdWlsZXIpJywgInNhbGUiKTsNCiAgaWYgKCFvcEluKSByZXR1cm47DQogIGNvbnN0IG9wID0gU3RyaW5nKG9wSW4pLnRyaW0oKS50b0xvd2VyQ2FzZSgpOw0KICBpZiAoIVsic2FsZSIsICJyZW50Il0uaW5jbHVkZXMob3ApKSB7DQogICAgYWxlcnQoJ09wZXJhY2nDs24gbm8gdsOhbGlkYS4gVXNhICJzYWxlIiBvICJyZW50Ii4nKTsNCiAgICByZXR1cm47DQogIH0NCiAgY29uc3Qgb3JpZyA9IGJ0bi5pbm5lckhUTUw7DQogIGJ0bi5kaXNhYmxlZCA9IHRydWU7DQogIGJ0bi5pbm5lckhUTUwgPSAnPHNwYW4gY2xhc3M9InNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIj48L3NwYW4+JzsNCg0KICAvLyBNb3N0cmFyIHBhbmVsIGRlIGxvZ3MgeSBhYnJpciBjb25leGnDs24gU1NFDQogIHNob3dMb2dQYW5lbCgpOw0KICBjbGVhckxvZ3MoKTsNCiAgaW5pdFNTRSgpOw0KDQogIHRyeSB7DQogICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYC9hcGkvc2NyYXBlci9zY3JhcGUvJHtzbHVnfT9vcD0ke29wfWAsIHsgbWV0aG9kOiAnUE9TVCcgfSk7DQogICAgY29uc3QgZCA9IGF3YWl0IHJlcy5qc29uKCk7DQogICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMiB8fCBkLnN1Y2Nlc3MpIHsNCiAgICAgIGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImJpIGJpLWhvdXJnbGFzcy1zcGxpdCB0ZXh0LXByaW1hcnkiPjwvaT4nOw0KICAgICAgdXBkYXRlU3RhdHVzRG90KHRydWUpOw0KICAgICAgLy8gRWwgcGFuZWwgU1NFIG1vc3RyYXLDoSBlbCBwcm9ncmVzbzsgcmVzdGF1cmFyIGJvdMOzbiBjdWFuZG8gZWwgc2NyYXBpbmcgdGVybWluZQ0KICAgICAgY29uc3QgcmVzdG9yZUJ0biA9ICgpID0+IHsNCiAgICAgICAgYnRuLmlubmVySFRNTCA9IG9yaWc7DQogICAgICAgIGJ0bi5kaXNhYmxlZCA9IGZhbHNlOw0KICAgICAgfTsNCiAgICAgIC8vIFBvbGxpbmcgZGUgZXN0YWRvIHBhcmEgcmVzdGF1cmFyIGVsIGJvdMOzbg0KICAgICAgY29uc3QgcG9sbCA9IHNldEludGVydmFsKGFzeW5jICgpID0+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICBjb25zdCBzdCA9IGF3YWl0IGZldGNoKCIvYXBpL3NjcmFwZXIvc3RhdHVzIik7DQogICAgICAgICAgY29uc3QgcyA9IGF3YWl0IHN0Lmpzb24oKTsNCiAgICAgICAgICBpZiAoIXMubWFudWFsUnVubmluZykgew0KICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChwb2xsKTsNCiAgICAgICAgICAgIHJlc3RvcmVCdG4oKTsNCiAgICAgICAgICAgIHVwZGF0ZVN0YXR1c0RvdChmYWxzZSk7DQogICAgICAgICAgICBsb2FkUG9ydGFscygpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSBjYXRjaCB7IGNsZWFySW50ZXJ2YWwocG9sbCk7IHJlc3RvcmVCdG4oKTsgfQ0KICAgICAgfSwgNTAwMCk7DQogICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSA0MDkpIHsNCiAgICAgIGJ0bi5pbm5lckhUTUwgPSBvcmlnOyBidG4uZGlzYWJsZWQgPSBmYWxzZTsNCiAgICAgIGFsZXJ0KCfij7MgWWEgaGF5IHVuIGVzY2FuZW8gZW4gY3Vyc28uIEVzcGVyYSBhIHF1ZSB0ZXJtaW5lLicpOw0KICAgICAgc2hvd0xvZ1BhbmVsKCk7DQogICAgfSBlbHNlIHsNCiAgICAgIGJ0bi5pbm5lckhUTUwgPSBvcmlnOyBidG4uZGlzYWJsZWQgPSBmYWxzZTsNCiAgICAgIGFsZXJ0KCdFcnJvcjogJyArIChkLmVycm9yIHx8ICdkZXNjb25vY2lkbycpKTsNCiAgICB9DQogIH0gY2F0Y2ggKGUpIHsNCiAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgYWxlcnQoJ0Vycm9yIGRlIHJlZCBhbCBpbmljaWFyIGVsIGVzY2FuZW8nKTsNCiAgfQ0KfQ0KDQovLyBJbmljaWFsaXphcg0KbG9hZFBvcnRhbHMoKTsNCmxvYWRTY3JhcGVySGVhbHRoKCk7DQppbml0U1NFKCk7DQo8L3NjcmlwdD4NCg0KPCEtLSBCb3R0b20gVGFiIEJhciAtLT4NCjxuYXYgY2xhc3M9ImJvdHRvbS10YWItYmFyIGQtbWQtbm9uZSIgcm9sZT0ibmF2aWdhdGlvbiIgYXJpYS1sYWJlbD0iTmF2ZWdhY2nDs24gcHJpbmNpcGFsIj4NCiAgPGEgaHJlZj0iL2Rhc2hib2FyZCIgICAgICAgICAgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS1ob3VzZS1maWxsIj48L2k+PHNwYW4+SW5pY2lvPC9zcGFuPjwvYT4NCiAgPGEgaHJlZj0iL2Rhc2hib2FyZC9tYXAiICAgICAgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQvbWFwIj48aSBjbGFzcz0iYmkgYmktbWFwLWZpbGwiPjwvaT48c3Bhbj5NYXBhPC9zcGFuPjwvYT4NCiAgPGEgaHJlZj0iL2Rhc2hib2FyZC9maWx0ZXJzIiAgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQvZmlsdGVycyI+PGkgY2xhc3M9ImJpIGJpLWZ1bm5lbC1maWxsIj48L2k+PHNwYW4+RmlsdHJvczwvc3Bhbj48L2E+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvYW5hbHl0aWNzIiBjbGFzcz0idGFiLWl0ZW0iIGRhdGEtcGF0aD0iL2Rhc2hib2FyZC9hbmFseXRpY3MiPjxpIGNsYXNzPSJiaSBiaS1iYXItY2hhcnQtZmlsbCI+PC9pPjxzcGFuPlN0YXRzPC9zcGFuPjwvYT4NCiAgPGJ1dHRvbiBjbGFzcz0idGFiLWl0ZW0gdGFiLXNjYW4iIG9uY2xpY2s9InNjcmFwZU5vdygpIiBhcmlhLWxhYmVsPSJFc2NhbmVhciBwcm9waWVkYWRlcyI+PGkgY2xhc3M9ImJpIGJpLWFycm93LXJlcGVhdCI+PC9pPjxzcGFuPkVzY2FuZWFyPC9zcGFuPjwvYnV0dG9uPg0KPC9uYXY+DQo8c2NyaXB0Pg0KaWYgKCJzZXJ2aWNlV29ya2VyIiBpbiBuYXZpZ2F0b3IpIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvc3cuanMiLCB7IHNjb3BlOiAiLyIgfSk7DQphc3luYyBmdW5jdGlvbiBzY3JhcGVOb3coKSB7DQogIGNvbnN0IGJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50YWItc2NhbiIpOw0KICBpZiAoYnRuKSB7IGJ0bi5kaXNhYmxlZCA9IHRydWU7IH0NCiAgdHJ5IHsNCiAgICBjb25zdCByID0gYXdhaXQgZmV0Y2goIi9hcGkvc2NyYXBlci9zY3JhcGUiLCB7IG1ldGhvZDogIlBPU1QiIH0pOw0KICAgIGNvbnN0IGQgPSBhd2FpdCByLmpzb24oKTsNCiAgICBpZiAoci5zdGF0dXMgPT09IDIwMiB8fCBkLnN1Y2Nlc3MpIHsgaWYgKGJ0bikgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iYmkgYmktY2hlY2stY2lyY2xlIj48L2k+PHNwYW4+4pyTPC9zcGFuPic7IH0NCiAgICBlbHNlIGFsZXJ0KCJFcnJvcjogIiArIChkLmVycm9yIHx8ICJkZXNjb25vY2lkbyIpKTsNCiAgfSBjYXRjaChlKSB7IGFsZXJ0KCJFcnJvciBkZSByZWQiKTsgfQ0KICBpZiAoYnRuKSB7IHNldFRpbWVvdXQoKCkgPT4geyBidG4uZGlzYWJsZWQgPSBmYWxzZTsgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iYmkgYmktYXJyb3ctcmVwZWF0Ij48L2k+PHNwYW4+RXNjYW5lYXI8L3NwYW4+JzsgfSwgMzAwMCk7IH0NCn0NCjwvc2NyaXB0Pg0KPC9ib2R5Pg0KPC9odG1sPg0K","afterExisted":true,"afterHash":"116f96fdd15ad3cc3d597aea58ffd6938937aace02910e662d4800e76b77dd73","afterContent":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlcyI+DQo8aGVhZD4NCiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgdmlld3BvcnQtZml0PWNvdmVyIj4NCiAgPG1ldGEgbmFtZT0ibW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZSIgY29udGVudD0iYmxhY2stdHJhbnNsdWNlbnQiPg0KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iTGzDrXJpYVByb3BzIj4NCiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPg0KICA8bWV0YSBuYW1lPSJjb2xvci1zY2hlbWUiIGNvbnRlbnQ9ImxpZ2h0Ij4NCiAgPG1ldGEgbmFtZT0iZm9ybWF0LWRldGVjdGlvbiIgY29udGVudD0idGVsZXBob25lPW5vLCBkYXRlPW5vLCBlbWFpbD1ubywgYWRkcmVzcz1ubyI+DQogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4NCiAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi5wbmciPg0KICA8bGluayByZWw9Imljb24iIGhyZWY9Ii9pY29ucy9pY29uLnN2ZyIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCI+DQogIDx0aXRsZT5Qb3J0YWxlcyAtIExsaXJpYSBQcm9wZXJ0aWVzPC90aXRsZT4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXAtaWNvbnNAMS4xMS4yL2ZvbnQvYm9vdHN0cmFwLWljb25zLm1pbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvbWFpbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvZGFzaGJvYXJkLmNzcyI+DQo8L2hlYWQ+DQo8Ym9keSBjbGFzcz0iaGFzLWJvdHRvbS1uYXYiPg0KPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctcHJpbWFyeSBzdGlja3ktdG9wIj4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIHB4LTMiPg0KICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQgZnctYm9sZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIiBocmVmPSIvZGFzaGJvYXJkIj4NCiAgICAgIDxpIGNsYXNzPSJiaSBiaS1ob3VzZS1oZWFydC1maWxsIGZzLTUiPjwvaT4NCiAgICAgIDxzcGFuIGNsYXNzPSJkLW5vbmUgZC1zbS1pbmxpbmUiPkxsaXJpYSBQcm9wZXJ0aWVzPC9zcGFuPg0KICAgIDwvYT4NCiAgICA8YnV0dG9uIGNsYXNzPSJuYXZiYXItdG9nZ2xlciIgdHlwZT0iYnV0dG9uIiBkYXRhLWJzLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtYnMtdGFyZ2V0PSIjbWFpbk5hdiI+DQogICAgICA8c3BhbiBjbGFzcz0ibmF2YmFyLXRvZ2dsZXItaWNvbiI+PC9zcGFuPg0KICAgIDwvYnV0dG9uPg0KICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSIgaWQ9Im1haW5OYXYiPg0KICAgICAgPHVsIGNsYXNzPSJuYXZiYXItbmF2IG1lLWF1dG8iPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsiIGhyZWY9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS10YWJsZSBtZS0xIj48L2k+UHJvcGllZGFkZXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL21hcCI+PGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIG1lLTEiPjwvaT5NYXBhPC9hPjwvbGk+DQogICAgICAgIDxsaSBjbGFzcz0ibmF2LWl0ZW0iPjxhIGNsYXNzPSJuYXYtbGluayIgaHJlZj0iL2Rhc2hib2FyZC96b25lcyI+PGkgY2xhc3M9ImJpIGJpLWdlby1hbHQtZmlsbCBtZS0xIj48L2k+Wm9uYXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL2ZpbHRlcnMiPjxpIGNsYXNzPSJiaSBiaS1mdW5uZWwtZmlsbCBtZS0xIj48L2k+RmlsdHJvczwvYT48L2xpPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsgYWN0aXZlIiBocmVmPSIvZGFzaGJvYXJkL3BvcnRhbHMiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMSI+PC9pPlBvcnRhbGVzPC9hPjwvbGk+DQogICAgICA8L3VsPg0KICAgICAgPGRpdiBjbGFzcz0iZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgIDxhIGhyZWY9Ii9sb2dvdXQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktYm94LWFycm93LXJpZ2h0Ij48L2k+PC9hPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9uYXY+DQoNCjxtYWluIGNsYXNzPSJjb250YWluZXIgcHktNCIgc3R5bGU9Im1heC13aWR0aDo5MDBweCI+DQogIDxkaXYgY2xhc3M9ImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgbWItNCI+DQogICAgPGg0IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMiB0ZXh0LXByaW1hcnkiPjwvaT5HZXN0acOzbiBkZSBQb3J0YWxlczwvaDQ+DQogICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3MiIGlkPSJhY3RpdmVDb3VudCI+4oCUPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj5hY3Rpdm9zPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IiBpZD0iZGF0YUNvdW50Ij7igJQ8L3NwYW4+DQogICAgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPmNvbiBkYXRvczwvc3Bhbj4NCiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1zbSBtcy1hdXRvIHJvdW5kZWQtMyIgb25jbGljaz0ibG9hZFBvcnRhbHMoKSI+DQogICAgICA8aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5SZWNhcmdhcg0KICAgIDwvYnV0dG9uPg0KICA8L2Rpdj4NCg0KICA8IS0tIExpc3RhIGRlIHBvcnRhbGVzIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20gbWItNCI+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciBhbGlnbi1taWRkbGUgbWItMCIgaWQ9InBvcnRhbHNUYWJsZSI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1kYXJrIj4NCiAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJwcy0zIj5Qb3J0YWw8L3RoPg0KICAgICAgICAgICAgICA8dGg+Q2xhc2Ugc2NyYXBlcjwvdGg+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPlByb3BpZWRhZGVzPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+RXN0YWRvPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+QWNjaW9uZXM8L3RoPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgIDx0Ym9keSBpZD0icG9ydGFsc0JvZHkiPg0KICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI1IiBjbGFzcz0idGV4dC1jZW50ZXIgcHktNCB0ZXh0LW11dGVkIj4NCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG1lLTIiPjwvc3Bhbj5DYXJnYW5kby4uLg0KICAgICAgICAgICAgPC90ZD48L3RyPg0KICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQoNCiAgPCEtLSBTYWx1ZCBkZSBzY3JhcGVycyAtLT4NCiAgPGRpdiBjbGFzcz0iY2FyZCByb3VuZGVkLTQgYm9yZGVyLTAgc2hhZG93LXNtIG1iLTQiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLXdoaXRlIGJvcmRlci0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIiPg0KICAgICAgPGg2IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1oZWFydC1wdWxzZS1maWxsIHRleHQtZGFuZ2VyIG1lLTIiPjwvaT5TYWx1ZCBkZSBzY3JhcGVycyBwb3IgcG9ydGFsL29wZXJhY2nDs248L2g2Pg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tc20gcm91bmRlZC0zIiBvbmNsaWNrPSJsb2FkU2NyYXBlckhlYWx0aCgpIj48aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5BY3R1YWxpemFyPC9idXR0b24+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1zbSBhbGlnbi1taWRkbGUgbWItMCI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1saWdodCI+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0icHMtMyI+UG9ydGFsPC90aD4NCiAgICAgICAgICAgICAgPHRoPlZlbnRhICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkFscXVpbGVyICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkRpYWduw7NzdGljbzwvdGg+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDwvdGhlYWQ+DQogICAgICAgICAgPHRib2R5IGlkPSJoZWFsdGhCb2R5Ij4NCiAgICAgICAgICAgIDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+Q2FyZ2FuZG8gc2FsdWQuLi48L3RkPjwvdHI+DQogICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCg0KICA8IS0tIFBhbmVsIGRlIExvZ3MgZW4gVGllbXBvIFJlYWwgLS0+DQogIDxkaXYgY2xhc3M9ImNhcmQgcm91bmRlZC00IGJvcmRlci0wIHNoYWRvdy1zbSBtYi00IiBpZD0ibG9nc0NhcmQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLWRhcmsgdGV4dC13aGl0ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtdG9wLTQgcHktMiI+DQogICAgICA8c3BhbiBpZD0ibG9nU3RhdHVzRG90IiBjbGFzcz0icm91bmRlZC1jaXJjbGUgZC1pbmxpbmUtYmxvY2siIHN0eWxlPSJ3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6IzZjNzU3ZDtmbGV4LXNocmluazowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MiPjwvc3Bhbj4NCiAgICAgIDxzcGFuIGNsYXNzPSJmdy1zZW1pYm9sZCBzbWFsbCBmbGV4LWdyb3ctMSI+PGkgY2xhc3M9ImJpIGJpLXRlcm1pbmFsLWZpbGwgbWUtMSI+PC9pPkxvZ3MgZGUgU2NyYXBpbmcgZW4gVGllbXBvIFJlYWw8L3NwYW4+CiAgICAgIDxzcGFuIGlkPSJsb2dSdW5Nb2RlIiBjbGFzcz0iYmFkZ2UgYmctc2Vjb25kYXJ5Ij5JbmFjdGl2bzwvc3Bhbj4KICAgICAgPHNwYW4gaWQ9ImxvZ1BvcnRhbEJhZGdlIiBjbGFzcz0iYmFkZ2UgYmctcHJpbWFyeSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9zcGFuPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSByb3VuZGVkLTMgcHktMCBweC0yIiBvbmNsaWNrPSJjbGVhckxvZ3MoKSIgdGl0bGU9IkxpbXBpYXIgbG9ncyI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaDMiPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgcm91bmRlZC0zIHB5LTAgcHgtMiIgb25jbGljaz0idG9nZ2xlTG9nUGFuZWwoKSIgdGl0bGU9Ik1pbmltaXphciI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS1kYXNoLWxnIiBpZD0ibG9nc1RvZ2dsZUljb24iPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImxvZ3NCb2R5IiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGlkPSJsb2dzQ29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OjI4MHB4O292ZXJmbG93LXk6YXV0bztmb250LWZhbWlseTonQ291cmllciBOZXcnLG1vbm9zcGFjZTtmb250LXNpemU6MC43OHJlbTtiYWNrZ3JvdW5kOiMwZDExMTc7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXJhZGl1czowIDAgMXJlbSAxcmVtIj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1tdXRlZCIgaWQ9ImxvZ3NQbGFjZWhvbGRlciI+Q29uZWN0YW5kbyBhbCBzdHJlYW0gZGUgbG9ncy4uLjwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQogIDwhLS0gRm9ybXVsYXJpbyBwYXJhIGHDsWFkaXIgcG9ydGFsIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20iPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQogICAgICA8aDYgY2xhc3M9ImZ3LWJvbGQgbWItMyI+PGkgY2xhc3M9ImJpIGJpLXBsdXMtY2lyY2xlLWZpbGwgbWUtMiB0ZXh0LXN1Y2Nlc3MiPjwvaT5Bw7FhZGlyIFBvcnRhbCBQZXJzb25hbGl6YWRvPC9oNj4NCiAgICAgIDxmb3JtIGlkPSJhZGRQb3J0YWxGb3JtIiBjbGFzcz0icm93IGctMiIgb25zdWJtaXQ9ImFkZFBvcnRhbChldmVudCkiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgY29sLW1kLTQiPg0KICAgICAgICAgIDxpbnB1dCBpZD0icE5hbWUiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iTm9tYnJlIChlajogRm90b2Nhc2EpIiByZXF1aXJlZD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBjb2wtbWQtNCI+DQogICAgICAgICAgPGlucHV0IGlkPSJwQ2xhc3MiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iQ2xhc2Ugc2NyYXBlciAoZWo6IEZvdG9jYXNhU2NyYXBlcikiIHJlcXVpcmVkPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxzZWxlY3QgaWQ9InBBY3RpdmUiIGNsYXNzPSJmb3JtLXNlbGVjdCByb3VuZGVkLTMiPg0KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+QWN0aXZvPC9vcHRpb24+DQogICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5JbmFjdGl2bzwvb3B0aW9uPg0KICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIHctMTAwIHJvdW5kZWQtMyI+DQogICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktcGx1cy1sZyBtZS0xIj48L2k+QcOxYWRpcg0KICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZm9ybT4NCiAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXQtMyBtYi0wIHNtYWxsIHB5LTIiPg0KICAgICAgICA8aSBjbGFzcz0iYmkgYmktaW5mby1jaXJjbGUgbWUtMSI+PC9pPg0KICAgICAgICBMYSBjbGFzZSBzY3JhcGVyIGRlYmUgY29pbmNpZGlyIGV4YWN0YW1lbnRlIGNvbiBlbCBub21icmUgZXhwb3J0YWRvIGVuIDxjb2RlPnNyYy9zY3JhcGVycy9pbmRleC50czwvY29kZT4uPGJyPg0KICAgICAgICBMYSBkaXNwb25pYmlsaWRhZCByZWFsIHkgbGFzIG9wZXJhY2lvbmVzIGFkbWl0aWRhcyBzZSBtdWVzdHJhbiBlbiBsYSB0YWJsYSBkZSBzYWx1ZDsgcmVnaXN0cmFyIHVuYSBjbGFzZSBubyBnYXJhbnRpemEgcXVlIHN1IHBvcnRhbCBlc3TDqSBvcGVyYXRpdm8uCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjwvbWFpbj4NCg0KPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMy4yL2Rpc3QvanMvYm9vdHN0cmFwLmJ1bmRsZS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdD4NCmNvbnN0IElDT05fTUFQID0gew0KICBpZGVhbGlzdGE6ICJiaS1idWlsZGluZyIsDQogIGZvdG9jYXNhOiAiYmktY2FtZXJhLWZpbGwiLA0KICBoYWJpdGFjbGlhOiAiYmktaG91c2UtZG9vci1maWxsIiwNCiAgInBpc29zLWNvbSI6ICJiaS1saXN0LXVsIiwNCiAgdHJvdml0OiAiYmktc2VhcmNoIiwNCiAga3llcm86ICJiaS1nbG9iZTIiLA0KICB0aGlua3NwYWluOiAiYmktZmxhZy1maWxsIiwNCiAgZ2xvYmFsaXphOiAiYmktZ2VvLWZpbGwiLA0KICB0ZWNub2Nhc2E6ICJiaS1zaG9wIiwNCiAgcmVtYXg6ICJiaS1zdGFyLWZpbGwiLA0KICBtaWxhbnVuY2lvczogImJpLW1lZ2FwaG9uZS1maWxsIiwNCiAgbnVyb2E6ICJiaS1sYXllcnMtZmlsbCIsDQogIHNwYWluaG91c2VzOiAiYmktaG91c2VzLWZpbGwiLA0KICBob2xwcm9wOiAiYmkta2V5LWZpbGwiLA0KICB5YWVuY29udHJlOiAiYmktcGluLW1hcC1maWxsIiwNCiAgY2FzYXNhcG86ICJiaS1idWlsZGluZy1maWxsIiwNCiAgZW5nZWx2b2xrZXJzOiAiYmktZ2VtIiwNCiAgImVyYS1zcGFpbiI6ICJiaS1hd2FyZC1maWxsIiwNCiAgdmliYm86ICJiaS1jaGF0LXNxdWFyZS1kb3RzLWZpbGwiLA0KICBpbm1vYmlsaWFyaWE6ICJiaS1zaWduLXR1cm4tcmlnaHQtZmlsbCINCn07DQoNCmZ1bmN0aW9uIGdldEljb24oc2x1Zykgew0KICByZXR1cm4gSUNPTl9NQVBbc2x1Z10gfHwgImJpLXBsdWctZmlsbCI7DQp9DQoNCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8gU1NFIOKAlCBMb2dzIGVuIHRpZW1wbyByZWFsDQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmxldCBzc2VTb3VyY2UgPSBudWxsOw0KbGV0IGxvZ3NWaXNpYmxlID0gZmFsc2U7DQpsZXQgbG9nQ291bnQgPSAwOw0KDQpjb25zdCBMRVZFTF9TVFlMRSA9IHsNCiAgaW5mbzogICAgeyBjb2xvcjogIiM4YmI5ZmUiLCBpY29uOiAiYmktaW5mby1jaXJjbGUtZmlsbCIgfSwNCiAgc3VjY2VzczogeyBjb2xvcjogIiM1NmQzNjQiLCBpY29uOiAiYmktY2hlY2stY2lyY2xlLWZpbGwiIH0sDQogIHdhcm46ICAgIHsgY29sb3I6ICIjZTNiMzQxIiwgaWNvbjogImJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWZpbGwiIH0sDQogIGVycm9yOiAgIHsgY29sb3I6ICIjZjg1MTQ5IiwgaWNvbjogImJpLXgtY2lyY2xlLWZpbGwiIH0sDQogIGRlYnVnOiAgIHsgY29sb3I6ICIjOGQ5NmEwIiwgaWNvbjogImJpLWJ1Zy1maWxsIiB9LA0KfTsNCg0KZnVuY3Rpb24gaW5pdFNTRSgpIHsNCiAgaWYgKHNzZVNvdXJjZSkgcmV0dXJuOw0KICBzc2VTb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoIi9hcGkvc2NyYXBlci9sb2dzL3N0cmVhbSIpOw0KDQogIHNzZVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJsb2ciLCAoZSkgPT4gew0KICAgIGNvbnN0IGV2ID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGFwcGVuZExvZyhldik7DQogIH0pOw0KDQogIHNzZVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsIChlKSA9PiB7DQogICAgY29uc3QgZXYgPSBKU09OLnBhcnNlKGUuZGF0YSk7DQogICAgaGFuZGxlUHJvZ3Jlc3MoZXYpOw0KICB9KTsNCg0KICBzc2VTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcigic3RhdHVzIiwgKGUpID0+IHsNCiAgICBjb25zdCBldiA9IEpTT04ucGFyc2UoZS5kYXRhKTsNCiAgICB1cGRhdGVTdGF0dXNEb3QoZXYucnVubmluZywgZXYubW9kZSk7CiAgICBpZiAoZXYucnVubmluZykgc2hvd0xvZ1BhbmVsKCk7DQogIH0pOw0KDQogIHNzZVNvdXJjZS5vbmVycm9yID0gKCkgPT4gew0KICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgaWYgKHNzZVNvdXJjZSkgeyBzc2VTb3VyY2UuY2xvc2UoKTsgc3NlU291cmNlID0gbnVsbDsgfQ0KICAgICAgaW5pdFNTRSgpOw0KICAgIH0sIDUwMDApOw0KICB9Ow0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVTdGF0dXNEb3QocnVubmluZywgbW9kZSA9IHJ1bm5pbmcgPyAibWFudWFsIiA6ICJpZGxlIikgewogIGNvbnN0IGRvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dTdGF0dXNEb3QiKTsKICBjb25zdCBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dSdW5Nb2RlIik7CiAgaWYgKCFkb3QpIHJldHVybjsKICBpZiAocnVubmluZykgewogICAgZG90LnN0eWxlLmJhY2tncm91bmQgPSAiIzU2ZDM2NCI7DQogICAgZG90LnN0eWxlLmJveFNoYWRvdyA9ICIwIDAgNnB4ICM1NmQzNjQiOw0KICB9IGVsc2UgewogICAgZG90LnN0eWxlLmJhY2tncm91bmQgPSAiIzZjNzU3ZCI7DQogICAgZG90LnN0eWxlLmJveFNoYWRvdyA9ICJub25lIjsNCiAgfQogIGNvbnN0IGxhYmVsID0gbW9kZSA9PT0gInNjaGVkdWxlZCIgPyAiUHJvZ3JhbWFkbyIgOiBtb2RlID09PSAibWFudWFsIiA/ICJNYW51YWwiIDogIkluYWN0aXZvIjsKICBkb3QudGl0bGUgPSBgRXN0YWRvOiAke2xhYmVsfWA7CiAgaWYgKGJhZGdlKSB7CiAgICBiYWRnZS50ZXh0Q29udGVudCA9IGxhYmVsOwogICAgYmFkZ2UuY2xhc3NOYW1lID0gYGJhZGdlICR7cnVubmluZyA/ICJiZy1zdWNjZXNzIiA6ICJiZy1zZWNvbmRhcnkifWA7CiAgfQp9DQoNCmZ1bmN0aW9uIGFwcGVuZExvZyhldikgew0KICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc0NvbnRhaW5lciIpOw0KICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOw0KICBjb25zdCBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzUGxhY2Vob2xkZXIiKTsNCiAgaWYgKHBsYWNlaG9sZGVyKSBwbGFjZWhvbGRlci5yZW1vdmUoKTsNCg0KICBjb25zdCBzdHlsZSA9IExFVkVMX1NUWUxFW2V2LmxldmVsXSB8fCBMRVZFTF9TVFlMRS5pbmZvOw0KICBjb25zdCB0cyA9IG5ldyBEYXRlKGV2LnRzKS50b0xvY2FsZVRpbWVTdHJpbmcoImVzLUVTIiwgeyBob3VyMTI6IGZhbHNlIH0pOw0KICBjb25zdCBwb3J0YWwgPSBldi5wb3J0YWwgPyBgPHNwYW4gc3R5bGU9ImNvbG9yOiNlM2IzNDE7bWFyZ2luLXJpZ2h0OjRweCI+WyR7ZXYucG9ydGFsfV08L3NwYW4+YCA6ICIiOw0KICBjb25zdCBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogIGxpbmUuc3R5bGUuY3NzVGV4dCA9ICJtYXJnaW4tYm90dG9tOjJweDtsaW5lLWhlaWdodDoxLjU7d29yZC1icmVhazpicmVhay13b3JkIjsNCiAgbGluZS5pbm5lckhUTUwgPSBgPHNwYW4gc3R5bGU9ImNvbG9yOiM1NTU7dXNlci1zZWxlY3Q6bm9uZSI+JHt0c30gPC9zcGFuPiR7cG9ydGFsfTxpIGNsYXNzPSJiaSAke3N0eWxlLmljb259IiBzdHlsZT0iY29sb3I6JHtzdHlsZS5jb2xvcn07bWFyZ2luLXJpZ2h0OjRweDtmb250LXNpemU6LjdyZW0iPjwvaT48c3BhbiBzdHlsZT0iY29sb3I6JHtzdHlsZS5jb2xvcn0iPiR7ZXNjSHRtbChldi5tc2cpfTwvc3Bhbj5gOw0KICBjb250YWluZXIuYXBwZW5kQ2hpbGQobGluZSk7DQogIGxvZ0NvdW50Kys7DQogIC8vIE1hbnRlbmVyIG3DoXhpbW8gNDAwIGzDrW5lYXMgdmlzaWJsZXMNCiAgd2hpbGUgKGNvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGggPiA0MDApIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjb250YWluZXIuZmlyc3RDaGlsZCk7DQogIC8vIEF1dG8tc2Nyb2xsIHNpIGVzdGFiYSBhbCBmaW5hbA0KICBpZiAoY29udGFpbmVyLnNjcm9sbFRvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQgPj0gY29udGFpbmVyLnNjcm9sbEhlaWdodCAtIDQwKSB7DQogICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7DQogIH0NCn0NCg0KZnVuY3Rpb24gaGFuZGxlUHJvZ3Jlc3MoZXYpIHsNCiAgaWYgKGV2LnBoYXNlID09PSAic3RhcnQiKSB7DQogICAgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nUG9ydGFsQmFkZ2UiKTsNCiAgICBpZiAoYmFkZ2UpIHsgYmFkZ2UudGV4dENvbnRlbnQgPSBldi5wb3J0YWw7IGJhZGdlLnN0eWxlLmRpc3BsYXkgPSAiIjsgfQ0KICAgIHNob3dMb2dQYW5lbCgpOw0KICB9IGVsc2UgaWYgKGV2LnBoYXNlID09PSAiZG9uZSIgfHwgZXYucGhhc2UgPT09ICJlcnJvciIpIHsNCiAgICBzZXRUaW1lb3V0KGxvYWRQb3J0YWxzLCAzMDAwKTsgLy8gcmVmcmVzY2FyIGNvbnRhZG9yZXMgdHJhcyAzcw0KICB9DQp9DQoNCmZ1bmN0aW9uIHNob3dMb2dQYW5lbCgpIHsNCiAgY29uc3QgY2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzQ2FyZCIpOw0KICBpZiAoY2FyZCkgeyBjYXJkLnN0eWxlLmRpc3BsYXkgPSAiIjsgbG9nc1Zpc2libGUgPSB0cnVlOyB9DQp9DQoNCmZ1bmN0aW9uIHRvZ2dsZUxvZ1BhbmVsKCkgew0KICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NCb2R5Iik7DQogIGNvbnN0IGljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc1RvZ2dsZUljb24iKTsNCiAgaWYgKCFib2R5KSByZXR1cm47DQogIGNvbnN0IGNvbGxhcHNlZCA9IGJvZHkuc3R5bGUuZGlzcGxheSA9PT0gIm5vbmUiOw0KICBib2R5LnN0eWxlLmRpc3BsYXkgPSBjb2xsYXBzZWQgPyAiIiA6ICJub25lIjsNCiAgaWNvbi5jbGFzc05hbWUgPSBjb2xsYXBzZWQgPyAiYmkgYmktZGFzaC1sZyIgOiAiYmkgYmktY2hldnJvbi11cCI7DQp9DQoNCmZ1bmN0aW9uIGNsZWFyTG9ncygpIHsNCiAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NDb250YWluZXIiKTsNCiAgaWYgKGNvbnRhaW5lcikgew0KICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0idGV4dC1tdXRlZCIgaWQ9ImxvZ3NQbGFjZWhvbGRlciI+TG9ncyBsaW1waWFkb3M8L2Rpdj4nOw0KICB9DQogIGxvZ0NvdW50ID0gMDsNCn0NCg0KZnVuY3Rpb24gZXNjSHRtbChzdHIpIHsNCiAgcmV0dXJuIFN0cmluZyhzdHIpDQogICAgLnJlcGxhY2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpLnJlcGxhY2UoLz4vZywgIiZndDsiKQ0KICAgIC5yZXBsYWNlKC8iL2csICImcXVvdDsiKS5yZXBsYWNlKC8nL2csICImIzAzOTsiKTsNCn0NCg0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyBQb3J0YWxlcw0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQphc3luYyBmdW5jdGlvbiBsb2FkUG9ydGFscygpIHsNCiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goIi9hcGkvcG9ydGFscyIpOw0KICBjb25zdCBwb3J0YWxzID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgY29uc3QgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9ydGFsc0JvZHkiKTsNCiAgbGV0IGFjdGl2ZSA9IDA7DQogIGxldCB3aXRoRGF0YSA9IDA7DQoNCiAgaWYgKCFwb3J0YWxzLmxlbmd0aCkgew0KICAgIHRib2R5LmlubmVySFRNTCA9IGA8dHI+PHRkIGNvbHNwYW49IjUiIGNsYXNzPSJ0ZXh0LWNlbnRlciBweS00IHRleHQtbXV0ZWQiPk5vIGhheSBwb3J0YWxlcyBjb25maWd1cmFkb3M8L3RkPjwvdHI+YDsNCiAgICByZXR1cm47DQogIH0NCg0KICB0Ym9keS5pbm5lckhUTUwgPSBwb3J0YWxzLm1hcChwID0+IHsNCiAgICBpZiAocC5hY3RpdmUpIGFjdGl2ZSsrOw0KICAgIGNvbnN0IGljb24gPSBnZXRJY29uKHAuc2x1Zyk7DQogICAgY29uc3QgY291bnQgPSBwLnByb3BlcnR5X2NvdW50IHx8IDA7DQogICAgaWYgKGNvdW50ID4gMCkgd2l0aERhdGErKzsNCiAgICBjb25zdCBiYWRnZSA9IHAuYWN0aXZlDQogICAgICA/IGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+QWN0aXZvPC9zcGFuPmANCiAgICAgIDogYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zZWNvbmRhcnkiPkluYWN0aXZvPC9zcGFuPmA7DQogICAgY29uc3QgdG9nZ2xlVGl0bGUgPSBwLmFjdGl2ZSA/ICJEZXNhY3RpdmFyIiA6ICJBY3RpdmFyIjsNCiAgICBjb25zdCB0b2dnbGVDbGFzcyA9IHAuYWN0aXZlID8gImJ0bi1vdXRsaW5lLXdhcm5pbmciIDogImJ0bi1vdXRsaW5lLXN1Y2Nlc3MiOw0KICAgIGNvbnN0IHRvZ2dsZUljb24gPSBwLmFjdGl2ZSA/ICJiaS1wYXVzZS1maWxsIiA6ICJiaS1wbGF5LWZpbGwiOw0KICAgIGNvbnN0IGNvdW50QmFkZ2UgPSBjb3VudCA+IDANCiAgICAgID8gYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IHJvdW5kZWQtcGlsbCI+JHtjb3VudH08L3NwYW4+YA0KICAgICAgOiBgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPuKAlDwvc3Bhbj5gOw0KICAgIHJldHVybiBgPHRyIGlkPSJyb3ctJHtwLmlkfSI+DQogICAgICA8dGQgY2xhc3M9InBzLTMiPg0KICAgICAgICA8aSBjbGFzcz0iYmkgJHtpY29ufSBtZS0yIHRleHQtcHJpbWFyeSI+PC9pPg0KICAgICAgICA8c3Ryb25nPiR7cC5uYW1lfTwvc3Ryb25nPg0KICAgICAgPC90ZD4NCiAgICAgIDx0ZD48Y29kZSBjbGFzcz0idGV4dC1tdXRlZCI+JHtwLnNjcmFwZXJfY2xhc3N9PC9jb2RlPjwvdGQ+DQogICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4ke2NvdW50QmFkZ2V9PC90ZD4NCiAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiIGlkPSJiYWRnZS0ke3AuaWR9Ij4ke2JhZGdlfTwvdGQ+DQogICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4NCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuICR7dG9nZ2xlQ2xhc3N9IGJ0bi1zbSByb3VuZGVkLTMgbWUtMSIgdGl0bGU9IiR7dG9nZ2xlVGl0bGV9IiBvbmNsaWNrPSJ0b2dnbGVQb3J0YWwoJHtwLmlkfSkiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSAke3RvZ2dsZUljb259Ij48L2k+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAke3AuYWN0aXZlID8gYDxidXR0b24gY2xhc3M9ImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSByb3VuZGVkLTMgbWUtMSIgdGl0bGU9IkVzY2FuZWFyIGVzdGUgcG9ydGFsIGFob3JhIiBpZD0ic2Nhbi0ke3Auc2x1Z30iIG9uY2xpY2s9InNjcmFwZVBvcnRhbCgnJHtwLnNsdWd9JywgdGhpcykiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS1wbGF5LWNpcmNsZS1maWxsIj48L2k+DQogICAgICAgIDwvYnV0dG9uPmAgOiAnJ30NCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLWRhbmdlciBidG4tc20gcm91bmRlZC0zIiB0aXRsZT0iRWxpbWluYXIiIG9uY2xpY2s9ImRlbGV0ZVBvcnRhbCgke3AuaWR9LCAnJHtwLm5hbWV9JykiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaDMtZmlsbCI+PC9pPg0KICAgICAgICA8L2J1dHRvbj4NCiAgICAgIDwvdGQ+DQogICAgPC90cj5gOw0KICB9KS5qb2luKCIiKTsNCg0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlQ291bnQiKS50ZXh0Q29udGVudCA9IGFjdGl2ZTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhdGFDb3VudCIpLnRleHRDb250ZW50ID0gd2l0aERhdGE7DQp9DQoNCmZ1bmN0aW9uIGhlYWx0aEJhZGdlKG1zZykgew0KICBjb25zdCBtID0gKG1zZyB8fCAiIikudG9Mb3dlckNhc2UoKTsNCiAgaWYgKG0uaW5jbHVkZXMoIm9rIikpIHJldHVybiBgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3Mtc3VidGxlIHRleHQtc3VjY2VzcyBib3JkZXIgYm9yZGVyLXN1Y2Nlc3Mtc3VidGxlIj4ke21zZ308L3NwYW4+YDsNCiAgaWYgKG0uaW5jbHVkZXMoImluYWN0aXZvIikpIHJldHVybiBgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXNlY29uZGFyeS1zdWJ0bGUgdGV4dC1zZWNvbmRhcnkgYm9yZGVyIGJvcmRlci1zZWNvbmRhcnktc3VidGxlIj4ke21zZ308L3NwYW4+YDsNCiAgcmV0dXJuIGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctd2FybmluZy1zdWJ0bGUgdGV4dC13YXJuaW5nIGJvcmRlciBib3JkZXItd2FybmluZy1zdWJ0bGUiPiR7bXNnfTwvc3Bhbj5gOw0KfQ0KDQphc3luYyBmdW5jdGlvbiBsb2FkU2NyYXBlckhlYWx0aCgpIHsNCiAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFsdGhCb2R5Iik7DQogIGJvZHkuaW5uZXJIVE1MID0gYDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+Q2FyZ2FuZG8gc2FsdWQuLi48L3RkPjwvdHI+YDsNCiAgdHJ5IHsNCiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgiL2FwaS9wb3J0YWxzL2hlYWx0aCIpOw0KICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZXMuanNvbigpOw0KICAgIGlmICghanNvbi5zdWNjZXNzIHx8ICFqc29uLmRhdGE/Lmxlbmd0aCkgew0KICAgICAgYm9keS5pbm5lckhUTUwgPSBgPHRyPjx0ZCBjb2xzcGFuPSI0IiBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC1tdXRlZCBweS0zIj5TaW4gZGF0b3M8L3RkPjwvdHI+YDsNCiAgICAgIHJldHVybjsNCiAgICB9DQogICAgYm9keS5pbm5lckhUTUwgPSBqc29uLmRhdGEubWFwKHIgPT4gew0KICAgICAgY29uc3Qgc2FsZSA9IGAke3Iuc2FsZS50b3RhbH0gLyAke3Iuc2FsZS5sYXN0MjRofWA7DQogICAgICBjb25zdCByZW50ID0gYCR7ci5yZW50LnRvdGFsfSAvICR7ci5yZW50Lmxhc3QyNGh9YDsNCiAgICAgIGNvbnN0IGRpYWcgPSBgDQogICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMSI+DQogICAgICAgICAgJHtoZWFsdGhCYWRnZSgiVmVudGE6ICIgKyByLnNhbGUuZGlhZ25vc2lzKX0NCiAgICAgICAgICAke2hlYWx0aEJhZGdlKCJBbHF1aWxlcjogIiArIHIucmVudC5kaWFnbm9zaXMpfQ0KICAgICAgICA8L2Rpdj5gOw0KICAgICAgcmV0dXJuIGA8dHI+DQogICAgICAgIDx0ZCBjbGFzcz0icHMtMyI+PHN0cm9uZz4ke3IucG9ydGFsfTwvc3Ryb25nPjwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4ke3NhbGV9PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4ke3JlbnR9PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD4ke2RpYWd9PC90ZD4NCiAgICAgIDwvdHI+YDsNCiAgICB9KS5qb2luKCIiKTsNCiAgfSBjYXRjaCAoZSkgew0KICAgIGJvZHkuaW5uZXJIVE1MID0gYDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtZGFuZ2VyIHB5LTMiPkVycm9yIGNhcmdhbmRvIHNhbHVkPC90ZD48L3RyPmA7DQogIH0NCn0NCg0KYXN5bmMgZnVuY3Rpb24gdG9nZ2xlUG9ydGFsKGlkKSB7DQogIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAvYXBpL3BvcnRhbHMvJHtpZH0vdG9nZ2xlYCwgeyBtZXRob2Q6ICJQQVRDSCIgfSk7DQogIGNvbnN0IGQgPSBhd2FpdCByZXMuanNvbigpOw0KICBpZiAoZC5zdWNjZXNzKSBsb2FkUG9ydGFscygpOw0KfQ0KDQphc3luYyBmdW5jdGlvbiBkZWxldGVQb3J0YWwoaWQsIG5hbWUpIHsNCiAgaWYgKCFjb25maXJtKGDCv0VsaW1pbmFyIGVsIHBvcnRhbCAiJHtuYW1lfSI/IEVzdGEgYWNjacOzbiBubyBzZSBwdWVkZSBkZXNoYWNlci5gKSkgcmV0dXJuOw0KICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9wb3J0YWxzLyR7aWR9YCwgeyBtZXRob2Q6ICJERUxFVEUiIH0pOw0KICBjb25zdCBkID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgaWYgKGQuc3VjY2Vzcykgew0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGByb3ctJHtpZH1gKT8ucmVtb3ZlKCk7DQogICAgbG9hZFBvcnRhbHMoKTsNCiAgfSBlbHNlIHsNCiAgICBhbGVydCgiRXJyb3IgYWwgZWxpbWluYXIgZWwgcG9ydGFsIik7DQogIH0NCn0NCg0KYXN5bmMgZnVuY3Rpb24gYWRkUG9ydGFsKGV2ZW50KSB7DQogIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQogIGNvbnN0IG5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicE5hbWUiKS52YWx1ZS50cmltKCk7DQogIGNvbnN0IHNjcmFwZXJfY2xhc3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicENsYXNzIikudmFsdWUudHJpbSgpOw0KICBjb25zdCBhY3RpdmUgPSBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicEFjdGl2ZSIpLnZhbHVlKTsNCiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goIi9hcGkvcG9ydGFscyIsIHsNCiAgICBtZXRob2Q6ICJQT1NUIiwNCiAgICBoZWFkZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwNCiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IG5hbWUsIHNjcmFwZXJfY2xhc3MsIGFjdGl2ZSB9KQ0KICB9KTsNCiAgY29uc3QgZCA9IGF3YWl0IHJlcy5qc29uKCk7DQogIGlmIChkLnN1Y2Nlc3MpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWRkUG9ydGFsRm9ybSIpLnJlc2V0KCk7DQogICAgbG9hZFBvcnRhbHMoKTsNCiAgfSBlbHNlIHsNCiAgICBhbGVydCgiRXJyb3I6ICIgKyAoZC5lcnJvciB8fCAiZGVzY29ub2NpZG8iKSk7DQogIH0NCn0NCg0KYXN5bmMgZnVuY3Rpb24gc2NyYXBlUG9ydGFsKHNsdWcsIGJ0bikgew0KICBjb25zdCBvcEluID0gcHJvbXB0KCdPcGVyYWNpw7NuIHBhcmEgZXNjYW5lYXIgZXN0ZSBwb3J0YWw6ICJzYWxlIiAodmVudGEpIG8gInJlbnQiIChhbHF1aWxlciknLCAic2FsZSIpOw0KICBpZiAoIW9wSW4pIHJldHVybjsNCiAgY29uc3Qgb3AgPSBTdHJpbmcob3BJbikudHJpbSgpLnRvTG93ZXJDYXNlKCk7DQogIGlmICghWyJzYWxlIiwgInJlbnQiXS5pbmNsdWRlcyhvcCkpIHsNCiAgICBhbGVydCgnT3BlcmFjacOzbiBubyB2w6FsaWRhLiBVc2EgInNhbGUiIG8gInJlbnQiLicpOw0KICAgIHJldHVybjsNCiAgfQ0KICBjb25zdCBvcmlnID0gYnRuLmlubmVySFRNTDsNCiAgYnRuLmRpc2FibGVkID0gdHJ1ZTsNCiAgYnRuLmlubmVySFRNTCA9ICc8c3BhbiBjbGFzcz0ic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20iPjwvc3Bhbj4nOw0KDQogIC8vIE1vc3RyYXIgcGFuZWwgZGUgbG9ncyB5IGFicmlyIGNvbmV4acOzbiBTU0UNCiAgc2hvd0xvZ1BhbmVsKCk7DQogIGNsZWFyTG9ncygpOw0KICBpbml0U1NFKCk7DQoNCiAgdHJ5IHsNCiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9zY3JhcGVyL3NjcmFwZS8ke3NsdWd9P29wPSR7b3B9YCwgeyBtZXRob2Q6ICdQT1NUJyB9KTsNCiAgICBjb25zdCBkID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAyIHx8IGQuc3VjY2Vzcykgew0KICAgICAgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iYmkgYmktaG91cmdsYXNzLXNwbGl0IHRleHQtcHJpbWFyeSI+PC9pPic7DQogICAgICB1cGRhdGVTdGF0dXNEb3QodHJ1ZSk7DQogICAgICAvLyBFbCBwYW5lbCBTU0UgbW9zdHJhcsOhIGVsIHByb2dyZXNvOyByZXN0YXVyYXIgYm90w7NuIGN1YW5kbyBlbCBzY3JhcGluZyB0ZXJtaW5lDQogICAgICBjb25zdCByZXN0b3JlQnRuID0gKCkgPT4gew0KICAgICAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsNCiAgICAgICAgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgICB9Ow0KICAgICAgLy8gUG9sbGluZyBkZSBlc3RhZG8gcGFyYSByZXN0YXVyYXIgZWwgYm90w7NuDQogICAgICBjb25zdCBwb2xsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgIGNvbnN0IHN0ID0gYXdhaXQgZmV0Y2goIi9hcGkvc2NyYXBlci9zdGF0dXMiKTsNCiAgICAgICAgICBjb25zdCBzID0gYXdhaXQgc3QuanNvbigpOw0KICAgICAgICAgIGlmICghcy5ydW5uaW5nKSB7CiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocG9sbCk7DQogICAgICAgICAgICByZXN0b3JlQnRuKCk7DQogICAgICAgICAgICB1cGRhdGVTdGF0dXNEb3QoZmFsc2UpOw0KICAgICAgICAgICAgbG9hZFBvcnRhbHMoKTsNCiAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2ggeyBjbGVhckludGVydmFsKHBvbGwpOyByZXN0b3JlQnRuKCk7IH0NCiAgICAgIH0sIDUwMDApOw0KICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gNDA5KSB7DQogICAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgICBhbGVydCgn4o+zIFlhIGhheSB1biBlc2NhbmVvIGVuIGN1cnNvLiBFc3BlcmEgYSBxdWUgdGVybWluZS4nKTsNCiAgICAgIHNob3dMb2dQYW5lbCgpOw0KICAgIH0gZWxzZSB7DQogICAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgICBhbGVydCgnRXJyb3I6ICcgKyAoZC5lcnJvciB8fCAnZGVzY29ub2NpZG8nKSk7DQogICAgfQ0KICB9IGNhdGNoIChlKSB7DQogICAgYnRuLmlubmVySFRNTCA9IG9yaWc7IGJ0bi5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIGFsZXJ0KCdFcnJvciBkZSByZWQgYWwgaW5pY2lhciBlbCBlc2NhbmVvJyk7DQogIH0NCn0NCg0KLy8gSW5pY2lhbGl6YXINCmxvYWRQb3J0YWxzKCk7DQpsb2FkU2NyYXBlckhlYWx0aCgpOw0KaW5pdFNTRSgpOw0KPC9zY3JpcHQ+DQoNCjwhLS0gQm90dG9tIFRhYiBCYXIgLS0+DQo8bmF2IGNsYXNzPSJib3R0b20tdGFiLWJhciBkLW1kLW5vbmUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9Ik5hdmVnYWNpw7NuIHByaW5jaXBhbCI+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQiICAgICAgICAgIGNsYXNzPSJ0YWItaXRlbSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkIj48aSBjbGFzcz0iYmkgYmktaG91c2UtZmlsbCI+PC9pPjxzcGFuPkluaWNpbzwvc3Bhbj48L2E+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvbWFwIiAgICAgIGNsYXNzPSJ0YWItaXRlbSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkL21hcCI+PGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIj48L2k+PHNwYW4+TWFwYTwvc3Bhbj48L2E+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvZmlsdGVycyIgIGNsYXNzPSJ0YWItaXRlbSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkL2ZpbHRlcnMiPjxpIGNsYXNzPSJiaSBiaS1mdW5uZWwtZmlsbCI+PC9pPjxzcGFuPkZpbHRyb3M8L3NwYW4+PC9hPg0KICA8YSBocmVmPSIvZGFzaGJvYXJkL2FuYWx5dGljcyIgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQvYW5hbHl0aWNzIj48aSBjbGFzcz0iYmkgYmktYmFyLWNoYXJ0LWZpbGwiPjwvaT48c3Bhbj5TdGF0czwvc3Bhbj48L2E+DQogIDxidXR0b24gY2xhc3M9InRhYi1pdGVtIHRhYi1zY2FuIiBvbmNsaWNrPSJzY3JhcGVOb3coKSIgYXJpYS1sYWJlbD0iRXNjYW5lYXIgcHJvcGllZGFkZXMiPjxpIGNsYXNzPSJiaSBiaS1hcnJvdy1yZXBlYXQiPjwvaT48c3Bhbj5Fc2NhbmVhcjwvc3Bhbj48L2J1dHRvbj4NCjwvbmF2Pg0KPHNjcmlwdD4NCmlmICgic2VydmljZVdvcmtlciIgaW4gbmF2aWdhdG9yKSBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL3N3LmpzIiwgeyBzY29wZTogIi8iIH0pOw0KYXN5bmMgZnVuY3Rpb24gc2NyYXBlTm93KCkgew0KICBjb25zdCBidG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudGFiLXNjYW4iKTsNCiAgaWYgKGJ0bikgeyBidG4uZGlzYWJsZWQgPSB0cnVlOyB9DQogIHRyeSB7DQogICAgY29uc3QgciA9IGF3YWl0IGZldGNoKCIvYXBpL3NjcmFwZXIvc2NyYXBlIiwgeyBtZXRob2Q6ICJQT1NUIiB9KTsNCiAgICBjb25zdCBkID0gYXdhaXQgci5qc29uKCk7DQogICAgaWYgKHIuc3RhdHVzID09PSAyMDIgfHwgZC5zdWNjZXNzKSB7IGlmIChidG4pIGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImJpIGJpLWNoZWNrLWNpcmNsZSI+PC9pPjxzcGFuPuKckzwvc3Bhbj4nOyB9DQogICAgZWxzZSBhbGVydCgiRXJyb3I6ICIgKyAoZC5lcnJvciB8fCAiZGVzY29ub2NpZG8iKSk7DQogIH0gY2F0Y2goZSkgeyBhbGVydCgiRXJyb3IgZGUgcmVkIik7IH0NCiAgaWYgKGJ0bikgeyBzZXRUaW1lb3V0KCgpID0+IHsgYnRuLmRpc2FibGVkID0gZmFsc2U7IGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImJpIGJpLWFycm93LXJlcGVhdCI+PC9pPjxzcGFuPkVzY2FuZWFyPC9zcGFuPic7IH0sIDMwMDApOyB9DQp9DQo8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4NCg==","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"},{"relativePath":"lliria-properties-scraper\\test-scheduling-and-coverage.js","beforeExisted":true,"beforeHash":"5048bf9d1f81afa8e54a199f06423dc1d20458ea0c2ff495aa996490860a4a4c","beforeContent":"Y29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgibm9kZTphc3NlcnQvc3RyaWN0Iik7CmNvbnN0IHsgaGF2ZXJzaW5lS20sIGNvdmVyYWdlU2VnbWVudCB9ID0gcmVxdWlyZSgiLi9kaXN0L2NvbmZpZy92YWxlbmNpYUNvdmVyYWdlIik7CmNvbnN0IHsgaXNDaGFsbGVuZ2VQYWdlIH0gPSByZXF1aXJlKCIuL2Rpc3Qvc2NyYXBlcnMvcG9ydGFsQnJvd3NlclNlc3Npb24iKTsKY29uc3QgeyBwYXJzZURhaWx5VGltZSwgZ2V0TmV4dERhaWx5UnVuQXQgfSA9IHJlcXVpcmUoIi4vZGlzdC9zZXJ2aWNlcy9zY2hlZHVsZXJTZXJ2aWNlIik7Cgphc3NlcnQub2soaGF2ZXJzaW5lS20oMzkuNDY5OSwgLTAuMzc2MywgMzkuNDY5OSwgLTAuMzc2MykgPCAwLjAwMSk7CmNvbnN0IGxsaXJpYURpc3RhbmNlID0gaGF2ZXJzaW5lS20oMzkuNDY5OSwgLTAuMzc2MywgMzkuNjI4OTQsIC0wLjU5NzgzKTsKYXNzZXJ0Lm9rKGxsaXJpYURpc3RhbmNlID4gMjUgJiYgbGxpcmlhRGlzdGFuY2UgPCAyNyk7CmFzc2VydC5tYXRjaChjb3ZlcmFnZVNlZ21lbnQoMzkuNjI4OTQsIC0wLjU5NzgzKSwgL15leHRlcmlvci0oTnxOVykkLyk7Cgphc3NlcnQuZXF1YWwoaXNDaGFsbGVuZ2VQYWdlKHsgc3RhdHVzOiA0MjkgfSksIHRydWUpOwphc3NlcnQuZXF1YWwoaXNDaGFsbGVuZ2VQYWdlKHsgdXJsOiAiaHR0cHM6Ly9leGFtcGxlLnRlc3QvYW50aWJvdC9jaGFsbGVuZ2UiIH0pLCB0cnVlKTsKYXNzZXJ0LmVxdWFsKGlzQ2hhbGxlbmdlUGFnZSh7IGh0bWw6ICI8aHRtbD48Ym9keT52ZXJpZnkgeW91IGFyZSBodW1hbjwvYm9keT48L2h0bWw+IiB9KSwgdHJ1ZSk7CmFzc2VydC5lcXVhbChpc0NoYWxsZW5nZVBhZ2UoeyBodG1sOiAiPGh0bWw+PGJvZHk+MCByZXN1bHRhZG9zPC9ib2R5PjwvaHRtbD4iIH0pLCBmYWxzZSk7Cgphc3NlcnQuZGVlcEVxdWFsKHBhcnNlRGFpbHlUaW1lKCIwMTowNSIpLCB7IGhvdXI6IDEsIG1pbnV0ZTogNSB9KTsKYXNzZXJ0LnRocm93cygoKSA9PiBwYXJzZURhaWx5VGltZSgiMjU6MDAiKSk7CmNvbnN0IG5leHQgPSBnZXROZXh0RGFpbHlSdW5BdChuZXcgRGF0ZSgiMjAyNi0wNy0yMlQyMjowMDowMC4wMDBaIiksIDEsIDAsICJFdXJvcGUvTWFkcmlkIik7CmFzc2VydC5lcXVhbChuZXh0LnRvSVNPU3RyaW5nKCksICIyMDI2LTA3LTIyVDIzOjAwOjAwLjAwMFoiKTsKCmNvbnNvbGUubG9nKCJTY2hlZHVsaW5nLCBjaGFsbGVuZ2UgZGV0ZWN0aW9uIGFuZCBWYWxlbmNpYSBjb3ZlcmFnZSB0ZXN0czogT0siKTsK","afterExisted":true,"afterHash":"90ac5f74cbd26bbb1fce02de521e05ce77fc458a1dbad66f3329dca2358ba36d","afterContent":"Y29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgibm9kZTphc3NlcnQvc3RyaWN0Iik7CmNvbnN0IHsgaGF2ZXJzaW5lS20sIGNvdmVyYWdlU2VnbWVudCB9ID0gcmVxdWlyZSgiLi9kaXN0L2NvbmZpZy92YWxlbmNpYUNvdmVyYWdlIik7CmNvbnN0IHsgaXNDaGFsbGVuZ2VQYWdlIH0gPSByZXF1aXJlKCIuL2Rpc3Qvc2NyYXBlcnMvcG9ydGFsQnJvd3NlclNlc3Npb24iKTsKY29uc3QgeyBwYXJzZURhaWx5VGltZSwgZ2V0TmV4dERhaWx5UnVuQXQgfSA9IHJlcXVpcmUoIi4vZGlzdC9zZXJ2aWNlcy9zY2hlZHVsZXJTZXJ2aWNlIik7CmNvbnN0IHsgc2NyYXBlUnVuQ29vcmRpbmF0b3IgfSA9IHJlcXVpcmUoIi4vZGlzdC9zZXJ2aWNlcy9zY3JhcGVSdW5Db29yZGluYXRvciIpOwoKYXNzZXJ0Lm9rKGhhdmVyc2luZUttKDM5LjQ2OTksIC0wLjM3NjMsIDM5LjQ2OTksIC0wLjM3NjMpIDwgMC4wMDEpOwpjb25zdCBsbGlyaWFEaXN0YW5jZSA9IGhhdmVyc2luZUttKDM5LjQ2OTksIC0wLjM3NjMsIDM5LjYyODk0LCAtMC41OTc4Myk7CmFzc2VydC5vayhsbGlyaWFEaXN0YW5jZSA+IDI1ICYmIGxsaXJpYURpc3RhbmNlIDwgMjcpOwphc3NlcnQubWF0Y2goY292ZXJhZ2VTZWdtZW50KDM5LjYyODk0LCAtMC41OTc4MyksIC9eZXh0ZXJpb3ItKE58TlcpJC8pOwoKYXNzZXJ0LmVxdWFsKGlzQ2hhbGxlbmdlUGFnZSh7IHN0YXR1czogNDI5IH0pLCB0cnVlKTsKYXNzZXJ0LmVxdWFsKGlzQ2hhbGxlbmdlUGFnZSh7IHVybDogImh0dHBzOi8vZXhhbXBsZS50ZXN0L2FudGlib3QvY2hhbGxlbmdlIiB9KSwgdHJ1ZSk7CmFzc2VydC5lcXVhbChpc0NoYWxsZW5nZVBhZ2UoeyBodG1sOiAiPGh0bWw+PGJvZHk+dmVyaWZ5IHlvdSBhcmUgaHVtYW48L2JvZHk+PC9odG1sPiIgfSksIHRydWUpOwphc3NlcnQuZXF1YWwoaXNDaGFsbGVuZ2VQYWdlKHsgaHRtbDogIjxodG1sPjxib2R5PjAgcmVzdWx0YWRvczwvYm9keT48L2h0bWw+IiB9KSwgZmFsc2UpOwoKYXNzZXJ0LmRlZXBFcXVhbChwYXJzZURhaWx5VGltZSgiMDE6MDUiKSwgeyBob3VyOiAxLCBtaW51dGU6IDUgfSk7CmFzc2VydC50aHJvd3MoKCkgPT4gcGFyc2VEYWlseVRpbWUoIjI1OjAwIikpOwpjb25zdCBuZXh0ID0gZ2V0TmV4dERhaWx5UnVuQXQobmV3IERhdGUoIjIwMjYtMDctMjJUMjI6MDA6MDAuMDAwWiIpLCAxLCAwLCAiRXVyb3BlL01hZHJpZCIpOwphc3NlcnQuZXF1YWwobmV4dC50b0lTT1N0cmluZygpLCAiMjAyNi0wNy0yMlQyMzowMDowMC4wMDBaIik7Cgphc3NlcnQuZXF1YWwoc2NyYXBlUnVuQ29vcmRpbmF0b3IudHJ5U3RhcnQoIm1hbnVhbCIpLCB0cnVlKTsKYXNzZXJ0LmVxdWFsKHNjcmFwZVJ1bkNvb3JkaW5hdG9yLnRyeVN0YXJ0KCJzY2hlZHVsZWQiKSwgZmFsc2UpOwphc3NlcnQuZXF1YWwoc2NyYXBlUnVuQ29vcmRpbmF0b3Iuc3RhdHVzKCkubW9kZSwgIm1hbnVhbCIpOwpzY3JhcGVSdW5Db29yZGluYXRvci5maW5pc2goInNjaGVkdWxlZCIpOwphc3NlcnQuZXF1YWwoc2NyYXBlUnVuQ29vcmRpbmF0b3Iuc3RhdHVzKCkucnVubmluZywgdHJ1ZSk7CnNjcmFwZVJ1bkNvb3JkaW5hdG9yLmZpbmlzaCgibWFudWFsIik7CmFzc2VydC5lcXVhbChzY3JhcGVSdW5Db29yZGluYXRvci5zdGF0dXMoKS5ydW5uaW5nLCBmYWxzZSk7Cgpjb25zb2xlLmxvZygiU2NoZWR1bGluZywgY2hhbGxlbmdlIGRldGVjdGlvbiBhbmQgVmFsZW5jaWEgY292ZXJhZ2UgdGVzdHM6IE9LIik7Cg==","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"},{"relativePath":"lliria-properties-scraper\\docs\\roadmap-comercial.md","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"c1839334bbcf951d8ac6f03236a62106b641d84860f1fa456d3a8a3e3d73edea","afterContent":"IyBSb2FkbWFwIHBhcmEgY29tZXJjaWFsaXphY2nDs24KCiMjIFAwIOKAlCBhbnRlcyBkZSBleHBvbmVyIGEgY2xpZW50ZXMKCjEuICoqU2VndXJpZGFkIGRlIGFjY2Vzby4qKiBFbGltaW5hciBjdWVudGFzIHkgY29udHJhc2XDsWFzIGZhbGxiYWNrIGRlbCBjw7NkaWdvLAogICBleGlnaXIgc2VjcmV0b3MgZW4gcHJvZHVjY2nDs24sIGNvb2tpZXMgYHNlY3VyZWAvYGh0dHBPbmx5YC9gc2FtZVNpdGVgLCBIVFRQUywKICAgQ09SUyBwb3IgYWxsb3dsaXN0LCBjYWJlY2VyYXMgZGUgc2VndXJpZGFkIHkgcHJvdGVjY2nDs24gQ1NSRi4KMi4gKipBaXNsYW1pZW50byBkZSBjbGllbnRlcy4qKiBBw7FhZGlyIG9yZ2FuaXphY2lvbmVzLCBtZW1icmVzw61hcyB5IHJvbGVzOyB0b2RhcwogICBsYXMgZW50aWRhZGVzIGNvbmZpZ3VyYWJsZXMgKGZpbHRyb3MsIGZhdm9yaXRvcywgbm90YXMsIGFsZXJ0YXMgeSBleHBvcnRzKQogICBuZWNlc2l0YW4gYG9yZ2FuaXphdGlvbl9pZGAgbyBgdXNlcl9pZGAuIEhveSBsb3MgdXN1YXJpb3MgY29tcGFydGVuIGRhdG9zLgozLiAqKkxlZ2FsIHkgY3VtcGxpbWllbnRvLioqIERvY3VtZW50YXIgcGFyYSBjYWRhIGZ1ZW50ZSB0w6lybWlub3MgZGUgdXNvLAogICByb2JvdHMsIGJhc2UganVyw61kaWNhLCByZXRlbmNpw7NuIHkgcHJvY2VkaW1pZW50byBkZSByZXRpcmFkYS4gRGVmaW5pciBEUEEsCiAgIHByaXZhY2lkYWQsIGNvb2tpZXMgeSB0cmF6YWJpbGlkYWQgZGUgZXhwb3J0YWNpb25lcy4KNC4gKipJbnRlZ3JpZGFkIGRlIGRhdG9zLioqIFZlcnNpb25hciBlamVjdWNpb25lcyBwb3IgcG9ydGFsL29wZXJhY2nDs24vem9uYSwKICAgY29uc2VydmFyIGNvYmVydHVyYSB5IHJlc3VsdGFkbywgeSBhcmNoaXZhciBzb2xvIGVsIGFsY2FuY2UgY29tcGxldGFkby4gVW4KICAgY2hhbGxlbmdlIG8gdW4gbG90ZSBwYXJjaWFsIG51bmNhIGRlYmUgaW50ZXJwcmV0YXJzZSBjb21vIHJldGlyYWRhLgo1LiAqKk9wZXJhY2nDs24gcmVjdXBlcmFibGUuKiogQmFja3VwcyBwcm9iYWRvcywgbWlncmFjaW9uZXMgdmVyc2lvbmFkYXMsCiAgIGhlYWx0aC9yZWFkaW5lc3MsIGFsZXJ0YXMgcG9yIGF1c2VuY2lhIGRlIGRhdG9zIHkgcnVuYm9va3MgZGUgaW5jaWRlbnRlcy4KCiMjIFAxIOKAlCBwcm9kdWN0byB2ZW5kaWJsZQoKMS4gT25ib2FyZGluZyBkZSBvcmdhbml6YWNpw7NuLCBpbnZpdGFjaW9uZXMsIHJlY3VwZXJhY2nDs24gZGUgY29udHJhc2XDsWEgeSBNRkEKICAgcGFyYSBhZG1pbmlzdHJhZG9yZXMuCjIuIFBsYW5lcywgbMOtbWl0ZXMgZGUgdXNvLCBmYWN0dXJhY2nDs24sIHBlcmlvZG9zIGRlIHBydWViYSB5IG1lZGljacOzbiBkZSBjb25zdW1vCiAgICh6b25hcywgZnVlbnRlcywgdXN1YXJpb3MsIGV4cG9ydHMgeSBhbGVydGFzKS4KMy4gQWxlcnRhcyBjb25maWd1cmFibGVzIHBvciBlbWFpbC93ZWJob29rLCBwcmVmZXJlbmNpYXMgcG9yIHVzdWFyaW8geSByZWdpc3RybwogICBkZSBlbnRyZWdhL3JlaW50ZW50b3MuCjQuIENhbGlkYWQgdmlzaWJsZTogZnJlc2N1cmEsIGNvYmVydHVyYSwgw7psdGltYSBlamVjdWNpw7NuLCB0YXNhIGRlIMOpeGl0bywKICAgYW51bmNpb3MgbnVldm9zL2FjdHVhbGl6YWRvcy9yZXRpcmFkb3MgeSBtb3Rpdm8gZGUgZGVncmFkYWNpw7NuIHBvciBmdWVudGUuCjUuIEFQSSBww7pibGljYSB2ZXJzaW9uYWRhIGNvbiBjbGF2ZXMgcG9yIG9yZ2FuaXphY2nDs24sIGN1b3RhcywgaWRlbXBvdGVuY2lhIHkKICAgZG9jdW1lbnRhY2nDs24gT3BlbkFQSS4KNi4gVGVzdHMgZGUgY29udHJhdG8gY29uIGZpeHR1cmVzIEhUTUwgcG9yIHBvcnRhbCwgRTJFIGRlIGxvcyBmbHVqb3MgY3LDrXRpY29zIHkKICAgZGVzcGxpZWd1ZSBjb24gc3RhZ2luZy9jYW5hcnkuCgojIyBQMiDigJQgZGlmZXJlbmNpYWNpw7NuCgoxLiBEZWR1cGxpY2FjacOzbiBlbnRyZSBwb3J0YWxlcyBleHBsaWNhYmxlLCBoaXN0b3JpYWwgZGUgcHJlY2lvcyB5IGFsZXJ0YXMgZGUKICAgYmFqYWRhIGNvbiBwdW50dWFjacOzbiBkZSBjb25maWFuemEuCjIuIENSTSBsaWdlcm86IHBpcGVsaW5lLCByZXNwb25zYWJsZSwgdGFyZWFzLCBsbGFtYWRhcyB5IG5vdGFzIGF1ZGl0YWJsZXMuCjMuIEVucmlxdWVjaW1pZW50byBnZW9ncsOhZmljbyB5IGRlIG1lcmNhZG8gY29uIHByb2NlZGVuY2lhIHkgbGljZW5jaWEgY2xhcmFzLgo0LiBQYW5lbCBlamVjdXRpdm8gcG9yIGNhcnRlcmEvbXVuaWNpcGlvL2FnZW50ZSB5IGV4cG9ydGFjaW9uZXMgcHJvZ3JhbWFkYXMuCjUuIEFycXVpdGVjdHVyYSBkZSB3b3JrZXJzL2NvbGFzIHBhcmEgc2VwYXJhciB3ZWIsIHNjcmFwaW5nLCBwb3N0cHJvY2VzYWRvIHkKICAgbm90aWZpY2FjaW9uZXM7IGVzY2FsYWRvIHkgcmVpbnRlbnRvcyBpbmRlcGVuZGllbnRlcy4KCiMjIENyaXRlcmlvIGRlIHNhbGlkYSBpbmljaWFsCgpVbmEgcHJpbWVyYSB2ZXJzacOzbiBjb21lcmNpYWwgZGViZXLDrWEgdGVuZXIgYWwgbWVub3MgdW4gcGlsb3RvIGNvbiBmdWVudGVzIHkKem9uYXMgY29udHJhY3R1YWxtZW50ZSBhY2VwdGFkYXMsIGFpc2xhbWllbnRvIG11bHRpLXRlbmFudCwgc2VndXJpZGFkIFAwLApiYWNrdXAgcmVzdGF1cmFkbyBlbiBwcnVlYmEsIG3DqXRyaWNhcyBkZSBjb2JlcnR1cmEvZnJlc2N1cmEgeSBzb3BvcnRlIG9wZXJhdGl2by4K","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\scrapeRunCoordinator.ts","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"099796bc24f11acad82063baf5eaacd66f03b6df5a445a693b737ee960218dee","afterContent":"ZXhwb3J0IHR5cGUgU2NyYXBlUnVuTW9kZSA9ICJtYW51YWwiIHwgInNjaGVkdWxlZCI7CgpsZXQgYWN0aXZlTW9kZTogU2NyYXBlUnVuTW9kZSB8IG51bGwgPSBudWxsOwpsZXQgc3RhcnRlZEF0OiBEYXRlIHwgbnVsbCA9IG51bGw7CgovKiogRXhjbHVzacOzbiBtdXR1YSBlbiBwcm9jZXNvIHBhcmEgc2NyYXBlcyBtYW51YWxlcyB5IHByb2dyYW1hZG9zLiAqLwpleHBvcnQgY29uc3Qgc2NyYXBlUnVuQ29vcmRpbmF0b3IgPSB7CiAgdHJ5U3RhcnQobW9kZTogU2NyYXBlUnVuTW9kZSk6IGJvb2xlYW4gewogICAgaWYgKGFjdGl2ZU1vZGUgIT09IG51bGwpIHJldHVybiBmYWxzZTsKICAgIGFjdGl2ZU1vZGUgPSBtb2RlOwogICAgc3RhcnRlZEF0ID0gbmV3IERhdGUoKTsKICAgIHJldHVybiB0cnVlOwogIH0sCgogIGZpbmlzaChtb2RlOiBTY3JhcGVSdW5Nb2RlKTogdm9pZCB7CiAgICBpZiAoYWN0aXZlTW9kZSAhPT0gbW9kZSkgcmV0dXJuOwogICAgYWN0aXZlTW9kZSA9IG51bGw7CiAgICBzdGFydGVkQXQgPSBudWxsOwogIH0sCgogIHN0YXR1cygpOiB7IHJ1bm5pbmc6IGJvb2xlYW47IG1vZGU6IFNjcmFwZVJ1bk1vZGUgfCAiaWRsZSI7IHN0YXJ0ZWRBdDogc3RyaW5nIHwgbnVsbCB9IHsKICAgIHJldHVybiB7CiAgICAgIHJ1bm5pbmc6IGFjdGl2ZU1vZGUgIT09IG51bGwsCiAgICAgIG1vZGU6IGFjdGl2ZU1vZGUgfHwgImlkbGUiLAogICAgICBzdGFydGVkQXQ6IHN0YXJ0ZWRBdD8udG9JU09TdHJpbmcoKSB8fCBudWxsLAogICAgfTsKICB9LAp9Owo=","decision":"accepted","decidedAt":"2026-07-22T22:39:00.922Z"}]},{"id":"cp-1784822168043-1ff51641","turnId":"019f8faf-3f1a-7572-9304-196d43798c2f","createdAt":"2026-07-23T15:56:08.043Z","changedFiles":0,"files":[]},{"id":"cp-1785166937680-ef9ed91a","turnId":"019fa364-9778-7430-ad58-663578bd9999","createdAt":"2026-07-27T15:42:17.680Z","changedFiles":25,"files":[{"relativePath":"lliria-properties-scraper\\package.json","beforeExisted":true,"beforeHash":"c6c46b9c1bcf7d36f79f640160dc858829982ec890d94c0260ada1ee6f4dc910","beforeContent":"ewogICJuYW1lIjogImxsaXJpYS1wcm9wZXJ0aWVzLXNjcmFwZXIiLAogICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAiZGVzY3JpcHRpb24iOiAiQXBsaWNhY2nDs24gd2ViIHBhcmEgc2NyYXBpbmcgYXV0b23DoXRpY28gZGUgcHJvcGllZGFkZXMgZW4gdmVudGEgZW4gTGxpcmlhIHkgYWxyZWRlZG9yZXMsIGNvbiBlbnbDrW8gZGUgY29ycmVvcyBlbGVjdHLDs25pY29zIGF1dG9tw6F0aWNvcyBzZWfDum4gZmlsdHJvcyBlc3RhYmxlY2lkb3MuIiwKICAibWFpbiI6ICJkaXN0L2FwcC5qcyIsCiAgInNjcmlwdHMiOiB7CiAgICAic3RhcnQiOiAibm9kZSBkaXN0L2FwcC5qcyIsCiAgICAiYnVpbGQiOiAidHNjIiwKICAgICJ0ZXN0OnJlbnRhbC1yb3V0aW5nIjogIm5wbSBydW4gYnVpbGQgJiYgbm9kZSB0ZXN0LXJlbnRhbC1yb3V0aW5nLmpzIiwKICAgICJkZXYiOiAidHMtbm9kZS1kZXYgLS1yZXNwYXduIC0tdHJhbnNwaWxlLW9ubHkgc3JjL2FwcC50cyIsCiAgICAiZGV2OnRzIjogInRzLW5vZGUgc3JjL2FwcC50cyIsCiAgICAiaW5pdC1kYiI6ICJ0cy1ub2RlIHNyYy9jb25maWcvaW5pdERiLnRzIiwKICAgICJwb3B1bGF0ZS1tdW5pY2lwYWxpdGllcyI6ICJ0cy1ub2RlIHNyYy9zY3JpcHRzL3BvcHVsYXRlTXVuaWNpcGFsaXRpZXMudHMiLAogICAgImNvdmVyYWdlOmRyeS1ydW4iOiAidHMtbm9kZSBzcmMvc2NyaXB0cy9zeW5jVmFsZW5jaWFDb3ZlcmFnZS50cyIsCiAgICAiY292ZXJhZ2U6YXBwbHkiOiAidHMtbm9kZSBzcmMvc2NyaXB0cy9zeW5jVmFsZW5jaWFDb3ZlcmFnZS50cyAtLWFwcGx5IiwKICAgICJ0ZXN0OmNvcmUiOiAibnBtIHJ1biBidWlsZCAmJiBub2RlIHRlc3Qtc2NoZWR1bGluZy1hbmQtY292ZXJhZ2UuanMiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgImF4aW9zIjogIl4xLjYuMiIsCiAgICAiYmNyeXB0anMiOiAiXjIuNC4zIiwKICAgICJib2R5LXBhcnNlciI6ICJeMS4yMC4yIiwKICAgICJjaGVlcmlvIjogIl4xLjAuMC1yYy4xMiIsCiAgICAiY29ycyI6ICJeMi44LjUiLAogICAgImRvdGVudiI6ICJeMTYuMy4xIiwKICAgICJlanMiOiAiXjMuMS4xMCIsCiAgICAiZXhjZWxqcyI6ICJeNC40LjAiLAogICAgImV4cHJlc3MiOiAiXjQuMTguMiIsCiAgICAiZXhwcmVzcy1teXNxbC1zZXNzaW9uIjogIl4zLjAuMyIsCiAgICAiZXhwcmVzcy1yYXRlLWxpbWl0IjogIl44LjIuMSIsCiAgICAiZXhwcmVzcy1zZXNzaW9uIjogIl4xLjE3LjMiLAogICAgIm15c3FsMiI6ICJeMy42LjUiLAogICAgIm5vZGUtY3JvbiI6ICJeMy4wLjMiLAogICAgIm5vZGVtYWlsZXIiOiAiXjguMC4xIiwKICAgICJwLWxpbWl0IjogIl43LjMuMCIsCiAgICAicGxheXdyaWdodCI6ICJeMS41OC4yIiwKICAgICJwdXBwZXRlZXItZXh0cmEiOiAiXjMuMy42IiwKICAgICJwdXBwZXRlZXItZXh0cmEtcGx1Z2luLXN0ZWFsdGgiOiAiXjIuMTEuMiIsCiAgICAic2hhcnAiOiAiXjAuMzQuNSIKICB9LAogICJkZXZEZXBlbmRlbmNpZXMiOiB7CiAgICAiQHR5cGVzL2JjcnlwdGpzIjogIl4yLjQuNiIsCiAgICAiQHR5cGVzL2JvZHktcGFyc2VyIjogIl4xLjE5LjUiLAogICAgIkB0eXBlcy9jaGVlcmlvIjogIl4wLjIyLjM1IiwKICAgICJAdHlwZXMvY29ycyI6ICJeMi44LjE3IiwKICAgICJAdHlwZXMvZWpzIjogIl4zLjEuNSIsCiAgICAiQHR5cGVzL2V4cHJlc3MiOiAiXjQuMTcuMjEiLAogICAgIkB0eXBlcy9leHByZXNzLW15c3FsLXNlc3Npb24iOiAiXjMuMC44IiwKICAgICJAdHlwZXMvZXhwcmVzcy1zZXNzaW9uIjogIl4xLjE3LjEwIiwKICAgICJAdHlwZXMvbm9kZSI6ICJeMjAuMTAuMCIsCiAgICAiQHR5cGVzL25vZGUtY3JvbiI6ICJeMy4wLjExIiwKICAgICJAdHlwZXMvbm9kZW1haWxlciI6ICJeNi40LjE0IiwKICAgICJ0cy1ub2RlIjogIl4xMC45LjIiLAogICAgInRzLW5vZGUtZGV2IjogIl4yLjAuMCIsCiAgICAidHlwZXNjcmlwdCI6ICJeNS4zLjIiCiAgfSwKICAiZW5naW5lcyI6IHsKICAgICJub2RlIjogIj49MTYuMC4wIgogIH0sCiAgImxpY2Vuc2UiOiAiTUlUIgp9Cg==","afterExisted":true,"afterHash":"a6fff66209d46296f05f1aa92c4f14bcc0a214361eabf174e3460a39a8caba8e","afterContent":"ewogICJuYW1lIjogImxsaXJpYS1wcm9wZXJ0aWVzLXNjcmFwZXIiLAogICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAiZGVzY3JpcHRpb24iOiAiQXBsaWNhY2nDs24gd2ViIHBhcmEgc2NyYXBpbmcgYXV0b23DoXRpY28gZGUgcHJvcGllZGFkZXMgZW4gdmVudGEgZW4gTGxpcmlhIHkgYWxyZWRlZG9yZXMsIGNvbiBlbnbDrW8gZGUgY29ycmVvcyBlbGVjdHLDs25pY29zIGF1dG9tw6F0aWNvcyBzZWfDum4gZmlsdHJvcyBlc3RhYmxlY2lkb3MuIiwKICAibWFpbiI6ICJkaXN0L2FwcC5qcyIsCiAgInNjcmlwdHMiOiB7CiAgICAic3RhcnQiOiAibm9kZSBkaXN0L2FwcC5qcyIsCiAgICAiYnVpbGQiOiAidHNjIiwKICAgICJ0ZXN0OnJlbnRhbC1yb3V0aW5nIjogIm5wbSBydW4gYnVpbGQgJiYgbm9kZSB0ZXN0LXJlbnRhbC1yb3V0aW5nLmpzIiwKICAgICJkZXYiOiAidHMtbm9kZS1kZXYgLS1yZXNwYXduIC0tdHJhbnNwaWxlLW9ubHkgc3JjL2FwcC50cyIsCiAgICAiZGV2OnRzIjogInRzLW5vZGUgc3JjL2FwcC50cyIsCiAgICAiaW5pdC1kYiI6ICJ0cy1ub2RlIHNyYy9jb25maWcvaW5pdERiLnRzIiwKICAgICJtaWdyYXRlIjogInRzLW5vZGUgc3JjL3NjcmlwdHMvbWlncmF0ZS50cyIsCiAgICAidXNlcjpjcmVhdGUiOiAidHMtbm9kZSBzcmMvc2NyaXB0cy9jcmVhdGVVc2VyLnRzIiwKICAgICJwb3B1bGF0ZS1tdW5pY2lwYWxpdGllcyI6ICJ0cy1ub2RlIHNyYy9zY3JpcHRzL3BvcHVsYXRlTXVuaWNpcGFsaXRpZXMudHMiLAogICAgImNvdmVyYWdlOmRyeS1ydW4iOiAidHMtbm9kZSBzcmMvc2NyaXB0cy9zeW5jVmFsZW5jaWFDb3ZlcmFnZS50cyIsCiAgICAiY292ZXJhZ2U6YXBwbHkiOiAidHMtbm9kZSBzcmMvc2NyaXB0cy9zeW5jVmFsZW5jaWFDb3ZlcmFnZS50cyAtLWFwcGx5IiwKICAgICJ0ZXN0OmNvcmUiOiAibnBtIHJ1biBidWlsZCAmJiBub2RlIHRlc3Qtc2NoZWR1bGluZy1hbmQtY292ZXJhZ2UuanMiLAogICAgInRlc3Q6ZnJlc2huZXNzIjogIm5wbSBydW4gYnVpbGQgJiYgbm9kZSB0ZXN0LXByb3BlcnR5LWZyZXNobmVzcy5qcyIsCiAgICAidGVzdDp1c2VyLWlzb2xhdGlvbiI6ICJucG0gcnVuIGJ1aWxkICYmIG5vZGUgdGVzdC11c2VyLWlzb2xhdGlvbi5qcyIKICB9LAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiYXhpb3MiOiAiXjEuNi4yIiwKICAgICJiY3J5cHRqcyI6ICJeMi40LjMiLAogICAgImJvZHktcGFyc2VyIjogIl4xLjIwLjIiLAogICAgImNoZWVyaW8iOiAiXjEuMC4wLXJjLjEyIiwKICAgICJjb3JzIjogIl4yLjguNSIsCiAgICAiZG90ZW52IjogIl4xNi4zLjEiLAogICAgImVqcyI6ICJeMy4xLjEwIiwKICAgICJleGNlbGpzIjogIl40LjQuMCIsCiAgICAiZXhwcmVzcyI6ICJeNC4xOC4yIiwKICAgICJleHByZXNzLW15c3FsLXNlc3Npb24iOiAiXjMuMC4zIiwKICAgICJleHByZXNzLXJhdGUtbGltaXQiOiAiXjguMi4xIiwKICAgICJleHByZXNzLXNlc3Npb24iOiAiXjEuMTcuMyIsCiAgICAibXlzcWwyIjogIl4zLjYuNSIsCiAgICAibm9kZS1jcm9uIjogIl4zLjAuMyIsCiAgICAibm9kZW1haWxlciI6ICJeOC4wLjEiLAogICAgInAtbGltaXQiOiAiXjcuMy4wIiwKICAgICJwbGF5d3JpZ2h0IjogIl4xLjU4LjIiLAogICAgInB1cHBldGVlci1leHRyYSI6ICJeMy4zLjYiLAogICAgInB1cHBldGVlci1leHRyYS1wbHVnaW4tc3RlYWx0aCI6ICJeMi4xMS4yIiwKICAgICJzaGFycCI6ICJeMC4zNC41IgogIH0sCiAgImRldkRlcGVuZGVuY2llcyI6IHsKICAgICJAdHlwZXMvYmNyeXB0anMiOiAiXjIuNC42IiwKICAgICJAdHlwZXMvYm9keS1wYXJzZXIiOiAiXjEuMTkuNSIsCiAgICAiQHR5cGVzL2NoZWVyaW8iOiAiXjAuMjIuMzUiLAogICAgIkB0eXBlcy9jb3JzIjogIl4yLjguMTciLAogICAgIkB0eXBlcy9lanMiOiAiXjMuMS41IiwKICAgICJAdHlwZXMvZXhwcmVzcyI6ICJeNC4xNy4yMSIsCiAgICAiQHR5cGVzL2V4cHJlc3MtbXlzcWwtc2Vzc2lvbiI6ICJeMy4wLjgiLAogICAgIkB0eXBlcy9leHByZXNzLXNlc3Npb24iOiAiXjEuMTcuMTAiLAogICAgIkB0eXBlcy9ub2RlIjogIl4yMC4xMC4wIiwKICAgICJAdHlwZXMvbm9kZS1jcm9uIjogIl4zLjAuMTEiLAogICAgIkB0eXBlcy9ub2RlbWFpbGVyIjogIl42LjQuMTQiLAogICAgInRzLW5vZGUiOiAiXjEwLjkuMiIsCiAgICAidHMtbm9kZS1kZXYiOiAiXjIuMC4wIiwKICAgICJ0eXBlc2NyaXB0IjogIl41LjMuMiIKICB9LAogICJlbmdpbmVzIjogewogICAgIm5vZGUiOiAiPj0xNi4wLjAiCiAgfSwKICAibGljZW5zZSI6ICJNSVQiCn0K","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\app.ts","beforeExisted":true,"beforeHash":"9d09b637fc8a4df9a598e4c2c1a26400d7069c9f0e316949350c5996392c43b0","beforeContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IGV4cHJlc3MsIHsgUmVxdWVzdCwgUmVzcG9uc2UsIE5leHRGdW5jdGlvbiB9IGZyb20gImV4cHJlc3MiOwppbXBvcnQgc2Vzc2lvbiBmcm9tICJleHByZXNzLXNlc3Npb24iOwppbXBvcnQgTXlTUUxTdG9yZUZhY3RvcnkgZnJvbSAiZXhwcmVzcy1teXNxbC1zZXNzaW9uIjsKaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAiYm9keS1wYXJzZXIiOwppbXBvcnQgY29ycyBmcm9tICJjb3JzIjsKaW1wb3J0IHBhdGggZnJvbSAicGF0aCI7CmltcG9ydCByYXRlTGltaXQgZnJvbSAiZXhwcmVzcy1yYXRlLWxpbWl0IjsKaW1wb3J0IHsgY29ubmVjdERCIH0gZnJvbSAiLi9jb25maWcvZGIiOwppbXBvcnQgcG9vbCBmcm9tICIuL2NvbmZpZy9kYiI7CmltcG9ydCBhdXRoUm91dGVzIGZyb20gIi4vcm91dGVzL2F1dGhSb3V0ZXMiOwppbXBvcnQgcHJvcGVydHlSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvcHJvcGVydHlSb3V0ZXMiOwppbXBvcnQgc2NyYXBlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9zY3JhcGVyUm91dGVzIjsKaW1wb3J0IGZpbHRlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9maWx0ZXJSb3V0ZXMiOwppbXBvcnQgbWFwUm91dGVzIGZyb20gIi4vcm91dGVzL21hcFJvdXRlcyI7CmltcG9ydCB6b25lUm91dGVzIGZyb20gIi4vcm91dGVzL3pvbmVSb3V0ZXMiOwppbXBvcnQgcG9ydGFsUm91dGVzIGZyb20gIi4vcm91dGVzL3BvcnRhbFJvdXRlcyI7CmltcG9ydCBhbmFseXRpY3NSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYW5hbHl0aWNzUm91dGVzIjsKaW1wb3J0IG11bmljaXBhbGl0eVJvdXRlcyBmcm9tICIuL3JvdXRlcy9tdW5pY2lwYWxpdHlSb3V0ZXMiOwppbXBvcnQgdmFsZW5jaWFEaXN0cmljdFJvdXRlcyBmcm9tICIuL3JvdXRlcy92YWxlbmNpYURpc3RyaWN0Um91dGVzIjsKaW1wb3J0IGFpUm91dGVzIGZyb20gIi4vcm91dGVzL2FpUm91dGVzIjsKaW1wb3J0IGFpQWRtaW5Sb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYWlBZG1pblJvdXRlcyI7CmltcG9ydCB7IHJlcXVpcmVBZG1pbiB9IGZyb20gIi4vbWlkZGxld2FyZS9yZXF1aXJlQWRtaW4iOwppbXBvcnQgeyByZXF1aXJlQXV0aCB9IGZyb20gIi4vbWlkZGxld2FyZS9hdXRoIjsKaW1wb3J0IHsgc3RhcnRTY2hlZHVsZXIsIGdldFNjaGVkdWxlclN0YXR1cywgZ2V0UmVjZW50U2NyYXBpbmdMb2dzIH0gZnJvbSAiLi9zZXJ2aWNlcy9zY2hlZHVsZXJTZXJ2aWNlIjsKaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICIuL21vZGVscy9maWx0ZXJNb2RlbCI7CmltcG9ydCB7IFByb3BlcnR5TW9kZWwgfSBmcm9tICIuL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgWm9uZU1vZGVsIH0gZnJvbSAiLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuL21vZGVscy9wb3J0YWxNb2RlbCI7CmltcG9ydCB7IGdlbmVyYXRlUG5nSWNvbnMgfSBmcm9tICIuL3V0aWxzL2dlbmVyYXRlSWNvbnMiOwppbXBvcnQgeyBWQUxFTkNJQV9ORUlHSEJPUkhPT0RTIH0gZnJvbSAiLi9jb25maWcvdmFsZW5jaWFOZWlnaGJvcmhvb2RzIjsKaW1wb3J0IHsgVkFMRU5DSUFfRElTVFJJQ1RTIH0gZnJvbSAiLi9jb25maWcvdmFsZW5jaWFEaXN0cmljdHMiOwpjb25zdCBhcHAgPSBleHByZXNzKCk7CmNvbnN0IFBPUlQgPSBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCkgfHwgMzAwMDsKCi8vIE15U1FMIHNlc3Npb24gc3RvcmUgKGV2aXRhIHdhcm5pbmcgZGUgTWVtb3J5U3RvcmUgZW4gcHJvZHVjY2nDs24pCmNvbnN0IE15U1FMU3RvcmUgPSBNeVNRTFN0b3JlRmFjdG9yeShzZXNzaW9uKTsKY29uc3Qgc2Vzc2lvblN0b3JlID0gbmV3IE15U1FMU3RvcmUoCiAgeyBjcmVhdGVEYXRhYmFzZVRhYmxlOiB0cnVlLCBjbGVhckV4cGlyZWQ6IHRydWUsIGNoZWNrRXhwaXJhdGlvbkludGVydmFsOiA5MDAwMDAsIGV4cGlyYXRpb246IDg2NDAwMDAwIH0sCiAgKHBvb2wgYXMgYW55KS5wb29sCik7CgovLyBNaWRkbGV3YXJlCmFwcC51c2UoY29ycygpKTsKYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7CmFwcC51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHsgZXh0ZW5kZWQ6IHRydWUgfSkpOwphcHAudXNlKAogIHNlc3Npb24oewogICAgc2VjcmV0OiBwcm9jZXNzLmVudi5TRVNTSU9OX1NFQ1JFVCB8fCAibGxpcmlhX3NlY3JldF9rZXlfMjAyNCIsCiAgICBzdG9yZTogc2Vzc2lvblN0b3JlLAogICAgcmVzYXZlOiBmYWxzZSwKICAgIHNhdmVVbmluaXRpYWxpemVkOiBmYWxzZSwKICAgIGNvb2tpZTogeyBzZWN1cmU6IGZhbHNlLCBtYXhBZ2U6IDI0ICogNjAgKiA2MCAqIDEwMDAgfSwKICB9KQopOwoKLy8gUmF0ZSBsaW1pdGluZyBwYXJhIGxvZ2luIChwcm90ZWNjacOzbiBhbnRpLWJydXRlZm9yY2UpCmNvbnN0IGxvZ2luUmF0ZU1heCA9IE51bWJlcihwcm9jZXNzLmVudi5BVVRIX0xPR0lOX1JBVEVfTUFYIHx8IChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gInByb2R1Y3Rpb24iID8gMTAgOiA2MCkpOwpjb25zdCBsb2dpbkxpbWl0ZXIgPSByYXRlTGltaXQoewogIHdpbmRvd01zOiAxNSAqIDYwICogMTAwMCwKICBtYXg6IGxvZ2luUmF0ZU1heCwKICBtZXNzYWdlOiAiRGVtYXNpYWRvcyBpbnRlbnRvcyBkZSBpbmljaW8gZGUgc2VzacOzbi4gSW50w6ludGFsbyBlbiAxNSBtaW51dG9zLiIsCiAgc3RhbmRhcmRIZWFkZXJzOiB0cnVlLAogIGxlZ2FjeUhlYWRlcnM6IGZhbHNlLAogIHNraXA6IChyZXEpID0+IHsKICAgIGNvbnN0IGlwID0gU3RyaW5nKHJlcS5pcCB8fCByZXEuc29ja2V0Py5yZW1vdGVBZGRyZXNzIHx8ICIiKS5yZXBsYWNlKC9eOjpmZmZmOi8sICIiKTsKICAgIHJldHVybiAoCiAgICAgIGlwID09PSAiMTI3LjAuMC4xIiB8fAogICAgICBpcC5zdGFydHNXaXRoKCIxOTIuMTY4LiIpIHx8CiAgICAgIGlwLnN0YXJ0c1dpdGgoIjEwMC4iKSB8fAogICAgICBpcC5zdGFydHNXaXRoKCIxMC4iKQogICAgKTsKICB9LAp9KTsKYXBwLnVzZSgiL2xvZ2luIiwgbG9naW5MaW1pdGVyKTsKCi8vIFZpZXcgZW5naW5lCmFwcC5zZXQoInZpZXcgZW5naW5lIiwgImVqcyIpOwphcHAuc2V0KCJ2aWV3cyIsIHBhdGguam9pbihfX2Rpcm5hbWUsICIuLiIsICJzcmMiLCAidmlld3MiKSk7CmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gInByb2R1Y3Rpb24iKSBhcHAuc2V0KCJ2aWV3IGNhY2hlIiwgZmFsc2UpOwoKLy8gQXJjaGl2b3MgZXN0YXRpY29zCmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgIi4uIiwgInB1YmxpYyIpKSk7CgphcHAudXNlKChyZXEsIHJlcywgbmV4dCkgPT4gewogIHJlcy5sb2NhbHMuc2Vzc2lvblJvbGUgPSAocmVxLnNlc3Npb24gYXMgeyByb2xlPzogc3RyaW5nIH0pLnJvbGUgfHwgIiI7CiAgcmVzLmxvY2Fscy5zZXNzaW9uVXNlciA9IChyZXEuc2Vzc2lvbiBhcyB7IHVzZXJuYW1lPzogc3RyaW5nIH0pLnVzZXJuYW1lIHx8ICIiOwogIG5leHQoKTsKfSk7CgovLyBSZWRpcmVjY2lvbiByYWl6CmFwcC5nZXQoIi8iLCAoX3JlcSwgcmVzKSA9PiByZXMucmVkaXJlY3QoIi9sb2dpbiIpKTsKCi8vIFJ1dGFzIGRlIGF1dGVudGljYWNpb24gKHNpbiBwcm90ZWNjaW9uKQphcHAudXNlKCIvIiwgYXV0aFJvdXRlcyk7CmFwcC5nZXQoIi9sb2dpbiIsIChfcmVxLCByZXMpID0+IHJlcy5yZWRpcmVjdCgiL2xvZ2luIikpOyAvLyB5YSBjdWJpZXJ0byBwb3IgYXV0aFJvdXRlcwoKLy8gRGFzaGJvYXJkIHByaW5jaXBhbAphcHAuZ2V0KCIvZGFzaGJvYXJkIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChyZXEsIHJlcykgPT4gewogIHRyeSB7CiAgICBjb25zdCBvcGVyYXRpb24gPSBTdHJpbmcocmVxLnF1ZXJ5Lm9wIHx8ICJzYWxlIikudG9Mb3dlckNhc2UoKSA9PT0gInJlbnQiID8gInJlbnQiIDogInNhbGUiOwogICAgY29uc3QgW3N0YXRzLCBwb3J0YWxzLCB6b25lc10gPSBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgIFByb3BlcnR5TW9kZWwuZ2V0U3RhdHMob3BlcmF0aW9uKSwKICAgICAgUG9ydGFsTW9kZWwuZmluZEFsbCgpLAogICAgICBab25lTW9kZWwuZmluZEFsbCgpLAogICAgXSk7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvaW5kZXgiLCB7CiAgICAgIHBvcnRhbHMsCiAgICAgIHpvbmVzLAogICAgICB1c2VyOiAocmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSB8fCAiR2VvcmdlIiwKICAgICAgY291bnQ6IHN0YXRzLnRvdGFsLAogICAgICBhdmdfcHJpY2U6IHN0YXRzLmF2Z19wcmljZSwKICAgICAgbWluX3ByaWNlOiBzdGF0cy5taW5fcHJpY2UsCiAgICAgIHNvdXJjZV9jb3VudDogc3RhdHMuc291cmNlX2NvdW50LAogICAgICBvcGVyYXRpb24sCiAgICAgIHZhbGVuY2lhX25laWdoYm9yaG9vZHM6IFZBTEVOQ0lBX05FSUdIQk9SSE9PRFMsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgZWwgZGFzaGJvYXJkIik7CiAgfQp9KTsKCi8vIFZpc3RhIGRlbCBhcmNoaXZvIGRlIHByb3BpZWRhZGVzIGVsaW1pbmFkYXMKYXBwLmdldCgiL2Rhc2hib2FyZC9hcmNoaXZlIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChyZXEsIHJlcykgPT4gewogIHRyeSB7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvYXJjaGl2ZSIsIHsKICAgICAgdXNlcjogKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgZWwgYXJjaGl2byIpOwogIH0KfSk7CgovLyBWaXN0YSBkZSBmaWx0cm9zCmFwcC5nZXQoIi9kYXNoYm9hcmQvZmlsdGVycyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIGNvbnN0IFtmaWx0ZXJzLCBwb3J0YWxzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgRmlsdGVyTW9kZWwuZmluZEFsbCgpLAogICAgICBQb3J0YWxNb2RlbC5maW5kQWxsKCksCiAgICBdKTsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9maWx0ZXJzIiwgewogICAgICBmaWx0ZXJzLAogICAgICBwb3J0YWxzLAogICAgICB1c2VyOiAoX3JlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgZmlsdHJvcyIpOwogIH0KfSk7CgovLyBWaXN0YSBkZSBtYXBhCmFwcC5nZXQoIi9kYXNoYm9hcmQvbWFwIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChfcmVxLCByZXMpID0+IHsKICB0cnkgewogICAgY29uc3Qgb3BlcmF0aW9uID0gU3RyaW5nKF9yZXEucXVlcnkub3AgfHwgInNhbGUiKS50b0xvd2VyQ2FzZSgpID09PSAicmVudCIgPyAicmVudCIgOiAic2FsZSI7CiAgICBjb25zdCBbcHJvcHMsIHpvbmVzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgUHJvcGVydHlNb2RlbC5maW5kRm9yTWFwKG9wZXJhdGlvbiksCiAgICAgIFpvbmVNb2RlbC5maW5kQWxsKCksCiAgICBdKTsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9tYXAiLCB7CiAgICAgIHByb3BlcnRpZXM6IHByb3BzLAogICAgICB6b25lcywKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgICBvcGVyYXRpb24sCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgbWFwYSIpOwogIH0KfSk7CgovLyBWaXN0YSBkZSB6b25hcwphcHAuZ2V0KCIvZGFzaGJvYXJkL3pvbmVzIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChfcmVxLCByZXMpID0+IHsKICB0cnkgewogICAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL3pvbmVzIiwgewogICAgICB1c2VyOiAoX3JlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgem9uYXMiKTsKICB9Cn0pOwoKLy8gVmlzdGEgSUEg4oCUIHJlY29tZW5kYWNpb25lcyBtdWx0aWFnZW50IChvcGVyYWRvciBHZW9yZ2UpCmFwcC5nZXQoIi9kYXNoYm9hcmQvYWkiLCByZXF1aXJlQXV0aCwgYXN5bmMgKHJlcSwgcmVzKSA9PiB7CiAgaWYgKChyZXEuc2Vzc2lvbiBhcyBhbnkpLnJvbGUgPT09ICJpYV9hZG1pbiIpIHsKICAgIHJlcy5yZWRpcmVjdCgiL2Rhc2hib2FyZC9haS1hZG1pbiIpOwogICAgcmV0dXJuOwogIH0KICBjb25zdCBicmlkZ2VVcmwgPSBwcm9jZXNzLmVudi5DVVJTT1JfQlJJREdFX1VSTCB8fCAiaHR0cDovLzEwMC43OC4xOTguOTg6ODA5NSI7CiAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2FpIiwgewogICAgdXNlcjogKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICBicmlkZ2VVcmwsCiAgfSk7Cn0pOwoKLy8gUG9ydGFsIElBIGF2YW56YWRvIOKAlCBzb2xvIGFkbWluCmFwcC5nZXQoIi9kYXNoYm9hcmQvYWktYWRtaW4iLCByZXF1aXJlQWRtaW4sIGFzeW5jIChyZXEsIHJlcykgPT4gewogIGNvbnN0IGJyaWRnZVVybCA9IHByb2Nlc3MuZW52LkNVUlNPUl9CUklER0VfVVJMIHx8ICJodHRwOi8vMTAwLjc4LjE5OC45ODo4MDk1IjsKICByZXMucmVuZGVyKCJkYXNoYm9hcmQvYWktYWRtaW4iLCB7CiAgICB1c2VyOiAocmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSB8fCAiYWRtaW4iLAogICAgYnJpZGdlVXJsLAogIH0pOwp9KTsKCi8vIFZpc3RhIGRlIHBvcnRhbGVzCmFwcC5nZXQoIi9kYXNoYm9hcmQvcG9ydGFscyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9wb3J0YWxzIiwgewogICAgICB1c2VyOiAoX3JlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgIkdlb3JnZSIsCiAgICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKCJFcnJvciBhbCBjYXJnYXIgcG9ydGFsZXMiKTsKICB9Cn0pOwoKLy8gUnV0YSBvZmZsaW5lIChTZXJ2aWNlIFdvcmtlciBmYWxsYmFjaykKYXBwLmdldCgiL29mZmxpbmUiLCAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIHJlcy5yZW5kZXIoIm9mZmxpbmUiKTsKfSk7CgovLyBBUEkgcm91dGVzCmFwcC51c2UoIi9hcGkvcHJvcGVydGllcyIsIHByb3BlcnR5Um91dGVzKTsKYXBwLnVzZSgiL2FwaS9zY3JhcGVyIiwgc2NyYXBlclJvdXRlcyk7CmFwcC51c2UoIi9hcGkvZmlsdGVycyIsIGZpbHRlclJvdXRlcyk7CmFwcC51c2UoIi9hcGkvbWFwIiwgbWFwUm91dGVzKTsKYXBwLnVzZSgiL2FwaS96b25lcyIsIHpvbmVSb3V0ZXMpOwphcHAudXNlKCIvYXBpL3BvcnRhbHMiLCBwb3J0YWxSb3V0ZXMpOwphcHAudXNlKCIvYXBpL211bmljaXBhbGl0aWVzIiwgbXVuaWNpcGFsaXR5Um91dGVzKTsKYXBwLnVzZSgiL2FwaS92YWxlbmNpYS1kaXN0cmljdHMiLCB2YWxlbmNpYURpc3RyaWN0Um91dGVzKTsKYXBwLnVzZSgiL2FwaS9haSIsIGFpUm91dGVzKTsKYXBwLnVzZSgiL2FwaS9haS1hZG1pbiIsIGFpQWRtaW5Sb3V0ZXMpOwphcHAudXNlKCIvIiwgYW5hbHl0aWNzUm91dGVzKTsKCi8vIEFQSTogRXN0YWRvIGRlbCBzY2hlZHVsZXIgeSBsb2dzIGRlIHNjcmFwaW5nCmFwcC5nZXQoIi9hcGkvc2NoZWR1bGVyL3N0YXR1cyIsIHJlcXVpcmVBdXRoLCAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogZ2V0U2NoZWR1bGVyU3RhdHVzKCkgfSk7Cn0pOwphcHAuZ2V0KCIvYXBpL3NjaGVkdWxlci9sb2dzIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7CiAgY29uc3QgbG9ncyA9IGF3YWl0IGdldFJlY2VudFNjcmFwaW5nTG9ncygyMCk7CiAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBsb2dzIH0pOwp9KTsKCi8vIEluaWNpbyBkZWwgc2Vydmlkb3IKY29uc3Qgc3RhcnQgPSBhc3luYyAoKSA9PiB7CiAgYXdhaXQgY29ubmVjdERCKCk7CgogIC8vIE1pZ3JhY2nDs246IGHDsWFkaXIgY29sdW1uYSBkZWxldGVkX2F0IHNpIG5vIGV4aXN0ZSAoc2FmZSB0byBydW4gbXVsdGlwbGUgdGltZXMpCiAgdHJ5IHsKICAgIGF3YWl0IHBvb2wucXVlcnkoYEFMVEVSIFRBQkxFIHByb3BlcnRpZXMKICAgICAgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGRlbGV0ZWRfYXQgREFURVRJTUUgTlVMTCBERUZBVUxUIE5VTEwsCiAgICAgIEFERCBJTkRFWCBJRiBOT1QgRVhJU1RTIGlkeF9kZWxldGVkIChkZWxldGVkX2F0KWApOwogICAgYXdhaXQgcG9vbC5xdWVyeShgQUxURVIgVEFCTEUgcHJvcGVydGllcwogICAgICBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgb3BlcmF0aW9uX3R5cGUgRU5VTSgnc2FsZScsJ3JlbnQnKSBOT1QgTlVMTCBERUZBVUxUICdzYWxlJywKICAgICAgQUREIElOREVYIElGIE5PVCBFWElTVFMgaWR4X29wZXJhdGlvbl90eXBlIChvcGVyYXRpb25fdHlwZSlgKTsKICAgIGF3YWl0IHBvb2wucXVlcnkoYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHZhbGVuY2lhX2Rpc3RyaWN0X3NsdWdzICgKICAgICAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogICAgICBuYW1lIFZBUkNIQVIoMTIwKSBOT1QgTlVMTCBVTklRVUUsCiAgICAgIGlkZWFsaXN0YV9zbHVnIFZBUkNIQVIoMTYwKSBOT1QgTlVMTCwKICAgICAgZm90b2Nhc2Ffc2x1ZyBWQVJDSEFSKDE2MCkgTk9UIE5VTEwsCiAgICAgIHBpc29zX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogICAgICBhY3RpdmUgVElOWUlOVCgxKSBERUZBVUxUIDEsCiAgICAgIHNvcnRfb3JkZXIgSU5UIERFRkFVTFQgOTk5LAogICAgICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCiAgICApYCk7CgogICAgLy8gTGEgdGFibGEgc2UgYcOxYWRpw7MgZGVzcHXDqXMgZGVsIGluaXQtZGIgb3JpZ2luYWwgeSBwdWVkZSBleGlzdGlyIHZhY8OtYS4KICAgIC8vIFNlbWJyYXIgc8OzbG8gY3VhbmRvIGVzdMOhIHZhY8OtYSBwcmVzZXJ2YSBhbHRhcy9iYWphcyBoZWNoYXMgZGVzZGUgbGEgVUkuCiAgICBjb25zdCBbZGlzdHJpY3RDb3VudFJvd3NdID0gYXdhaXQgcG9vbC5xdWVyeShgU0VMRUNUIENPVU5UKCopIEFTIHRvdGFsIEZST00gdmFsZW5jaWFfZGlzdHJpY3Rfc2x1Z3NgKTsKICAgIGNvbnN0IGRpc3RyaWN0Q291bnQgPSBOdW1iZXIoKGRpc3RyaWN0Q291bnRSb3dzIGFzIGFueVtdKVswXT8udG90YWwgfHwgMCk7CiAgICBpZiAoZGlzdHJpY3RDb3VudCA9PT0gMCkgewogICAgICBmb3IgKGNvbnN0IFtpbmRleCwgZGlzdHJpY3RdIG9mIFZBTEVOQ0lBX0RJU1RSSUNUUy5lbnRyaWVzKCkpIHsKICAgICAgICBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICAgICAgYElOU0VSVCBJR05PUkUgSU5UTyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncwogICAgICAgICAgIChuYW1lLCBpZGVhbGlzdGFfc2x1ZywgZm90b2Nhc2Ffc2x1ZywgcGlzb3Nfc2x1ZywgYWN0aXZlLCBzb3J0X29yZGVyKQogICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPywgMSwgPylgLAogICAgICAgICAgW2Rpc3RyaWN0Lm5hbWUsIGRpc3RyaWN0LmlkZWFsaXN0YSwgZGlzdHJpY3QuZm90b2Nhc2EsIGRpc3RyaWN0LnBpc29zLCAoaW5kZXggKyAxKSAqIDEwXQogICAgICAgICk7CiAgICAgIH0KICAgICAgY29uc29sZS5sb2coYFtEQl0gU2VtYnJhZG9zICR7VkFMRU5DSUFfRElTVFJJQ1RTLmxlbmd0aH0gZGlzdHJpdG9zIGRlIFZhbGVuY2lhLmApOwogICAgfSBlbHNlIHsKICAgICAgLy8gTWlncmFyIMO6bmljYW1lbnRlIGxvcyBzbHVncyBwb3IgZGVmZWN0byBhbnRpZ3Vvcy9pbmNvcnJlY3Rvczsgbm8gdG9jYXIKICAgICAgLy8gdmFsb3JlcyBwZXJzb25hbGl6YWRvcyBxdWUgZWwgdXN1YXJpbyBoYXlhIGNvbmZpZ3VyYWRvIGVuIGxhIFVJLgogICAgICBjb25zdCBsZWdhY3lQaXNvc1NsdWdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7CiAgICAgICAgIkNpdXRhdCBWZWxsYSI6IFsiY2l1dGF0LXZlbGxhLXZhbGVuY2lhLWNhcGl0YWwiXSwKICAgICAgICAiRWl4YW1wbGUiOiBbImVpeGFtcGxlLXZhbGVuY2lhLWNhcGl0YWwiXSwKICAgICAgICAiRXh0cmFtdXJzIjogWyJleHRyYW11cnMtdmFsZW5jaWEtY2FwaXRhbCIsICJwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2V4dHJhbXVycyJdLAogICAgICAgICJDYW1wYW5hciI6IFsiY2FtcGFuYXItdmFsZW5jaWEtY2FwaXRhbCJdLAogICAgICAgICJQYXRyYWl4IjogWyJwYXRyYWl4LXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9wYXRyYWl4Il0sCiAgICAgICAgIlF1YXRyZSBDYXJyZXJlcyI6IFsicXVhdHJlLWNhcnJlcmVzLXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9xdWF0cmVfY2FycmVyZXMiXSwKICAgICAgICAiUG9ibGF0cyBNYXJpdGltcyI6IFsicG9ibGF0cy1tYXJpdGltcy12YWxlbmNpYS1jYXBpdGFsIiwgInBpc29zLXZhbGVuY2lhX2NhcGl0YWxfcG9ibGF0c19tYXJpdGltcyJdLAogICAgICAgICJDYW1pbnMgYWwgR3JhdSI6IFsiY2FtaW5zLWFsLWdyYXUtdmFsZW5jaWEtY2FwaXRhbCIsICJwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2NhbWluc19hbF9ncmF1Il0sCiAgICAgICAgIkJlbmljYWxhcCI6IFsiYmVuaWNhbGFwLXZhbGVuY2lhLWNhcGl0YWwiXSwKICAgICAgICAiUmFzY2FueWEiOiBbInJhc2NhbnlhLXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9yYXNjYW55YSJdLAogICAgICB9OwogICAgICBmb3IgKGNvbnN0IGRpc3RyaWN0IG9mIFZBTEVOQ0lBX0RJU1RSSUNUUykgewogICAgICAgIGNvbnN0IGxlZ2FjeSA9IGxlZ2FjeVBpc29zU2x1Z3NbZGlzdHJpY3QubmFtZV0gfHwgW107CiAgICAgICAgaWYgKGxlZ2FjeS5sZW5ndGggPT09IDApIGNvbnRpbnVlOwogICAgICAgIGNvbnN0IHBsYWNlaG9sZGVycyA9IGxlZ2FjeS5tYXAoKCkgPT4gIj8iKS5qb2luKCIsICIpOwogICAgICAgIGF3YWl0IHBvb2wucXVlcnkoCiAgICAgICAgICBgVVBEQVRFIHZhbGVuY2lhX2Rpc3RyaWN0X3NsdWdzIFNFVCBwaXNvc19zbHVnID0gPwogICAgICAgICAgIFdIRVJFIG5hbWUgPSA/IEFORCBwaXNvc19zbHVnIElOICgke3BsYWNlaG9sZGVyc30pYCwKICAgICAgICAgIFtkaXN0cmljdC5waXNvcywgZGlzdHJpY3QubmFtZSwgLi4ubGVnYWN5XQogICAgICAgICk7CiAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUubG9nKCJbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLiIpOwoKICAgIC8vIFB1cmdhIGluaWNpYWw6IGxpbXBpYXIgcmVnaXN0cm9zIGVuIGFyY2hpdm8gPjMwIGTDrWFzCiAgICBjb25zdCB7IFByb3BlcnR5TW9kZWw6IFBNIH0gPSBhd2FpdCBpbXBvcnQoIi4vbW9kZWxzL3Byb3BlcnR5TW9kZWwiKTsKICAgIGNvbnN0IHB1cmdlZCA9IGF3YWl0IFBNLnB1cmdlT2xkRGVsZXRlZCgpOwogICAgaWYgKHB1cmdlZCA+IDApIGNvbnNvbGUubG9nKGBbREJdIFB1cmdhZG9zICR7cHVyZ2VkfSBhbnVuY2lvcyBkZWwgYXJjaGl2byAoPjMwIGTDrWFzKS5gKTsKICB9IGNhdGNoIChlOiBhbnkpIHsKICAgIGNvbnNvbGUud2FybigiW0RCXSBNaWdyYWNpw7NuIGRlbGV0ZWRfYXQ6IiwgZS5tZXNzYWdlKTsKICB9CgogIC8vIEdlbmVyYXIgaWNvbm9zIFBORyBwYXJhIFBXQSAoZGVzZGUgaWNvbi5zdmcpCiAgYXdhaXQgZ2VuZXJhdGVQbmdJY29ucygpLmNhdGNoKChlKSA9PiBjb25zb2xlLndhcm4oIltJY29uc10iLCBlLm1lc3NhZ2UpKTsKICBhcHAubGlzdGVuKFBPUlQsICgpID0+IHsKICAgIGNvbnNvbGUubG9nKGBTZXJ2aWRvciBhcnJhbmNhZG8gZW4gaHR0cDovL2xvY2FsaG9zdDoke1BPUlR9YCk7CiAgICBjb25zb2xlLmxvZyhgRGFzaGJvYXJkOiBodHRwOi8vbG9jYWxob3N0OiR7UE9SVH0vZGFzaGJvYXJkYCk7CiAgfSk7CiAgc3RhcnRTY2hlZHVsZXIoKTsKfTsKCnN0YXJ0KCkuY2F0Y2goKGVycikgPT4gewogIGNvbnNvbGUuZXJyb3IoIkVycm9yIGFsIGluaWNpYXI6IiwgZXJyKTsKICBwcm9jZXNzLmV4aXQoMSk7Cn0pOwoKLy8gRXJyb3IgaGFuZGxlciBjZW50cmFsaXphZG8gKGRlYmUgaXIgREVTUFXDiVMgZGUgdG9kYXMgbGFzIHJ1dGFzKQphcHAudXNlKChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7CiAgcmVzLnN0YXR1cyg0MDQpLnJlbmRlcigiZXJyb3IiLCB7IG1lc3NhZ2U6ICJQw6FnaW5hIG5vIGVuY29udHJhZGEgKDQwNCkiLCB1c2VyOiBudWxsIH0pOwp9KTsKCi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMKYXBwLnVzZSgoZXJyOiBFcnJvciwgX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgX25leHQ6IE5leHRGdW5jdGlvbikgPT4gewogIGNvbnNvbGUuZXJyb3IoIltFcnJvciBIYW5kbGVyXSIsIGVyci5tZXNzYWdlLCBlcnIuc3RhY2spOwogIHJlcy5zdGF0dXMoNTAwKS5yZW5kZXIoImVycm9yIiwgeyBtZXNzYWdlOiBlcnIubWVzc2FnZSB8fCAiRXJyb3IgaW50ZXJubyBkZWwgc2Vydmlkb3IiLCB1c2VyOiBudWxsIH0pOwp9KTsKCmV4cG9ydCBkZWZhdWx0IGFwcDsK","afterExisted":true,"afterHash":"058df3b94d74bdfe4a56a8a7c43f7e6ad7bbb8467c41d42a21da472f515f60af","afterContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IGV4cHJlc3MsIHsgUmVxdWVzdCwgUmVzcG9uc2UsIE5leHRGdW5jdGlvbiB9IGZyb20gImV4cHJlc3MiOwppbXBvcnQgc2Vzc2lvbiBmcm9tICJleHByZXNzLXNlc3Npb24iOwppbXBvcnQgTXlTUUxTdG9yZUZhY3RvcnkgZnJvbSAiZXhwcmVzcy1teXNxbC1zZXNzaW9uIjsKaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAiYm9keS1wYXJzZXIiOwppbXBvcnQgY29ycyBmcm9tICJjb3JzIjsKaW1wb3J0IHBhdGggZnJvbSAicGF0aCI7CmltcG9ydCByYXRlTGltaXQgZnJvbSAiZXhwcmVzcy1yYXRlLWxpbWl0IjsKaW1wb3J0IHsgY29ubmVjdERCIH0gZnJvbSAiLi9jb25maWcvZGIiOwppbXBvcnQgcG9vbCBmcm9tICIuL2NvbmZpZy9kYiI7CmltcG9ydCBhdXRoUm91dGVzIGZyb20gIi4vcm91dGVzL2F1dGhSb3V0ZXMiOwppbXBvcnQgcHJvcGVydHlSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvcHJvcGVydHlSb3V0ZXMiOwppbXBvcnQgc2NyYXBlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9zY3JhcGVyUm91dGVzIjsKaW1wb3J0IGZpbHRlclJvdXRlcyBmcm9tICIuL3JvdXRlcy9maWx0ZXJSb3V0ZXMiOwppbXBvcnQgbWFwUm91dGVzIGZyb20gIi4vcm91dGVzL21hcFJvdXRlcyI7CmltcG9ydCB6b25lUm91dGVzIGZyb20gIi4vcm91dGVzL3pvbmVSb3V0ZXMiOwppbXBvcnQgcG9ydGFsUm91dGVzIGZyb20gIi4vcm91dGVzL3BvcnRhbFJvdXRlcyI7CmltcG9ydCBhbmFseXRpY3NSb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYW5hbHl0aWNzUm91dGVzIjsKaW1wb3J0IG11bmljaXBhbGl0eVJvdXRlcyBmcm9tICIuL3JvdXRlcy9tdW5pY2lwYWxpdHlSb3V0ZXMiOwppbXBvcnQgdmFsZW5jaWFEaXN0cmljdFJvdXRlcyBmcm9tICIuL3JvdXRlcy92YWxlbmNpYURpc3RyaWN0Um91dGVzIjsKaW1wb3J0IGFpUm91dGVzIGZyb20gIi4vcm91dGVzL2FpUm91dGVzIjsKaW1wb3J0IGFpQWRtaW5Sb3V0ZXMgZnJvbSAiLi9yb3V0ZXMvYWlBZG1pblJvdXRlcyI7CmltcG9ydCB7IHJlcXVpcmVBZG1pbiB9IGZyb20gIi4vbWlkZGxld2FyZS9yZXF1aXJlQWRtaW4iOwppbXBvcnQgeyByZXF1aXJlQXV0aCB9IGZyb20gIi4vbWlkZGxld2FyZS9hdXRoIjsKaW1wb3J0IHsgc3RhcnRTY2hlZHVsZXIsIGdldFNjaGVkdWxlclN0YXR1cywgZ2V0UmVjZW50U2NyYXBpbmdMb2dzIH0gZnJvbSAiLi9zZXJ2aWNlcy9zY2hlZHVsZXJTZXJ2aWNlIjsKaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICIuL21vZGVscy9maWx0ZXJNb2RlbCI7CmltcG9ydCB7IFByb3BlcnR5TW9kZWwgfSBmcm9tICIuL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgWm9uZU1vZGVsIH0gZnJvbSAiLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuL21vZGVscy9wb3J0YWxNb2RlbCI7CmltcG9ydCB7IGdlbmVyYXRlUG5nSWNvbnMgfSBmcm9tICIuL3V0aWxzL2dlbmVyYXRlSWNvbnMiOwppbXBvcnQgeyBWQUxFTkNJQV9ORUlHSEJPUkhPT0RTIH0gZnJvbSAiLi9jb25maWcvdmFsZW5jaWFOZWlnaGJvcmhvb2RzIjsKaW1wb3J0IHsgVkFMRU5DSUFfRElTVFJJQ1RTIH0gZnJvbSAiLi9jb25maWcvdmFsZW5jaWFEaXN0cmljdHMiOwpjb25zdCBhcHAgPSBleHByZXNzKCk7CmNvbnN0IFBPUlQgPSBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCkgfHwgMzAwMDsKY29uc3QgaXNQcm9kdWN0aW9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICJwcm9kdWN0aW9uIjsKCmlmIChpc1Byb2R1Y3Rpb24gJiYgKCFwcm9jZXNzLmVudi5TRVNTSU9OX1NFQ1JFVCB8fCBwcm9jZXNzLmVudi5TRVNTSU9OX1NFQ1JFVC5sZW5ndGggPCAzMikpIHsKICB0aHJvdyBuZXcgRXJyb3IoIlNFU1NJT05fU0VDUkVUIGRlYmUgZXhpc3RpciB5IHRlbmVyIGFsIG1lbm9zIDMyIGNhcmFjdGVyZXMgZW4gcHJvZHVjY2nDs24iKTsKfQppZiAocHJvY2Vzcy5lbnYuVFJVU1RfUFJPWFkgPT09ICJ0cnVlIikgYXBwLnNldCgidHJ1c3QgcHJveHkiLCAxKTsKCi8vIE15U1FMIHNlc3Npb24gc3RvcmUgKGV2aXRhIHdhcm5pbmcgZGUgTWVtb3J5U3RvcmUgZW4gcHJvZHVjY2nDs24pCmNvbnN0IE15U1FMU3RvcmUgPSBNeVNRTFN0b3JlRmFjdG9yeShzZXNzaW9uKTsKY29uc3Qgc2Vzc2lvblN0b3JlID0gbmV3IE15U1FMU3RvcmUoCiAgeyBjcmVhdGVEYXRhYmFzZVRhYmxlOiB0cnVlLCBjbGVhckV4cGlyZWQ6IHRydWUsIGNoZWNrRXhwaXJhdGlvbkludGVydmFsOiA5MDAwMDAsIGV4cGlyYXRpb246IDg2NDAwMDAwIH0sCiAgKHBvb2wgYXMgYW55KS5wb29sCik7CgovLyBNaWRkbGV3YXJlCmNvbnN0IGFsbG93ZWRPcmlnaW5zID0gbmV3IFNldCgKICAocHJvY2Vzcy5lbnYuQ09SU19PUklHSU5TIHx8ICIiKS5zcGxpdCgiLCIpLm1hcCh2YWx1ZSA9PiB2YWx1ZS50cmltKCkpLmZpbHRlcihCb29sZWFuKQopOwphcHAudXNlKGNvcnMoewogIGNyZWRlbnRpYWxzOiB0cnVlLAogIG9yaWdpbjogYWxsb3dlZE9yaWdpbnMuc2l6ZSA9PT0gMAogICAgPyBmYWxzZQogICAgOiAob3JpZ2luLCBjYWxsYmFjaykgPT4gY2FsbGJhY2sobnVsbCwgIW9yaWdpbiB8fCBhbGxvd2VkT3JpZ2lucy5oYXMob3JpZ2luKSksCn0pKTsKYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7CmFwcC51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHsgZXh0ZW5kZWQ6IHRydWUgfSkpOwphcHAudXNlKChfcmVxLCByZXMsIG5leHQpID0+IHsKICByZXMuc2V0SGVhZGVyKCJYLUNvbnRlbnQtVHlwZS1PcHRpb25zIiwgIm5vc25pZmYiKTsKICByZXMuc2V0SGVhZGVyKCJYLUZyYW1lLU9wdGlvbnMiLCAiREVOWSIpOwogIHJlcy5zZXRIZWFkZXIoIlJlZmVycmVyLVBvbGljeSIsICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIik7CiAgcmVzLnNldEhlYWRlcigiUGVybWlzc2lvbnMtUG9saWN5IiwgImNhbWVyYT0oKSwgbWljcm9waG9uZT0oKSwgZ2VvbG9jYXRpb249KHNlbGYpIik7CiAgbmV4dCgpOwp9KTsKYXBwLnVzZSgKICBzZXNzaW9uKHsKICAgIHNlY3JldDogcHJvY2Vzcy5lbnYuU0VTU0lPTl9TRUNSRVQgfHwgImRldmVsb3BtZW50LW9ubHktc2Vzc2lvbi1zZWNyZXQtY2hhbmdlLW1lIiwKICAgIHN0b3JlOiBzZXNzaW9uU3RvcmUsCiAgICByZXNhdmU6IGZhbHNlLAogICAgc2F2ZVVuaW5pdGlhbGl6ZWQ6IGZhbHNlLAogICAgbmFtZTogImNhcHRhamF1cy5zaWQiLAogICAgY29va2llOiB7CiAgICAgIHNlY3VyZTogaXNQcm9kdWN0aW9uLAogICAgICBodHRwT25seTogdHJ1ZSwKICAgICAgc2FtZVNpdGU6ICJsYXgiLAogICAgICBtYXhBZ2U6IDI0ICogNjAgKiA2MCAqIDEwMDAsCiAgICB9LAogIH0pCik7CgovLyBEZWZlbnNhIENTUkYgaW5jcmVtZW50YWw6IHJlY2hhemEgbXV0YWNpb25lcyBjcm9zcy1vcmlnaW4gY3VhbmRvIGVsIG5hdmVnYWRvcgovLyBlbnbDrWEgT3JpZ2luL1JlZmVyZXIuIFNhbWVTaXRlPUxheCBwcm90ZWdlIGFkZW3DoXMgbGEgY29va2llIGRlIHNlc2nDs24uCmFwcC51c2UoKHJlcSwgcmVzLCBuZXh0KSA9PiB7CiAgaWYgKFsiR0VUIiwgIkhFQUQiLCAiT1BUSU9OUyJdLmluY2x1ZGVzKHJlcS5tZXRob2QpKSByZXR1cm4gbmV4dCgpOwogIGNvbnN0IHN1cHBsaWVkID0gcmVxLmdldCgib3JpZ2luIikgfHwgcmVxLmdldCgicmVmZXJlciIpOwogIGlmICghc3VwcGxpZWQpIHJldHVybiBuZXh0KCk7CiAgdHJ5IHsKICAgIGlmIChuZXcgVVJMKHN1cHBsaWVkKS5ob3N0ICE9PSByZXEuZ2V0KCJob3N0IikpIHsKICAgICAgcmVzLnN0YXR1cyg0MDMpLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJPcmlnZW4gbm8gcGVybWl0aWRvIiB9KTsKICAgICAgcmV0dXJuOwogICAgfQogIH0gY2F0Y2ggewogICAgcmVzLnN0YXR1cyg0MDMpLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJPcmlnZW4gbm8gdsOhbGlkbyIgfSk7CiAgICByZXR1cm47CiAgfQogIG5leHQoKTsKfSk7CgovLyBSYXRlIGxpbWl0aW5nIHBhcmEgbG9naW4gKHByb3RlY2Npw7NuIGFudGktYnJ1dGVmb3JjZSkKY29uc3QgbG9naW5SYXRlTWF4ID0gTnVtYmVyKHByb2Nlc3MuZW52LkFVVEhfTE9HSU5fUkFURV9NQVggfHwgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAicHJvZHVjdGlvbiIgPyAxMCA6IDYwKSk7CmNvbnN0IGxvZ2luTGltaXRlciA9IHJhdGVMaW1pdCh7CiAgd2luZG93TXM6IDE1ICogNjAgKiAxMDAwLAogIG1heDogbG9naW5SYXRlTWF4LAogIG1lc3NhZ2U6ICJEZW1hc2lhZG9zIGludGVudG9zIGRlIGluaWNpbyBkZSBzZXNpw7NuLiBJbnTDqW50YWxvIGVuIDE1IG1pbnV0b3MuIiwKICBzdGFuZGFyZEhlYWRlcnM6IHRydWUsCiAgbGVnYWN5SGVhZGVyczogZmFsc2UsCiAgc2tpcDogKHJlcSkgPT4gewogICAgY29uc3QgaXAgPSBTdHJpbmcocmVxLmlwIHx8IHJlcS5zb2NrZXQ/LnJlbW90ZUFkZHJlc3MgfHwgIiIpLnJlcGxhY2UoL146OmZmZmY6LywgIiIpOwogICAgcmV0dXJuICgKICAgICAgaXAgPT09ICIxMjcuMC4wLjEiIHx8CiAgICAgIGlwLnN0YXJ0c1dpdGgoIjE5Mi4xNjguIikgfHwKICAgICAgaXAuc3RhcnRzV2l0aCgiMTAwLiIpIHx8CiAgICAgIGlwLnN0YXJ0c1dpdGgoIjEwLiIpCiAgICApOwogIH0sCn0pOwphcHAudXNlKCIvbG9naW4iLCBsb2dpbkxpbWl0ZXIpOwoKLy8gVmlldyBlbmdpbmUKYXBwLnNldCgidmlldyBlbmdpbmUiLCAiZWpzIik7CmFwcC5zZXQoInZpZXdzIiwgcGF0aC5qb2luKF9fZGlybmFtZSwgIi4uIiwgInNyYyIsICJ2aWV3cyIpKTsKaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAicHJvZHVjdGlvbiIpIGFwcC5zZXQoInZpZXcgY2FjaGUiLCBmYWxzZSk7CgovLyBBcmNoaXZvcyBlc3RhdGljb3MKYXBwLnVzZShleHByZXNzLnN0YXRpYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAiLi4iLCAicHVibGljIikpKTsKCmFwcC51c2UoKHJlcSwgcmVzLCBuZXh0KSA9PiB7CiAgcmVzLmxvY2Fscy5zZXNzaW9uUm9sZSA9IChyZXEuc2Vzc2lvbiBhcyB7IHJvbGU/OiBzdHJpbmcgfSkucm9sZSB8fCAiIjsKICByZXMubG9jYWxzLnNlc3Npb25Vc2VyID0gKHJlcS5zZXNzaW9uIGFzIHsgdXNlcm5hbWU/OiBzdHJpbmcgfSkudXNlcm5hbWUgfHwgIiI7CiAgbmV4dCgpOwp9KTsKCi8vIFJlZGlyZWNjaW9uIHJhaXoKYXBwLmdldCgiLyIsIChfcmVxLCByZXMpID0+IHJlcy5yZWRpcmVjdCgiL2xvZ2luIikpOwoKLy8gUnV0YXMgZGUgYXV0ZW50aWNhY2lvbiAoc2luIHByb3RlY2Npb24pCmFwcC51c2UoIi8iLCBhdXRoUm91dGVzKTsKYXBwLmdldCgiL2xvZ2luIiwgKF9yZXEsIHJlcykgPT4gcmVzLnJlZGlyZWN0KCIvbG9naW4iKSk7IC8vIHlhIGN1YmllcnRvIHBvciBhdXRoUm91dGVzCgovLyBEYXNoYm9hcmQgcHJpbmNpcGFsCmFwcC5nZXQoIi9kYXNoYm9hcmQiLCByZXF1aXJlQXV0aCwgYXN5bmMgKHJlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIGNvbnN0IG9wZXJhdGlvbiA9IFN0cmluZyhyZXEucXVlcnkub3AgfHwgInNhbGUiKS50b0xvd2VyQ2FzZSgpID09PSAicmVudCIgPyAicmVudCIgOiAic2FsZSI7CiAgICBjb25zdCBbc3RhdHMsIHBvcnRhbHMsIHpvbmVzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgUHJvcGVydHlNb2RlbC5nZXRTdGF0cyhvcGVyYXRpb24pLAogICAgICBQb3J0YWxNb2RlbC5maW5kQWxsKCksCiAgICAgIFpvbmVNb2RlbC5maW5kQWxsKCksCiAgICBdKTsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9pbmRleCIsIHsKICAgICAgcG9ydGFscywKICAgICAgem9uZXMsCiAgICAgIHVzZXI6IChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgICBjb3VudDogc3RhdHMudG90YWwsCiAgICAgIGF2Z19wcmljZTogc3RhdHMuYXZnX3ByaWNlLAogICAgICBtaW5fcHJpY2U6IHN0YXRzLm1pbl9wcmljZSwKICAgICAgc291cmNlX2NvdW50OiBzdGF0cy5zb3VyY2VfY291bnQsCiAgICAgIG9wZXJhdGlvbiwKICAgICAgdmFsZW5jaWFfbmVpZ2hib3Job29kczogVkFMRU5DSUFfTkVJR0hCT1JIT09EUywKICAgIH0pOwogIH0gY2F0Y2ggKGVycikgewogICAgcmVzLnN0YXR1cyg1MDApLnNlbmQoIkVycm9yIGFsIGNhcmdhciBlbCBkYXNoYm9hcmQiKTsKICB9Cn0pOwoKLy8gVmlzdGEgZGVsIGFyY2hpdm8gZGUgcHJvcGllZGFkZXMgZWxpbWluYWRhcwphcHAuZ2V0KCIvZGFzaGJvYXJkL2FyY2hpdmUiLCByZXF1aXJlQXV0aCwgYXN5bmMgKHJlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9hcmNoaXZlIiwgewogICAgICB1c2VyOiAocmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSB8fCAiR2VvcmdlIiwKICAgIH0pOwogIH0gY2F0Y2ggKGVycikgewogICAgcmVzLnN0YXR1cyg1MDApLnNlbmQoIkVycm9yIGFsIGNhcmdhciBlbCBhcmNoaXZvIik7CiAgfQp9KTsKCi8vIFZpc3RhIGRlIGZpbHRyb3MKYXBwLmdldCgiL2Rhc2hib2FyZC9maWx0ZXJzIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChfcmVxLCByZXMpID0+IHsKICB0cnkgewogICAgY29uc3QgW2ZpbHRlcnMsIHBvcnRhbHMsIHpvbmVzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgRmlsdGVyTW9kZWwuZmluZEFsbChOdW1iZXIoKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJJZCkpLAogICAgICBQb3J0YWxNb2RlbC5maW5kQWxsKCksCiAgICAgIFpvbmVNb2RlbC5maW5kQWN0aXZlKCksCiAgICBdKTsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC9maWx0ZXJzIiwgewogICAgICBmaWx0ZXJzLAogICAgICBwb3J0YWxzLAogICAgICB6b25lcywKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIGZpbHRyb3MiKTsKICB9Cn0pOwoKLy8gVmlzdGEgZGUgbWFwYQphcHAuZ2V0KCIvZGFzaGJvYXJkL21hcCIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIGNvbnN0IG9wZXJhdGlvbiA9IFN0cmluZyhfcmVxLnF1ZXJ5Lm9wIHx8ICJzYWxlIikudG9Mb3dlckNhc2UoKSA9PT0gInJlbnQiID8gInJlbnQiIDogInNhbGUiOwogICAgY29uc3QgW3Byb3BzLCB6b25lc10gPSBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgIFByb3BlcnR5TW9kZWwuZmluZEZvck1hcChvcGVyYXRpb24pLAogICAgICBab25lTW9kZWwuZmluZEFsbCgpLAogICAgXSk7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvbWFwIiwgewogICAgICBwcm9wZXJ0aWVzOiBwcm9wcywKICAgICAgem9uZXMsCiAgICAgIHVzZXI6IChfcmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSB8fCAiR2VvcmdlIiwKICAgICAgb3BlcmF0aW9uLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIG1hcGEiKTsKICB9Cn0pOwoKLy8gVmlzdGEgZGUgem9uYXMKYXBwLmdldCgiL2Rhc2hib2FyZC96b25lcyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcSwgcmVzKSA9PiB7CiAgdHJ5IHsKICAgIHJlcy5yZW5kZXIoImRhc2hib2FyZC96b25lcyIsIHsKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIHpvbmFzIik7CiAgfQp9KTsKCi8vIFZpc3RhIElBIOKAlCByZWNvbWVuZGFjaW9uZXMgbXVsdGlhZ2VudCAob3BlcmFkb3IgR2VvcmdlKQphcHAuZ2V0KCIvZGFzaGJvYXJkL2FpIiwgcmVxdWlyZUF1dGgsIGFzeW5jIChyZXEsIHJlcykgPT4gewogIGlmICgocmVxLnNlc3Npb24gYXMgYW55KS5yb2xlID09PSAiaWFfYWRtaW4iKSB7CiAgICByZXMucmVkaXJlY3QoIi9kYXNoYm9hcmQvYWktYWRtaW4iKTsKICAgIHJldHVybjsKICB9CiAgY29uc3QgYnJpZGdlVXJsID0gcHJvY2Vzcy5lbnYuQ1VSU09SX0JSSURHRV9VUkwgfHwgImh0dHA6Ly8xMDAuNzguMTk4Ljk4OjgwOTUiOwogIHJlcy5yZW5kZXIoImRhc2hib2FyZC9haSIsIHsKICAgIHVzZXI6IChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgYnJpZGdlVXJsLAogIH0pOwp9KTsKCi8vIFBvcnRhbCBJQSBhdmFuemFkbyDigJQgc29sbyBhZG1pbgphcHAuZ2V0KCIvZGFzaGJvYXJkL2FpLWFkbWluIiwgcmVxdWlyZUFkbWluLCBhc3luYyAocmVxLCByZXMpID0+IHsKICBjb25zdCBicmlkZ2VVcmwgPSBwcm9jZXNzLmVudi5DVVJTT1JfQlJJREdFX1VSTCB8fCAiaHR0cDovLzEwMC43OC4xOTguOTg6ODA5NSI7CiAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2FpLWFkbWluIiwgewogICAgdXNlcjogKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgfHwgImFkbWluIiwKICAgIGJyaWRnZVVybCwKICB9KTsKfSk7CgovLyBWaXN0YSBkZSBwb3J0YWxlcwphcHAuZ2V0KCIvZGFzaGJvYXJkL3BvcnRhbHMiLCByZXF1aXJlQXV0aCwgYXN5bmMgKF9yZXEsIHJlcykgPT4gewogIHRyeSB7CiAgICByZXMucmVuZGVyKCJkYXNoYm9hcmQvcG9ydGFscyIsIHsKICAgICAgdXNlcjogKF9yZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJuYW1lIHx8ICJHZW9yZ2UiLAogICAgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCgiRXJyb3IgYWwgY2FyZ2FyIHBvcnRhbGVzIik7CiAgfQp9KTsKCi8vIFJ1dGEgb2ZmbGluZSAoU2VydmljZSBXb3JrZXIgZmFsbGJhY2spCmFwcC5nZXQoIi9vZmZsaW5lIiwgKF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHsKICByZXMucmVuZGVyKCJvZmZsaW5lIik7Cn0pOwoKLy8gQVBJIHJvdXRlcwphcHAudXNlKCIvYXBpL3Byb3BlcnRpZXMiLCBwcm9wZXJ0eVJvdXRlcyk7CmFwcC51c2UoIi9hcGkvc2NyYXBlciIsIHNjcmFwZXJSb3V0ZXMpOwphcHAudXNlKCIvYXBpL2ZpbHRlcnMiLCBmaWx0ZXJSb3V0ZXMpOwphcHAudXNlKCIvYXBpL21hcCIsIG1hcFJvdXRlcyk7CmFwcC51c2UoIi9hcGkvem9uZXMiLCB6b25lUm91dGVzKTsKYXBwLnVzZSgiL2FwaS9wb3J0YWxzIiwgcG9ydGFsUm91dGVzKTsKYXBwLnVzZSgiL2FwaS9tdW5pY2lwYWxpdGllcyIsIG11bmljaXBhbGl0eVJvdXRlcyk7CmFwcC51c2UoIi9hcGkvdmFsZW5jaWEtZGlzdHJpY3RzIiwgdmFsZW5jaWFEaXN0cmljdFJvdXRlcyk7CmFwcC51c2UoIi9hcGkvYWkiLCBhaVJvdXRlcyk7CmFwcC51c2UoIi9hcGkvYWktYWRtaW4iLCBhaUFkbWluUm91dGVzKTsKYXBwLnVzZSgiLyIsIGFuYWx5dGljc1JvdXRlcyk7CgovLyBBUEk6IEVzdGFkbyBkZWwgc2NoZWR1bGVyIHkgbG9ncyBkZSBzY3JhcGluZwphcHAuZ2V0KCIvYXBpL3NjaGVkdWxlci9zdGF0dXMiLCByZXF1aXJlQXV0aCwgKF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpID0+IHsKICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IGdldFNjaGVkdWxlclN0YXR1cygpIH0pOwp9KTsKYXBwLmdldCgiL2FwaS9zY2hlZHVsZXIvbG9ncyIsIHJlcXVpcmVBdXRoLCBhc3luYyAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIGNvbnN0IGxvZ3MgPSBhd2FpdCBnZXRSZWNlbnRTY3JhcGluZ0xvZ3MoMjApOwogIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogbG9ncyB9KTsKfSk7CgovLyBJbmljaW8gZGVsIHNlcnZpZG9yCmNvbnN0IHN0YXJ0ID0gYXN5bmMgKCkgPT4gewogIGF3YWl0IGNvbm5lY3REQigpOwoKICAvLyBNaWdyYWNpw7NuOiBhw7FhZGlyIGNvbHVtbmEgZGVsZXRlZF9hdCBzaSBubyBleGlzdGUgKHNhZmUgdG8gcnVuIG11bHRpcGxlIHRpbWVzKQogIHRyeSB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KGBBTFRFUiBUQUJMRSBwcm9wZXJ0aWVzCiAgICAgIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBkZWxldGVkX2F0IERBVEVUSU1FIE5VTEwgREVGQVVMVCBOVUxMLAogICAgICBBREQgSU5ERVggSUYgTk9UIEVYSVNUUyBpZHhfZGVsZXRlZCAoZGVsZXRlZF9hdClgKTsKICAgIGF3YWl0IHBvb2wucXVlcnkoYEFMVEVSIFRBQkxFIHByb3BlcnRpZXMKICAgICAgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIG9wZXJhdGlvbl90eXBlIEVOVU0oJ3NhbGUnLCdyZW50JykgTk9UIE5VTEwgREVGQVVMVCAnc2FsZScsCiAgICAgIEFERCBJTkRFWCBJRiBOT1QgRVhJU1RTIGlkeF9vcGVyYXRpb25fdHlwZSAob3BlcmF0aW9uX3R5cGUpYCk7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KGBDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncyAoCiAgICAgIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICAgICAgbmFtZSBWQVJDSEFSKDEyMCkgTk9UIE5VTEwgVU5JUVVFLAogICAgICBpZGVhbGlzdGFfc2x1ZyBWQVJDSEFSKDE2MCkgTk9UIE5VTEwsCiAgICAgIGZvdG9jYXNhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogICAgICBwaXNvc19zbHVnIFZBUkNIQVIoMTYwKSBOT1QgTlVMTCwKICAgICAgYWN0aXZlIFRJTllJTlQoMSkgREVGQVVMVCAxLAogICAgICBzb3J0X29yZGVyIElOVCBERUZBVUxUIDk5OSwKICAgICAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUAogICAgKWApOwoKICAgIC8vIExhIHRhYmxhIHNlIGHDsWFkacOzIGRlc3B1w6lzIGRlbCBpbml0LWRiIG9yaWdpbmFsIHkgcHVlZGUgZXhpc3RpciB2YWPDrWEuCiAgICAvLyBTZW1icmFyIHPDs2xvIGN1YW5kbyBlc3TDoSB2YWPDrWEgcHJlc2VydmEgYWx0YXMvYmFqYXMgaGVjaGFzIGRlc2RlIGxhIFVJLgogICAgY29uc3QgW2Rpc3RyaWN0Q291bnRSb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCBGUk9NIHZhbGVuY2lhX2Rpc3RyaWN0X3NsdWdzYCk7CiAgICBjb25zdCBkaXN0cmljdENvdW50ID0gTnVtYmVyKChkaXN0cmljdENvdW50Um93cyBhcyBhbnlbXSlbMF0/LnRvdGFsIHx8IDApOwogICAgaWYgKGRpc3RyaWN0Q291bnQgPT09IDApIHsKICAgICAgZm9yIChjb25zdCBbaW5kZXgsIGRpc3RyaWN0XSBvZiBWQUxFTkNJQV9ESVNUUklDVFMuZW50cmllcygpKSB7CiAgICAgICAgYXdhaXQgcG9vbC5xdWVyeSgKICAgICAgICAgIGBJTlNFUlQgSUdOT1JFIElOVE8gdmFsZW5jaWFfZGlzdHJpY3Rfc2x1Z3MKICAgICAgICAgICAobmFtZSwgaWRlYWxpc3RhX3NsdWcsIGZvdG9jYXNhX3NsdWcsIHBpc29zX3NsdWcsIGFjdGl2ZSwgc29ydF9vcmRlcikKICAgICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sIDEsID8pYCwKICAgICAgICAgIFtkaXN0cmljdC5uYW1lLCBkaXN0cmljdC5pZGVhbGlzdGEsIGRpc3RyaWN0LmZvdG9jYXNhLCBkaXN0cmljdC5waXNvcywgKGluZGV4ICsgMSkgKiAxMF0KICAgICAgICApOwogICAgICB9CiAgICAgIGNvbnNvbGUubG9nKGBbREJdIFNlbWJyYWRvcyAke1ZBTEVOQ0lBX0RJU1RSSUNUUy5sZW5ndGh9IGRpc3RyaXRvcyBkZSBWYWxlbmNpYS5gKTsKICAgIH0gZWxzZSB7CiAgICAgIC8vIE1pZ3JhciDDum5pY2FtZW50ZSBsb3Mgc2x1Z3MgcG9yIGRlZmVjdG8gYW50aWd1b3MvaW5jb3JyZWN0b3M7IG5vIHRvY2FyCiAgICAgIC8vIHZhbG9yZXMgcGVyc29uYWxpemFkb3MgcXVlIGVsIHVzdWFyaW8gaGF5YSBjb25maWd1cmFkbyBlbiBsYSBVSS4KICAgICAgY29uc3QgbGVnYWN5UGlzb3NTbHVnczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0gewogICAgICAgICJDaXV0YXQgVmVsbGEiOiBbImNpdXRhdC12ZWxsYS12YWxlbmNpYS1jYXBpdGFsIl0sCiAgICAgICAgIkVpeGFtcGxlIjogWyJlaXhhbXBsZS12YWxlbmNpYS1jYXBpdGFsIl0sCiAgICAgICAgIkV4dHJhbXVycyI6IFsiZXh0cmFtdXJzLXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9leHRyYW11cnMiXSwKICAgICAgICAiQ2FtcGFuYXIiOiBbImNhbXBhbmFyLXZhbGVuY2lhLWNhcGl0YWwiXSwKICAgICAgICAiUGF0cmFpeCI6IFsicGF0cmFpeC12YWxlbmNpYS1jYXBpdGFsIiwgInBpc29zLXZhbGVuY2lhX2NhcGl0YWxfcGF0cmFpeCJdLAogICAgICAgICJRdWF0cmUgQ2FycmVyZXMiOiBbInF1YXRyZS1jYXJyZXJlcy12YWxlbmNpYS1jYXBpdGFsIiwgInBpc29zLXZhbGVuY2lhX2NhcGl0YWxfcXVhdHJlX2NhcnJlcmVzIl0sCiAgICAgICAgIlBvYmxhdHMgTWFyaXRpbXMiOiBbInBvYmxhdHMtbWFyaXRpbXMtdmFsZW5jaWEtY2FwaXRhbCIsICJwaXNvcy12YWxlbmNpYV9jYXBpdGFsX3BvYmxhdHNfbWFyaXRpbXMiXSwKICAgICAgICAiQ2FtaW5zIGFsIEdyYXUiOiBbImNhbWlucy1hbC1ncmF1LXZhbGVuY2lhLWNhcGl0YWwiLCAicGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9jYW1pbnNfYWxfZ3JhdSJdLAogICAgICAgICJCZW5pY2FsYXAiOiBbImJlbmljYWxhcC12YWxlbmNpYS1jYXBpdGFsIl0sCiAgICAgICAgIlJhc2NhbnlhIjogWyJyYXNjYW55YS12YWxlbmNpYS1jYXBpdGFsIiwgInBpc29zLXZhbGVuY2lhX2NhcGl0YWxfcmFzY2FueWEiXSwKICAgICAgfTsKICAgICAgZm9yIChjb25zdCBkaXN0cmljdCBvZiBWQUxFTkNJQV9ESVNUUklDVFMpIHsKICAgICAgICBjb25zdCBsZWdhY3kgPSBsZWdhY3lQaXNvc1NsdWdzW2Rpc3RyaWN0Lm5hbWVdIHx8IFtdOwogICAgICAgIGlmIChsZWdhY3kubGVuZ3RoID09PSAwKSBjb250aW51ZTsKICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnMgPSBsZWdhY3kubWFwKCgpID0+ICI/Iikuam9pbigiLCAiKTsKICAgICAgICBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICAgICAgYFVQREFURSB2YWxlbmNpYV9kaXN0cmljdF9zbHVncyBTRVQgcGlzb3Nfc2x1ZyA9ID8KICAgICAgICAgICBXSEVSRSBuYW1lID0gPyBBTkQgcGlzb3Nfc2x1ZyBJTiAoJHtwbGFjZWhvbGRlcnN9KWAsCiAgICAgICAgICBbZGlzdHJpY3QucGlzb3MsIGRpc3RyaWN0Lm5hbWUsIC4uLmxlZ2FjeV0KICAgICAgICApOwogICAgICB9CiAgICB9CiAgICBjb25zb2xlLmxvZygiW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4iKTsKCiAgICAvLyBQdXJnYSBpbmljaWFsOiBsaW1waWFyIHJlZ2lzdHJvcyBlbiBhcmNoaXZvID4zMCBkw61hcwogICAgY29uc3QgeyBQcm9wZXJ0eU1vZGVsOiBQTSB9ID0gYXdhaXQgaW1wb3J0KCIuL21vZGVscy9wcm9wZXJ0eU1vZGVsIik7CiAgICBjb25zdCBwdXJnZWQgPSBhd2FpdCBQTS5wdXJnZU9sZERlbGV0ZWQoKTsKICAgIGlmIChwdXJnZWQgPiAwKSBjb25zb2xlLmxvZyhgW0RCXSBQdXJnYWRvcyAke3B1cmdlZH0gYW51bmNpb3MgZGVsIGFyY2hpdm8gKD4zMCBkw61hcykuYCk7CiAgfSBjYXRjaCAoZTogYW55KSB7CiAgICBjb25zb2xlLndhcm4oIltEQl0gTWlncmFjacOzbiBkZWxldGVkX2F0OiIsIGUubWVzc2FnZSk7CiAgfQoKICAvLyBHZW5lcmFyIGljb25vcyBQTkcgcGFyYSBQV0EgKGRlc2RlIGljb24uc3ZnKQogIGF3YWl0IGdlbmVyYXRlUG5nSWNvbnMoKS5jYXRjaCgoZSkgPT4gY29uc29sZS53YXJuKCJbSWNvbnNdIiwgZS5tZXNzYWdlKSk7CiAgYXBwLmxpc3RlbihQT1JULCAoKSA9PiB7CiAgICBjb25zb2xlLmxvZyhgU2Vydmlkb3IgYXJyYW5jYWRvIGVuIGh0dHA6Ly9sb2NhbGhvc3Q6JHtQT1JUfWApOwogICAgY29uc29sZS5sb2coYERhc2hib2FyZDogaHR0cDovL2xvY2FsaG9zdDoke1BPUlR9L2Rhc2hib2FyZGApOwogIH0pOwogIHN0YXJ0U2NoZWR1bGVyKCk7Cn07CgpzdGFydCgpLmNhdGNoKChlcnIpID0+IHsKICBjb25zb2xlLmVycm9yKCJFcnJvciBhbCBpbmljaWFyOiIsIGVycik7CiAgcHJvY2Vzcy5leGl0KDEpOwp9KTsKCi8vIEVycm9yIGhhbmRsZXIgY2VudHJhbGl6YWRvIChkZWJlIGlyIERFU1BVw4lTIGRlIHRvZGFzIGxhcyBydXRhcykKYXBwLnVzZSgoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4gewogIHJlcy5zdGF0dXMoNDA0KS5yZW5kZXIoImVycm9yIiwgeyBtZXNzYWdlOiAiUMOhZ2luYSBubyBlbmNvbnRyYWRhICg0MDQpIiwgdXNlcjogbnVsbCB9KTsKfSk7CgovLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzCmFwcC51c2UoKGVycjogRXJyb3IsIF9yZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIF9uZXh0OiBOZXh0RnVuY3Rpb24pID0+IHsKICBjb25zb2xlLmVycm9yKCJbRXJyb3IgSGFuZGxlcl0iLCBlcnIubWVzc2FnZSwgZXJyLnN0YWNrKTsKICByZXMuc3RhdHVzKDUwMCkucmVuZGVyKCJlcnJvciIsIHsgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgIkVycm9yIGludGVybm8gZGVsIHNlcnZpZG9yIiwgdXNlcjogbnVsbCB9KTsKfSk7CgpleHBvcnQgZGVmYXVsdCBhcHA7Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\config\\db.ts","beforeExisted":true,"beforeHash":"f464dcb1a670f2c4d5c78009a836a87de31a47ca7ae9741c4f746db1fc457f3d","beforeContent":"aW1wb3J0IG15c3FsIGZyb20gJ215c3FsMi9wcm9taXNlJzsKaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnbm9kZTpwcm9jZXNzJzsKaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7CmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdub2RlOnBhdGgnOwoKLy8gTG9hZCAuZW52IG1hbnVhbGx5IHVzaW5nIGJ1aWx0LWluIE5vZGUuanMgbW9kdWxlcwp0cnkgewogIGNvbnN0IGVudlBhdGggPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksICcuZW52Jyk7CiAgY29uc3QgZW52Q29udGVudCA9IHJlYWRGaWxlU3luYyhlbnZQYXRoLCAndXRmLTgnKTsKICBmb3IgKGNvbnN0IGxpbmUgb2YgZW52Q29udGVudC5zcGxpdCgnXG4nKSkgewogICAgY29uc3QgdHJpbW1lZCA9IGxpbmUudHJpbSgpOwogICAgaWYgKCF0cmltbWVkIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnIycpKSBjb250aW51ZTsKICAgIGNvbnN0IGVxSWR4ID0gdHJpbW1lZC5pbmRleE9mKCc9Jyk7CiAgICBpZiAoZXFJZHggPT09IC0xKSBjb250aW51ZTsKICAgIGNvbnN0IGtleSA9IHRyaW1tZWQuc2xpY2UoMCwgZXFJZHgpLnRyaW0oKTsKICAgIGNvbnN0IHZhbHVlID0gdHJpbW1lZC5zbGljZShlcUlkeCArIDEpLnRyaW0oKS5yZXBsYWNlKC9eWyInXXxbIiddJC9nLCAnJyk7CiAgICBpZiAoIShrZXkgaW4gcHJvY2Vzcy5lbnYpKSBwcm9jZXNzLmVudltrZXldID0gdmFsdWU7CiAgfQp9IGNhdGNoIHsgLyogLmVudiBmaWxlIG5vdCBmb3VuZCwgcmVseWluZyBvbiBzeXN0ZW0gZW52IHZhcnMgKi8gfQoKY29uc3QgcG9vbCA9IG15c3FsLmNyZWF0ZVBvb2woewogIGhvc3Q6IHByb2Nlc3MuZW52LkRCX0hPU1QgfHwgJ2xvY2FsaG9zdCcsCiAgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LkRCX1BPUlQpIHx8IDMzMDYsCiAgdXNlcjogcHJvY2Vzcy5lbnYuREJfVVNFUiB8fCAncm9vdCcsCiAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LkRCX1BBU1NXT1JEIHx8ICcnLAogIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5EQl9OQU1FIHx8ICdsbGlyaWFfcHJvcGVydGllcycsCiAgd2FpdEZvckNvbm5lY3Rpb25zOiB0cnVlLAogIGNvbm5lY3Rpb25MaW1pdDogMTAsCiAgcXVldWVMaW1pdDogMCwKICB0aW1lem9uZTogJyswMDowMCcsCn0pOwoKZXhwb3J0IGNvbnN0IGNvbm5lY3REQiA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICB0cnkgewogICAgY29uc3QgY29ubiA9IGF3YWl0IHBvb2wuZ2V0Q29ubmVjdGlvbigpOwogICAgY29uc29sZS5sb2coJ0NvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4nKTsKICAgIC8vIE1pZ3JhY2lvbmVzIGF1dG9tw6F0aWNhcyAoY29sdW1uYXMgb3BjaW9uYWxlcyBhw7FhZGlkYXMgZW4gdmVyc2lvbmVzIHBvc3RlcmlvcmVzKQogICAgY29uc3QgbWlncmF0aW9ucyA9IFsKICAgICAgYEFMVEVSIFRBQkxFIGZpbHRlcnMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIHBvcnRhbCBWQVJDSEFSKDEwMCkgQUZURVIgbWluX3NpemVfbTJgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgc2NvcmUgREVDSU1BTCg0LDIpIERFRkFVTFQgTlVMTGAsCiAgICAgIGBBTFRFUiBUQUJMRSBwcm9wZXJ0aWVzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBwcmljZV9wZXJfbTIgREVDSU1BTCg4LDIpIERFRkFVTFQgTlVMTGAsCiAgICAgIGBBTFRFUiBUQUJMRSBwcm9wZXJ0aWVzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBpc19kdXBsaWNhdGUgVElOWUlOVCgxKSBERUZBVUxUIDBgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgZHVwbGljYXRlX29mIElOVCBERUZBVUxUIE5VTExgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgaXNfZmF2b3JpdGUgVElOWUlOVCgxKSBERUZBVUxUIDBgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgbm90ZXMgVEVYVCBERUZBVUxUIE5VTExgLAogICAgICBgQUxURVIgVEFCTEUgem9uZXMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGRpc3RhbmNlX2Zyb21fdmFsZW5jaWFfa20gREVDSU1BTCg2LDIpIE5VTEwgQUZURVIgcmFkaXVzX2ttYCwKICAgICAgYEFMVEVSIFRBQkxFIHpvbmVzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBjb3ZlcmFnZV9zZWdtZW50IFZBUkNIQVIoNDApIE5VTEwgQUZURVIgZGlzdGFuY2VfZnJvbV92YWxlbmNpYV9rbWAsCiAgICAgIGBBTFRFUiBUQUJMRSB6b25lcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgY292ZXJhZ2Vfc2NvcGUgVkFSQ0hBUig0MCkgTlVMTCBBRlRFUiBjb3ZlcmFnZV9zZWdtZW50YCwKICAgICAgYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHByaWNlX2hpc3RvcnkgKAogICAgICAgIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICAgICAgICBwcm9wZXJ0eV9pZCBJTlQgTk9UIE5VTEwsCiAgICAgICAgcHJpY2UgREVDSU1BTCgxMiwyKSBOT1QgTlVMTCwKICAgICAgICByZWNvcmRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICAgICAgICBJTkRFWCBpZHhfcHJvcGVydHlfcHJpY2UgKHByb3BlcnR5X2lkLCByZWNvcmRlZF9hdCkKICAgICAgKWAsCiAgICAgIGBDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBzY3JhcGluZ19sb2cgKAogICAgICAgIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICAgICAgICBzdGFydGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogICAgICAgIGZpbmlzaGVkX2F0IFRJTUVTVEFNUCBOVUxMLAogICAgICAgIHRvdGFsX2ZvdW5kIElOVCBERUZBVUxUIDAsCiAgICAgICAgbmV3X3NhdmVkIElOVCBERUZBVUxUIDAsCiAgICAgICAgZXJyb3JzIElOVCBERUZBVUxUIDAsCiAgICAgICAgc3RhdHVzIFZBUkNIQVIoMjApIERFRkFVTFQgJ3J1bm5pbmcnLAogICAgICAgIGRldGFpbHMgVEVYVCBOVUxMCiAgICAgIClgLAogICAgXTsKICAgIGZvciAoY29uc3Qgc3FsIG9mIG1pZ3JhdGlvbnMpIHsKICAgICAgdHJ5IHsgYXdhaXQgY29ubi5xdWVyeShzcWwpOyB9IGNhdGNoIChfZSkgeyAvKiBjb2x1bW5hL3RhYmxhIHlhIGV4aXN0ZSAqLyB9CiAgICB9CiAgICBjb25uLnJlbGVhc2UoKTsKICB9IGNhdGNoIChlcnJvcikgewogICAgY29uc29sZS5lcnJvcignRXJyb3IgYWwgY29uZWN0YXIgYSBNeVNRTDonLCBlcnJvcik7CiAgICBwcm9jZXNzLmV4aXQoMSk7CiAgfQp9OwoKZXhwb3J0IGRlZmF1bHQgcG9vbDsK","afterExisted":true,"afterHash":"6d76d7e3b976f352d1933e20f95d1edcfda25950e8ee94cc11eb57b424aee9e6","afterContent":"aW1wb3J0IG15c3FsIGZyb20gJ215c3FsMi9wcm9taXNlJzsKaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnbm9kZTpwcm9jZXNzJzsKaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7CmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdub2RlOnBhdGgnOwoKLy8gTG9hZCAuZW52IG1hbnVhbGx5IHVzaW5nIGJ1aWx0LWluIE5vZGUuanMgbW9kdWxlcwp0cnkgewogIGNvbnN0IGVudlBhdGggPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksICcuZW52Jyk7CiAgY29uc3QgZW52Q29udGVudCA9IHJlYWRGaWxlU3luYyhlbnZQYXRoLCAndXRmLTgnKTsKICBmb3IgKGNvbnN0IGxpbmUgb2YgZW52Q29udGVudC5zcGxpdCgnXG4nKSkgewogICAgY29uc3QgdHJpbW1lZCA9IGxpbmUudHJpbSgpOwogICAgaWYgKCF0cmltbWVkIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnIycpKSBjb250aW51ZTsKICAgIGNvbnN0IGVxSWR4ID0gdHJpbW1lZC5pbmRleE9mKCc9Jyk7CiAgICBpZiAoZXFJZHggPT09IC0xKSBjb250aW51ZTsKICAgIGNvbnN0IGtleSA9IHRyaW1tZWQuc2xpY2UoMCwgZXFJZHgpLnRyaW0oKTsKICAgIGNvbnN0IHZhbHVlID0gdHJpbW1lZC5zbGljZShlcUlkeCArIDEpLnRyaW0oKS5yZXBsYWNlKC9eWyInXXxbIiddJC9nLCAnJyk7CiAgICBpZiAoIShrZXkgaW4gcHJvY2Vzcy5lbnYpKSBwcm9jZXNzLmVudltrZXldID0gdmFsdWU7CiAgfQp9IGNhdGNoIHsgLyogLmVudiBmaWxlIG5vdCBmb3VuZCwgcmVseWluZyBvbiBzeXN0ZW0gZW52IHZhcnMgKi8gfQoKY29uc3QgcG9vbCA9IG15c3FsLmNyZWF0ZVBvb2woewogIGhvc3Q6IHByb2Nlc3MuZW52LkRCX0hPU1QgfHwgJ2xvY2FsaG9zdCcsCiAgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LkRCX1BPUlQpIHx8IDMzMDYsCiAgdXNlcjogcHJvY2Vzcy5lbnYuREJfVVNFUiB8fCAncm9vdCcsCiAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LkRCX1BBU1NXT1JEIHx8ICcnLAogIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5EQl9OQU1FIHx8ICdsbGlyaWFfcHJvcGVydGllcycsCiAgd2FpdEZvckNvbm5lY3Rpb25zOiB0cnVlLAogIGNvbm5lY3Rpb25MaW1pdDogMTAsCiAgcXVldWVMaW1pdDogMCwKICB0aW1lem9uZTogJyswMDowMCcsCn0pOwoKZXhwb3J0IGNvbnN0IGNvbm5lY3REQiA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICB0cnkgewogICAgY29uc3QgY29ubiA9IGF3YWl0IHBvb2wuZ2V0Q29ubmVjdGlvbigpOwogICAgY29uc29sZS5sb2coJ0NvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4nKTsKICAgIC8vIE1pZ3JhY2lvbmVzIGF1dG9tw6F0aWNhcyAoY29sdW1uYXMgb3BjaW9uYWxlcyBhw7FhZGlkYXMgZW4gdmVyc2lvbmVzIHBvc3RlcmlvcmVzKQogICAgY29uc3QgbWlncmF0aW9ucyA9IFsKICAgICAgYEFMVEVSIFRBQkxFIGZpbHRlcnMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIHBvcnRhbCBWQVJDSEFSKDEwMCkgQUZURVIgbWluX3NpemVfbTJgLAogICAgICBgQUxURVIgVEFCTEUgZmlsdGVycyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgdXNlcl9pZCBJTlQgTlVMTCBBRlRFUiBpZGAsCiAgICAgIGBBTFRFUiBUQUJMRSBmaWx0ZXJzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBvcGVyYXRpb25fdHlwZSBFTlVNKCdzYWxlJywncmVudCcpIE5VTEwgQUZURVIgcHJvcGVydHlfdHlwZWAsCiAgICAgIGBVUERBVEUgZmlsdGVycyBTRVQgdXNlcl9pZCA9IDEgV0hFUkUgdXNlcl9pZCBJUyBOVUxMYCwKICAgICAgYEFMVEVSIFRBQkxFIHVzZXJzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByb2xlIEVOVU0oJ29wZXJhdG9yJywnaWFfYWRtaW4nKSBOT1QgTlVMTCBERUZBVUxUICdvcGVyYXRvcicgQUZURVIgZW1haWxgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgc2NvcmUgREVDSU1BTCg0LDIpIERFRkFVTFQgTlVMTGAsCiAgICAgIGBBTFRFUiBUQUJMRSBwcm9wZXJ0aWVzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBwcmljZV9wZXJfbTIgREVDSU1BTCg4LDIpIERFRkFVTFQgTlVMTGAsCiAgICAgIGBBTFRFUiBUQUJMRSBwcm9wZXJ0aWVzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBpc19kdXBsaWNhdGUgVElOWUlOVCgxKSBERUZBVUxUIDBgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgZHVwbGljYXRlX29mIElOVCBERUZBVUxUIE5VTExgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgaXNfZmF2b3JpdGUgVElOWUlOVCgxKSBERUZBVUxUIDBgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgbm90ZXMgVEVYVCBERUZBVUxUIE5VTExgLAogICAgICBgQUxURVIgVEFCTEUgcHJvcGVydGllcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgbGFzdF9zZWVuX2F0IFRJTUVTVEFNUCBOVUxMIERFRkFVTFQgTlVMTCBBRlRFUiB1cGRhdGVkX2F0YCwKICAgICAgYFVQREFURSBwcm9wZXJ0aWVzIFNFVCBsYXN0X3NlZW5fYXQgPSB1cGRhdGVkX2F0IFdIRVJFIGxhc3Rfc2Vlbl9hdCBJUyBOVUxMYCwKICAgICAgYENSRUFURSBJTkRFWCBJRiBOT1QgRVhJU1RTIGlkeF9sYXN0X3NlZW4gT04gcHJvcGVydGllcyAobGFzdF9zZWVuX2F0KWAsCiAgICAgIGBBTFRFUiBUQUJMRSB6b25lcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgZGlzdGFuY2VfZnJvbV92YWxlbmNpYV9rbSBERUNJTUFMKDYsMikgTlVMTCBBRlRFUiByYWRpdXNfa21gLAogICAgICBgQUxURVIgVEFCTEUgem9uZXMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvdmVyYWdlX3NlZ21lbnQgVkFSQ0hBUig0MCkgTlVMTCBBRlRFUiBkaXN0YW5jZV9mcm9tX3ZhbGVuY2lhX2ttYCwKICAgICAgYEFMVEVSIFRBQkxFIHpvbmVzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBjb3ZlcmFnZV9zY29wZSBWQVJDSEFSKDQwKSBOVUxMIEFGVEVSIGNvdmVyYWdlX3NlZ21lbnRgLAogICAgICBgQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcHJpY2VfaGlzdG9yeSAoCiAgICAgICAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogICAgICAgIHByb3BlcnR5X2lkIElOVCBOT1QgTlVMTCwKICAgICAgICBwcmljZSBERUNJTUFMKDEyLDIpIE5PVCBOVUxMLAogICAgICAgIHJlY29yZGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogICAgICAgIElOREVYIGlkeF9wcm9wZXJ0eV9wcmljZSAocHJvcGVydHlfaWQsIHJlY29yZGVkX2F0KQogICAgICApYCwKICAgICAgYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHNjcmFwaW5nX2xvZyAoCiAgICAgICAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogICAgICAgIHN0YXJ0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgICAgICAgZmluaXNoZWRfYXQgVElNRVNUQU1QIE5VTEwsCiAgICAgICAgdG90YWxfZm91bmQgSU5UIERFRkFVTFQgMCwKICAgICAgICBuZXdfc2F2ZWQgSU5UIERFRkFVTFQgMCwKICAgICAgICBlcnJvcnMgSU5UIERFRkFVTFQgMCwKICAgICAgICBzdGF0dXMgVkFSQ0hBUigyMCkgREVGQVVMVCAncnVubmluZycsCiAgICAgICAgZGV0YWlscyBURVhUIE5VTEwKICAgICAgKWAsCiAgICAgIGBDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBzY3JhcGluZ19wb3J0YWxfcnVucyAoCiAgICAgICAgaWQgQklHSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogICAgICAgIHBvcnRhbCBWQVJDSEFSKDEwMCkgTk9UIE5VTEwsCiAgICAgICAgc2NyYXBlcl9jbGFzcyBWQVJDSEFSKDEyMCkgTk9UIE5VTEwsCiAgICAgICAgb3BlcmF0aW9uX3R5cGUgRU5VTSgnc2FsZScsJ3JlbnQnKSBOT1QgTlVMTCwKICAgICAgICB0cmlnZ2VyX21vZGUgRU5VTSgnbWFudWFsJywnc2NoZWR1bGVkJykgTk9UIE5VTEwsCiAgICAgICAgem9uZV9zY29wZSBWQVJDSEFSKDIwMCkgTlVMTCwKICAgICAgICBzdGF0dXMgVkFSQ0hBUigyMCkgTk9UIE5VTEwgREVGQVVMVCAncnVubmluZycsCiAgICAgICAgdG90YWxfZm91bmQgSU5UIE5PVCBOVUxMIERFRkFVTFQgMCwKICAgICAgICBuZXdfc2F2ZWQgSU5UIE5PVCBOVUxMIERFRkFVTFQgMCwKICAgICAgICBwYXJ0aWFsX2NvdmVyYWdlIFRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAwLAogICAgICAgIGVycm9yIFRFWFQgTlVMTCwKICAgICAgICBzdGFydGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogICAgICAgIGZpbmlzaGVkX2F0IFRJTUVTVEFNUCBOVUxMLAogICAgICAgIElOREVYIGlkeF9wb3J0YWxfb3BlcmF0aW9uX3N0YXJ0ZWQgKHBvcnRhbCwgb3BlcmF0aW9uX3R5cGUsIHN0YXJ0ZWRfYXQpLAogICAgICAgIElOREVYIGlkeF9zdGF0dXNfc3RhcnRlZCAoc3RhdHVzLCBzdGFydGVkX2F0KQogICAgICApYCwKICAgICAgYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHVzZXJfcHJvcGVydHlfc3RhdGUgKAogICAgICAgIHVzZXJfaWQgSU5UIE5PVCBOVUxMLAogICAgICAgIHByb3BlcnR5X2lkIElOVCBOT1QgTlVMTCwKICAgICAgICBpc19mYXZvcml0ZSBUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgMCwKICAgICAgICBub3RlcyBURVhUIE5VTEwsCiAgICAgICAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICAgICAgICB1cGRhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCwKICAgICAgICBQUklNQVJZIEtFWSAodXNlcl9pZCwgcHJvcGVydHlfaWQpLAogICAgICAgIElOREVYIGlkeF91c2VyX2Zhdm9yaXRlICh1c2VyX2lkLCBpc19mYXZvcml0ZSkKICAgICAgKWAsCiAgICAgIGBJTlNFUlQgSUdOT1JFIElOVE8gdXNlcl9wcm9wZXJ0eV9zdGF0ZSAodXNlcl9pZCwgcHJvcGVydHlfaWQsIGlzX2Zhdm9yaXRlLCBub3RlcykKICAgICAgIFNFTEVDVCAxLCBpZCwgQ09BTEVTQ0UoaXNfZmF2b3JpdGUsIDApLCBub3RlcyBGUk9NIHByb3BlcnRpZXMKICAgICAgICBXSEVSRSBpc19mYXZvcml0ZSA9IDEgT1Igbm90ZXMgSVMgTk9UIE5VTExgLAogICAgICBgQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgZmlsdGVyX2FsZXJ0X2RlbGl2ZXJpZXMgKAogICAgICAgIGZpbHRlcl9pZCBJTlQgTk9UIE5VTEwsCiAgICAgICAgcHJvcGVydHlfaWQgSU5UIE5PVCBOVUxMLAogICAgICAgIHNlbnRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgICAgICAgUFJJTUFSWSBLRVkgKGZpbHRlcl9pZCwgcHJvcGVydHlfaWQpLAogICAgICAgIElOREVYIGlkeF9hbGVydF9wcm9wZXJ0eSAocHJvcGVydHlfaWQpCiAgICAgIClgLAogICAgXTsKICAgIGZvciAoY29uc3Qgc3FsIG9mIG1pZ3JhdGlvbnMpIHsKICAgICAgdHJ5IHsgYXdhaXQgY29ubi5xdWVyeShzcWwpOyB9IGNhdGNoIChfZSkgeyAvKiBjb2x1bW5hL3RhYmxhIHlhIGV4aXN0ZSAqLyB9CiAgICB9CiAgICBjb25uLnJlbGVhc2UoKTsKICB9IGNhdGNoIChlcnJvcikgewogICAgY29uc29sZS5lcnJvcignRXJyb3IgYWwgY29uZWN0YXIgYSBNeVNRTDonLCBlcnJvcik7CiAgICBwcm9jZXNzLmV4aXQoMSk7CiAgfQp9OwoKZXhwb3J0IGRlZmF1bHQgcG9vbDsK","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\config\\initDb.ts","beforeExisted":true,"beforeHash":"3a5cfeefb63013f1716c594abb0fd39588a44d872b2fa7a8417646ab2dd1d247","beforeContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IG15c3FsIGZyb20gIm15c3FsMi9wcm9taXNlIjsKCmNvbnN0IFNRTCA9IGAKQ1JFQVRFIERBVEFCQVNFIElGIE5PVCBFWElTVFMgbGxpcmlhX3Byb3BlcnRpZXMgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF91bmljb2RlX2NpOwpVU0UgbGxpcmlhX3Byb3BlcnRpZXM7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1c2VycyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIHVzZXJuYW1lIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCBVTklRVUUsCiAgcGFzc3dvcmQgVkFSQ0hBUigyNTUpIE5PVCBOVUxMLAogIGVtYWlsIFZBUkNIQVIoMjU1KSBOT1QgTlVMTCwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHByb3BlcnRpZXMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICB0aXRsZSBWQVJDSEFSKDUwMCkgTk9UIE5VTEwsCiAgcHJpY2UgREVDSU1BTCgxMiwyKSBOT1QgTlVMTCBERUZBVUxUIDAsCiAgbG9jYXRpb24gVkFSQ0hBUig1MDApIE5PVCBOVUxMLAogIG11bmljaXBhbGl0eSBWQVJDSEFSKDIwMCksCiAgcHJvcGVydHlfdHlwZSBWQVJDSEFSKDUwKSBERUZBVUxUICdjYXNhJywKICBvcGVyYXRpb25fdHlwZSBFTlVNKCdzYWxlJywncmVudCcpIE5PVCBOVUxMIERFRkFVTFQgJ3NhbGUnLAogIHJvb21zIFRJTllJTlQsCiAgYmF0aHJvb21zIFRJTllJTlQsCiAgc2l6ZV9tMiBERUNJTUFMKDgsMiksCiAgZGVzY3JpcHRpb24gVEVYVCwKICBpbWFnZV91cmwgVkFSQ0hBUigxMDAwKSwKICB1cmwgVkFSQ0hBUigxMDAwKSBOT1QgTlVMTCBVTklRVUUsCiAgc291cmNlIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCwKICBsYXQgREVDSU1BTCgxMCw3KSwKICBsbmcgREVDSU1BTCgxMCw3KSwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogIHVwZGF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QLAogIElOREVYIGlkeF9wcmljZSAocHJpY2UpLAogIElOREVYIGlkeF9tdW5pY2lwYWxpdHkgKG11bmljaXBhbGl0eSksCiAgSU5ERVggaWR4X3Byb3BlcnR5X3R5cGUgKHByb3BlcnR5X3R5cGUpLAogIElOREVYIGlkeF9vcGVyYXRpb25fdHlwZSAob3BlcmF0aW9uX3R5cGUpLAogIElOREVYIGlkeF9zb3VyY2UgKHNvdXJjZSksCiAgSU5ERVggaWR4X3VwZGF0ZWQgKHVwZGF0ZWRfYXQpCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGZpbHRlcnMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMjAwKSwKICBtaW5fcHJpY2UgREVDSU1BTCgxMiwyKSwKICBtYXhfcHJpY2UgREVDSU1BTCgxMiwyKSwKICBwcm9wZXJ0eV90eXBlIFZBUkNIQVIoNTApLAogIG11bmljaXBhbGl0eSBWQVJDSEFSKDIwMCksCiAgbWluX3Jvb21zIFRJTllJTlQsCiAgbWluX3NpemVfbTIgREVDSU1BTCg4LDIpLAogIHBvcnRhbCBWQVJDSEFSKDEwMCksCiAgZW1haWxfYWxlcnRzIFRJTllJTlQoMSkgREVGQVVMVCAwLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAKKSBFTkdJTkU9SW5ub0RCOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgem9uZXMgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMjAwKSBOT1QgTlVMTCwKICBzbHVnIFZBUkNIQVIoMjAwKSBOT1QgTlVMTCBDT01NRU5UICdTbHVnIHBhcmEgVVJMcyBkZSBzY3JhcGVycyAocC5lajogbGxpcmlhKScsCiAgbGF0IERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgbG5nIERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgcmFkaXVzX2ttIERFQ0lNQUwoNSwyKSBERUZBVUxUIDEwLAogIGRpc3RhbmNlX2Zyb21fdmFsZW5jaWFfa20gREVDSU1BTCg2LDIpIE5VTEwsCiAgY292ZXJhZ2Vfc2VnbWVudCBWQVJDSEFSKDQwKSBOVUxMLAogIGNvdmVyYWdlX3Njb3BlIFZBUkNIQVIoNDApIE5VTEwsCiAgYWN0aXZlIFRJTllJTlQoMSkgREVGQVVMVCAxLAogIHBpc29zX3NsdWcgVkFSQ0hBUigyMDApIENPTU1FTlQgJ1NsdWcgZXNwZWPDrWZpY28gcGFyYSBwaXNvcy5jb20nLAogIHRoaW5rc3BhaW5fc2x1ZyBWQVJDSEFSKDIwMCkgTlVMTCBDT01NRU5UICdTbHVnIGVzcGVjw61maWNvIHBhcmEgVGhpbmtTcGFpbiAoTlVMTCA9IG5vIHRpZW5lIHDDoWdpbmEpJywKICBnbG9iYWxpemFfc2x1ZyBWQVJDSEFSKDIwMCkgTlVMTCBDT01NRU5UICdTbHVnIGVzcGVjw61maWNvIHBhcmEgR2xvYmFsaXphIChOVUxMID0gc2luIHDDoWdpbmEgZW4gR2xvYmFsaXphKScsCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICBVTklRVUUgS0VZIHVxX3pvbmVzX3NsdWcgKHNsdWcpLAogIElOREVYIGlkeF9hY3RpdmUgKGFjdGl2ZSkKKSBFTkdJTkU9SW5ub0RCOwoKSU5TRVJUIElHTk9SRSBJTlRPIHpvbmVzIChuYW1lLCBzbHVnLCBsYXQsIGxuZywgcmFkaXVzX2ttLCBhY3RpdmUsIHBpc29zX3NsdWcsIHRoaW5rc3BhaW5fc2x1ZywgZ2xvYmFsaXphX3NsdWcpIFZBTFVFUwogICgnTGzDrXJpYScsICAgICAgICAgICAgICAgJ2xsaXJpYScsICAgICAgICAgICAgMzkuNjI5MiwgLTAuNTk3OSwgMTIsIDEsICdwaXNvcy1sbGlyaWEnLCAgICAgICAgICAgICAgICAgICdsbGlyaWEnLCAgICAgICAgICAgICAgJ2xsaXJpYScpLAogICgnTWFyaW5lcycsICAgICAgICAgICAgICAnbWFyaW5lcycsICAgICAgICAgICAzOS42NzM2LCAtMC41NDY5LCAgOCwgMSwgJ3Bpc29zLW1hcmluZXMnLCAgICAgICAgICAgICAgICAgJ21hcmluZXMnLCAgICAgICAgICAgICAnbWFyaW5lcycpLAogICgnT2xvY2F1JywgICAgICAgICAgICAgICAnb2xvY2F1JywgICAgICAgICAgICAzOS42OTQ4LCAtMC41MjI0LCAgOCwgMSwgJ3Bpc29zLW9sb2NhdScsICAgICAgICAgICAgICAgICAgJ29sb2NhdScsICAgICAgICAgICAgICAnb2xvY2F1JyksCiAgKCdOw6FxdWVyYScsICAgICAgICAgICAgICAnbmFxdWVyYScsICAgICAgICAgICAzOS42NTA5LCAtMC40OTE3LCAgOCwgMSwgJ3Bpc29zLW5hcXVlcmEnLCAgICAgICAgICAgICAgICAgJ25hcXVlcmEnLCAgICAgICAgICAgICAnbmFxdWVyYScpLAogICgnQsOpdGVyYScsICAgICAgICAgICAgICAgJ2JldGVyYScsICAgICAgICAgICAgMzkuNTk0NSwgLTAuNDY4MCwgMTAsIDEsICdwaXNvcy1iZXRlcmEnLCAgICAgICAgICAgICAgICAgICdiZXRlcmEnLCAgICAgICAgICAgICAgJ2JldGVyYScpLAogICgnVmlsbGFtYXJjaGFudGUnLCAgICAgICAndmlsbGFtYXJjaGFudGUnLCAgICAzOS41NzYzLCAtMC42MjYyLCAgOCwgMSwgJ3Bpc29zLXZpbGxhbWFyY2hhbnRlLXZhbGVuY2lhJywgIE5VTEwsICAgICAgICAgICAgICAgICAgJ3ZpbGFtYXJ4YW50JyksCiAgKCdCZW5hZ3Vhc2lsJywgICAgICAgICAgICdiZW5hZ3Vhc2lsJywgICAgICAgIDM5LjYwMzAsIC0wLjU3MjAsICA4LCAxLCAncGlzb3MtYmVuYWd1YXNpbCcsICAgICAgICAgICAgICAnYmVuYWd1YXNpbCcsICAgICAgICAgICdiZW5hZ3Vhc2lsJyksCiAgKCdMYSBQb2JsYSBkZSBWYWxsYm9uYScsICdwb2JsYS1kZS12YWxsYm9uYScsIDM5LjYxMjYsIC0wLjUzOTYsIDEwLCAxLCAncGlzb3MtcG9ibGEtZGUtdmFsbGJvbmEnLCAgICAgICAnbGEtcG9ibGEtZGUtdmFsbGJvbmEnLCdwb2JsYS12YWxsYm9uYScpLAogICgnTCcnRWxpYW5hJywgICAgICAgICAgICAnZWxpYW5hJywgICAgICAgICAgICAzOS41NjI5LCAtMC40OTc1LCAgOCwgMSwgJ3Bpc29zLWVsaWFuYScsICAgICAgICAgICAgICAgICAgJ2wtZWxpYW5hJywgICAgICAgICAgICAnbC1lbGlhbmEnKSwKICAoJ1JpYmEtcm9qYSBkZWwgVMO6cmlhJywgICdyaWJhLXJvamEnLCAgICAgICAgIDM5LjU0NDgsIC0wLjU1MzYsIDEwLCAxLCAncGlzb3MtcmliYS1yb2phLWRlLXR1cmlhJywgICAgICAncmliYS1yb2phLWRlLXR1cmlhJywgICdyaWJhLXJvamEtdHVyaWEnKSwKICAoJ0NoZWx2YScsICAgICAgICAgICAgICAgJ2NoZWx2YScsICAgICAgICAgICAgMzkuNzU1MiwgLTEuMDA1NCwgMTAsIDEsICdwaXNvcy1jaGVsdmEnLCAgICAgICAgICAgICAgICAgICdjaGVsdmEnLCAgICAgICAgICAgICAgJ2NoZWx2YScpLAogICgnQ2FzaW5vcycsICAgICAgICAgICAgICAnY2FzaW5vcycsICAgICAgICAgICAzOS43MjA3LCAtMC42NzQ4LCAgOCwgMSwgJ3Bpc29zLWNhc2lub3MnLCAgICAgICAgICAgICAgICAgJ2Nhc2lub3MnLCAgICAgICAgICAgICAnY2FzaW5vcycpLAogICgnTW9uY29mYScsICAgICAgICAgICAgICAnbW9uY29mYScsICAgICAgICAgICAzOS44MTg0LCAtMC4xNDY4LCAgOCwgMSwgJ3Bpc29zLW1vbmNvZmEnLCAgICAgICAgICAgICAgICAgJ21vbmNvZmEnLCAgICAgICAgICAgICAnbW9uY29mYScpLAogICgnTGEgVmFsbCBkJydVaXjDsycsICAgICAnbGEtdmFsbC1kdWl4bycsICAgICAzOS44NDc3LCAtMC4yMjU1LCAxMCwgMSwgJ3Bpc29zLWxhLXZhbGwtZHVpeG8nLCAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgICBOVUxMKSwKICAoJ1ZhbGVuY2lhJywgICAgICAgICAgICAgJ3ZhbGVuY2lhJywgICAgICAgICAgMzkuNDY5OSwgLTAuMzc2MywgMTUsIDEsICdwaXNvcy12YWxlbmNpYScsICAgICAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgJ3ZhbGVuY2lhJyk7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBwb3J0YWxzICgKICBpZCBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCiAgbmFtZSBWQVJDSEFSKDEwMCkgTk9UIE5VTEwsCiAgc2x1ZyBWQVJDSEFSKDEwMCkgTk9UIE5VTEwgVU5JUVVFLAogIHNjcmFwZXJfY2xhc3MgVkFSQ0hBUigxMDApIE5PVCBOVUxMIENPTU1FTlQgJ05vbWJyZSBleGFjdG8gZGUgbGEgY2xhc2Ugc2NyYXBlciBlbiBUeXBlU2NyaXB0JywKICBhY3RpdmUgVElOWUlOVCgxKSBERUZBVUxUIDEsCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICBJTkRFWCBpZHhfYWN0aXZlIChhY3RpdmUpCikgRU5HSU5FPUlubm9EQjsKCklOU0VSVCBJR05PUkUgSU5UTyBwb3J0YWxzIChuYW1lLCBzbHVnLCBzY3JhcGVyX2NsYXNzLCBhY3RpdmUpIFZBTFVFUwogICgnRm90b2Nhc2EnLCAgICAgICAgJ2ZvdG9jYXNhJywgICAgICAgJ0ZvdG9jYXNhUGxheXdyaWdodFNjcmFwZXInLCAgMSksCiAgKCdIYWJpdGFjbGlhJywgICAgICAnaGFiaXRhY2xpYScsICAgICAnSGFiaXRhY2xpYVNjcmFwZXInLCAgICAgICAgICAxKSwKICAoJ1Bpc29zLmNvbScsICAgICAgICdwaXNvcy1jb20nLCAgICAgICdQaXNvc1NjcmFwZXInLCAgICAgICAgICAgICAgIDEpLAogICgnVGhpbmtTcGFpbicsICAgICAgJ3RoaW5rc3BhaW4nLCAgICAgJ1RoaW5rU3BhaW5TY3JhcGVyJywgICAgICAgICAgMSksCiAgKCdHbG9iYWxpemEnLCAgICAgICAnZ2xvYmFsaXphJywgICAgICAnR2xvYmFsaXphU2NyYXBlcicsICAgICAgICAgICAxKSwKICAoJ0lkZWFsaXN0YScsICAgICAgICdpZGVhbGlzdGEnLCAgICAgICdJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlcicsIDEpLAogICgnS3llcm8nLCAgICAgICAgICAgJ2t5ZXJvJywgICAgICAgICAgJ0t5ZXJvU2NyYXBlcicsICAgICAgICAgICAgICAgMCksCiAgKCdNaWxhbnVuY2lvcycsICAgICAnbWlsYW51bmNpb3MnLCAgICAnTWlsYW51bmNpb3NTY3JhcGVyJywgICAgICAgICAgMCksCiAgKCdZYWVuY29udHJlJywgICAgICAneWFlbmNvbnRyZScsICAgICAnWWFlbmNvbnRyZVNjcmFwZXInLCAgICAgICAgICAwKSwKICAoJ0Nhc2FzYXBvJywgICAgICAgICdjYXNhc2FwbycsICAgICAgICdDYXNhc2Fwb1NjcmFwZXInLCAgICAgICAgICAgIDApLAogICgnVmliYm8nLCAgICAgICAgICAgJ3ZpYmJvJywgICAgICAgICAgJ1ZpYmJvU2NyYXBlcicsICAgICAgICAgICAgICAgMCksCiAgKCdOdXJvYScsICAgICAgICAgICAnbnVyb2EnLCAgICAgICAgICAnTnVyb2FTY3JhcGVyJywgICAgICAgICAgICAgICAwKSwKICAoJ0VuZ2VsICYgVsO2bGtlcnMnLCAnZW5nZWx2b2xrZXJzJywgICAnRW5nZWxWb2xrZXJzU2NyYXBlcicsICAgICAgICAwKSwKICAoJ1RlY25vY2FzYScsICAgICAgICd0ZWNub2Nhc2EnLCAgICAgICdUZWNub2Nhc2FTY3JhcGVyJywgICAgICAgICAgIDApLAogICgnRVJBIFNwYWluJywgICAgICAgJ2VyYS1zcGFpbicsICAgICAgJ0VyYVNwYWluU2NyYXBlcicsICAgICAgICAgICAgMCksCiAgKCdSRU1BWCBFc3Bhw7FhJywgICAgJ3JlbWF4JywgICAgICAgICAgJ1JlbWF4U2NyYXBlcicsICAgICAgICAgICAgICAgMCksCiAgKCdJbm1vYmlsaWFyaWEuZXMnLCAnaW5tb2JpbGlhcmlhJywgICAnSW5tb2JpbGlhcmlhU2NyYXBlcicsICAgICAgICAwKSwKICAoJ1NwYWluSG91c2VzJywgICAgICdzcGFpbmhvdXNlcycsICAgICdTcGFpbkhvdXNlc1NjcmFwZXInLCAgICAgICAgIDApLAogICgnSG9scHJvcCcsICAgICAgICAgJ2hvbHByb3AnLCAgICAgICAgJ0hvbHByb3BTY3JhcGVyJywgICAgICAgICAgICAgMCksCiAgKCdUcm92aXQnLCAgICAgICAgICAndHJvdml0JywgICAgICAgICAnVHJvdmF0U2NyYXBlcicsICAgICAgICAgICAgICAwKTsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIG11bmljaXBhbGl0aWVzX2VzICgKICBpZCBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCiAgbmFtZSBWQVJDSEFSKDIwMCkgTk9UIE5VTEwsCiAgYXNjaWlfbmFtZSBWQVJDSEFSKDIwMCksCiAgcHJvdmluY2UgVkFSQ0hBUigyMDApLAogIGF1dG9ub215IFZBUkNIQVIoMjAwKSwKICBsYXQgREVDSU1BTCgxMCw3KSBOT1QgTlVMTCwKICBsbmcgREVDSU1BTCgxMCw3KSBOT1QgTlVMTCwKICBwb3B1bGF0aW9uIElOVCBERUZBVUxUIDAsCiAgc291cmNlIFZBUkNIQVIoNTApIERFRkFVTFQgJ2dlb25hbWVzJywKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogIFVOSVFVRSBLRVkgdWtfYXNjaWlfYXV0b25vbXkgKGFzY2lpX25hbWUoMTAwKSwgYXV0b25vbXkoMTAwKSksCiAgSU5ERVggaWR4X25hbWUgKG5hbWUpLAogIElOREVYIGlkeF9hc2NpaV9uYW1lIChhc2NpaV9uYW1lKQopIEVOR0lORT1Jbm5vREI7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIG5hbWUgVkFSQ0hBUigxMjApIE5PVCBOVUxMIFVOSVFVRSwKICBpZGVhbGlzdGFfc2x1ZyBWQVJDSEFSKDE2MCkgTk9UIE5VTEwsCiAgZm90b2Nhc2Ffc2x1ZyBWQVJDSEFSKDE2MCkgTk9UIE5VTEwsCiAgcGlzb3Nfc2x1ZyBWQVJDSEFSKDE2MCkgTk9UIE5VTEwsCiAgYWN0aXZlIFRJTllJTlQoMSkgREVGQVVMVCAxLAogIHNvcnRfb3JkZXIgSU5UIERFRkFVTFQgOTk5LAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAKKSBFTkdJTkU9SW5ub0RCOwoKSU5TRVJUIElHTk9SRSBJTlRPIHZhbGVuY2lhX2Rpc3RyaWN0X3NsdWdzIChuYW1lLCBpZGVhbGlzdGFfc2x1ZywgZm90b2Nhc2Ffc2x1ZywgcGlzb3Nfc2x1ZywgYWN0aXZlLCBzb3J0X29yZGVyKSBWQUxVRVMKICAoJ0NpdXRhdCBWZWxsYScsICdjaXV0YXQtdmVsbGEnLCAnY2l1dGF0LXZlbGxhJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfY2l1dGF0X3ZlbGxhJywgMSwgMTApLAogICgnRWl4YW1wbGUnLCAnbC1laXhhbXBsZScsICdlaXhhbXBsZScsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2VpeGFtcGxlJywgMSwgMjApLAogICgnRXh0cmFtdXJzJywgJ2V4dHJhbXVycycsICdleHRyYW11cnMnLCAncGlzb3MtZXh0cmFtdXJzJywgMSwgMzApLAogICgnQ2FtcGFuYXInLCAnY2FtcGFuYXInLCAnY2FtcGFuYXInLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9jYW1wYW5hcicsIDEsIDQwKSwKICAoJ0xhIFNhw69kaWEnLCAnbGEtc2FpZGlhJywgJ2xhLXNhaWRpYScsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2xhX3NhaWRpYScsIDEsIDUwKSwKICAoJ0VsIFBsYSBkZWwgUmVhbCcsICdlbC1wbGEtZGVsLXJlYWwnLCAnZWwtcGxhLWRlbC1yZWFsJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfZWxfcGxhX2RlbF9yZWFsJywgMSwgNjApLAogICgnTCcnT2xpdmVyZXRhJywgJ2wtb2xpdmVyZXRhJywgJ2wtb2xpdmVyZXRhJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfbF9vbGl2ZXJldGEnLCAxLCA3MCksCiAgKCdQYXRyYWl4JywgJ3BhdHJhaXgnLCAncGF0cmFpeCcsICdwaXNvcy1wYXRyYWl4JywgMSwgODApLAogICgnSmVzw7pzJywgJ2plc3VzJywgJ2plc3VzJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfamVzdXMnLCAxLCA5MCksCiAgKCdRdWF0cmUgQ2FycmVyZXMnLCAncXVhdHJlLWNhcnJlcmVzJywgJ3F1YXRyZS1jYXJyZXJlcycsICdwaXNvcy1xdWF0cmVfY2FycmVyZXMnLCAxLCAxMDApLAogICgnUG9ibGF0cyBNYXJpdGltcycsICdwb2JsYXRzLW1hcml0aW1zJywgJ3BvYmxhdHMtbWFyaXRpbXMnLCAncGlzb3MtcG9ibGF0c19tYXJpdGltcycsIDEsIDExMCksCiAgKCdDYW1pbnMgYWwgR3JhdScsICdjYW1pbnMtYWwtZ3JhdScsICdjYW1pbnMtYWwtZ3JhdScsICdwaXNvcy1jYW1pbnNfYWxfZ3JhdScsIDEsIDEyMCksCiAgKCdBbGdpcsOzcycsICdhbGdpcm9zJywgJ2FsZ2lyb3MnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9hbGdpcm9zJywgMSwgMTMwKSwKICAoJ0JlbmltYWNsZXQnLCAnYmVuaW1hY2xldCcsICdiZW5pbWFjbGV0JywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfYmVuaW1hY2xldCcsIDEsIDE0MCksCiAgKCdSYXNjYW55YScsICdyYXNjYW55YScsICdyYXNjYW55YScsICdwaXNvcy1yYXNjYW55YScsIDEsIDE1MCksCiAgKCdCZW5pY2FsYXAnLCAnYmVuaWNhbGFwJywgJ2JlbmljYWxhcCcsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2JlbmljYWxhcCcsIDEsIDE2MCksCiAgKCdQb2JsZXMgZGVsIE5vcmQnLCAncG9ibGVzLWRlbC1ub3JkJywgJ3BvYmxlcy1kZWwtbm9yZCcsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX3BvYmxlc19kZWxfbm9yZCcsIDEsIDE3MCksCiAgKCdQb2JsZXMgZGUgbCcnT2VzdCcsICdwb2JsZXMtZGUtbC1vZXN0JywgJ3BvYmxlcy1kZS1sLW9lc3QnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9wb2JsZXNfZGVfbF9vZXN0JywgMSwgMTgwKSwKICAoJ1BvYmxlcyBkZWwgU3VkJywgJ3BvYmxlcy1kZWwtc3VkJywgJ3BvYmxlcy1kZWwtc3VkJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfcG9ibGVzX2RlbF9zdWQnLCAxLCAxOTApOwpgOwoKYXN5bmMgZnVuY3Rpb24gaW5pdERiKCkgewogIGNvbnN0IGNvbm5lY3Rpb24gPSBhd2FpdCBteXNxbC5jcmVhdGVDb25uZWN0aW9uKHsKICAgIGhvc3Q6IHByb2Nlc3MuZW52LkRCX0hPU1QgfHwgImxvY2FsaG9zdCIsCiAgICBwb3J0OiBOdW1iZXIocHJvY2Vzcy5lbnYuREJfUE9SVCkgfHwgMzMwNiwKICAgIHVzZXI6IHByb2Nlc3MuZW52LkRCX1VTRVIgfHwgInJvb3QiLAogICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LkRCX1BBU1NXT1JEIHx8ICIiLAogICAgbXVsdGlwbGVTdGF0ZW1lbnRzOiB0cnVlLAogIH0pOwoKICB0cnkgewogICAgY29uc3Qgc3RhdGVtZW50cyA9IFNRTC5zcGxpdCgiOyIpLmZpbHRlcigocykgPT4gcy50cmltKCkubGVuZ3RoID4gMCk7CiAgICBmb3IgKGNvbnN0IHMgb2Ygc3RhdGVtZW50cykgewogICAgICBhd2FpdCBjb25uZWN0aW9uLnF1ZXJ5KHMgKyAiOyIpOwogICAgfQogICAgY29uc29sZS5sb2coIkJhc2UgZGUgZGF0b3MgaW5pY2lhbGl6YWRhIGNvcnJlY3RhbWVudGUuIik7CiAgfSBmaW5hbGx5IHsKICAgIGF3YWl0IGNvbm5lY3Rpb24uZW5kKCk7CiAgfQp9Cgppbml0RGIoKS5jYXRjaChjb25zb2xlLmVycm9yKTsK","afterExisted":true,"afterHash":"0f21fdc7f44eea1a9854a09ce97be10f171193680475ef5eb1454cd3ab7f66c4","afterContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IG15c3FsIGZyb20gIm15c3FsMi9wcm9taXNlIjsKCmNvbnN0IFNRTCA9IGAKQ1JFQVRFIERBVEFCQVNFIElGIE5PVCBFWElTVFMgbGxpcmlhX3Byb3BlcnRpZXMgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0IENPTExBVEUgdXRmOG1iNF91bmljb2RlX2NpOwpVU0UgbGxpcmlhX3Byb3BlcnRpZXM7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1c2VycyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIHVzZXJuYW1lIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCBVTklRVUUsCiAgcGFzc3dvcmQgVkFSQ0hBUigyNTUpIE5PVCBOVUxMLAogIGVtYWlsIFZBUkNIQVIoMjU1KSBOT1QgTlVMTCwKICByb2xlIEVOVU0oJ29wZXJhdG9yJywnaWFfYWRtaW4nKSBOT1QgTlVMTCBERUZBVUxUICdvcGVyYXRvcicsCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUAopIEVOR0lORT1Jbm5vREI7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBwcm9wZXJ0aWVzICgKICBpZCBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCiAgdGl0bGUgVkFSQ0hBUig1MDApIE5PVCBOVUxMLAogIHByaWNlIERFQ0lNQUwoMTIsMikgTk9UIE5VTEwgREVGQVVMVCAwLAogIGxvY2F0aW9uIFZBUkNIQVIoNTAwKSBOT1QgTlVMTCwKICBtdW5pY2lwYWxpdHkgVkFSQ0hBUigyMDApLAogIHByb3BlcnR5X3R5cGUgVkFSQ0hBUig1MCkgREVGQVVMVCAnY2FzYScsCiAgb3BlcmF0aW9uX3R5cGUgRU5VTSgnc2FsZScsJ3JlbnQnKSBOT1QgTlVMTCBERUZBVUxUICdzYWxlJywKICByb29tcyBUSU5ZSU5ULAogIGJhdGhyb29tcyBUSU5ZSU5ULAogIHNpemVfbTIgREVDSU1BTCg4LDIpLAogIGRlc2NyaXB0aW9uIFRFWFQsCiAgaW1hZ2VfdXJsIFZBUkNIQVIoMTAwMCksCiAgdXJsIFZBUkNIQVIoMTAwMCkgTk9UIE5VTEwgVU5JUVVFLAogIHNvdXJjZSBWQVJDSEFSKDEwMCkgTk9UIE5VTEwsCiAgbGF0IERFQ0lNQUwoMTAsNyksCiAgbG5nIERFQ0lNQUwoMTAsNyksCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICB1cGRhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCwKICBsYXN0X3NlZW5fYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgSU5ERVggaWR4X3ByaWNlIChwcmljZSksCiAgSU5ERVggaWR4X211bmljaXBhbGl0eSAobXVuaWNpcGFsaXR5KSwKICBJTkRFWCBpZHhfcHJvcGVydHlfdHlwZSAocHJvcGVydHlfdHlwZSksCiAgSU5ERVggaWR4X29wZXJhdGlvbl90eXBlIChvcGVyYXRpb25fdHlwZSksCiAgSU5ERVggaWR4X3NvdXJjZSAoc291cmNlKSwKICBJTkRFWCBpZHhfdXBkYXRlZCAodXBkYXRlZF9hdCksCiAgSU5ERVggaWR4X2xhc3Rfc2VlbiAobGFzdF9zZWVuX2F0KQopIEVOR0lORT1Jbm5vREI7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBmaWx0ZXJzICgKICBpZCBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCiAgdXNlcl9pZCBJTlQgTlVMTCwKICBuYW1lIFZBUkNIQVIoMjAwKSwKICBtaW5fcHJpY2UgREVDSU1BTCgxMiwyKSwKICBtYXhfcHJpY2UgREVDSU1BTCgxMiwyKSwKICBwcm9wZXJ0eV90eXBlIFZBUkNIQVIoNTApLAogIG9wZXJhdGlvbl90eXBlIEVOVU0oJ3NhbGUnLCdyZW50JykgTlVMTCwKICBtdW5pY2lwYWxpdHkgVkFSQ0hBUigyMDApLAogIG1pbl9yb29tcyBUSU5ZSU5ULAogIG1pbl9zaXplX20yIERFQ0lNQUwoOCwyKSwKICBwb3J0YWwgVkFSQ0hBUigxMDApLAogIGVtYWlsX2FsZXJ0cyBUSU5ZSU5UKDEpIERFRkFVTFQgMCwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHVzZXJfcHJvcGVydHlfc3RhdGUgKAogIHVzZXJfaWQgSU5UIE5PVCBOVUxMLAogIHByb3BlcnR5X2lkIElOVCBOT1QgTlVMTCwKICBpc19mYXZvcml0ZSBUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgMCwKICBub3RlcyBURVhUIE5VTEwsCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICB1cGRhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCwKICBQUklNQVJZIEtFWSAodXNlcl9pZCwgcHJvcGVydHlfaWQpLAogIElOREVYIGlkeF91c2VyX2Zhdm9yaXRlICh1c2VyX2lkLCBpc19mYXZvcml0ZSkKKSBFTkdJTkU9SW5ub0RCOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgZmlsdGVyX2FsZXJ0X2RlbGl2ZXJpZXMgKAogIGZpbHRlcl9pZCBJTlQgTk9UIE5VTEwsCiAgcHJvcGVydHlfaWQgSU5UIE5PVCBOVUxMLAogIHNlbnRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgUFJJTUFSWSBLRVkgKGZpbHRlcl9pZCwgcHJvcGVydHlfaWQpLAogIElOREVYIGlkeF9hbGVydF9wcm9wZXJ0eSAocHJvcGVydHlfaWQpCikgRU5HSU5FPUlubm9EQjsKCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHpvbmVzICgKICBpZCBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCiAgbmFtZSBWQVJDSEFSKDIwMCkgTk9UIE5VTEwsCiAgc2x1ZyBWQVJDSEFSKDIwMCkgTk9UIE5VTEwgQ09NTUVOVCAnU2x1ZyBwYXJhIFVSTHMgZGUgc2NyYXBlcnMgKHAuZWo6IGxsaXJpYSknLAogIGxhdCBERUNJTUFMKDEwLDcpIE5PVCBOVUxMLAogIGxuZyBERUNJTUFMKDEwLDcpIE5PVCBOVUxMLAogIHJhZGl1c19rbSBERUNJTUFMKDUsMikgREVGQVVMVCAxMCwKICBkaXN0YW5jZV9mcm9tX3ZhbGVuY2lhX2ttIERFQ0lNQUwoNiwyKSBOVUxMLAogIGNvdmVyYWdlX3NlZ21lbnQgVkFSQ0hBUig0MCkgTlVMTCwKICBjb3ZlcmFnZV9zY29wZSBWQVJDSEFSKDQwKSBOVUxMLAogIGFjdGl2ZSBUSU5ZSU5UKDEpIERFRkFVTFQgMSwKICBwaXNvc19zbHVnIFZBUkNIQVIoMjAwKSBDT01NRU5UICdTbHVnIGVzcGVjw61maWNvIHBhcmEgcGlzb3MuY29tJywKICB0aGlua3NwYWluX3NsdWcgVkFSQ0hBUigyMDApIE5VTEwgQ09NTUVOVCAnU2x1ZyBlc3BlY8OtZmljbyBwYXJhIFRoaW5rU3BhaW4gKE5VTEwgPSBubyB0aWVuZSBww6FnaW5hKScsCiAgZ2xvYmFsaXphX3NsdWcgVkFSQ0hBUigyMDApIE5VTEwgQ09NTUVOVCAnU2x1ZyBlc3BlY8OtZmljbyBwYXJhIEdsb2JhbGl6YSAoTlVMTCA9IHNpbiBww6FnaW5hIGVuIEdsb2JhbGl6YSknLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgVU5JUVVFIEtFWSB1cV96b25lc19zbHVnIChzbHVnKSwKICBJTkRFWCBpZHhfYWN0aXZlIChhY3RpdmUpCikgRU5HSU5FPUlubm9EQjsKCklOU0VSVCBJR05PUkUgSU5UTyB6b25lcyAobmFtZSwgc2x1ZywgbGF0LCBsbmcsIHJhZGl1c19rbSwgYWN0aXZlLCBwaXNvc19zbHVnLCB0aGlua3NwYWluX3NsdWcsIGdsb2JhbGl6YV9zbHVnKSBWQUxVRVMKICAoJ0xsw61yaWEnLCAgICAgICAgICAgICAgICdsbGlyaWEnLCAgICAgICAgICAgIDM5LjYyOTIsIC0wLjU5NzksIDEyLCAxLCAncGlzb3MtbGxpcmlhJywgICAgICAgICAgICAgICAgICAnbGxpcmlhJywgICAgICAgICAgICAgICdsbGlyaWEnKSwKICAoJ01hcmluZXMnLCAgICAgICAgICAgICAgJ21hcmluZXMnLCAgICAgICAgICAgMzkuNjczNiwgLTAuNTQ2OSwgIDgsIDEsICdwaXNvcy1tYXJpbmVzJywgICAgICAgICAgICAgICAgICdtYXJpbmVzJywgICAgICAgICAgICAgJ21hcmluZXMnKSwKICAoJ09sb2NhdScsICAgICAgICAgICAgICAgJ29sb2NhdScsICAgICAgICAgICAgMzkuNjk0OCwgLTAuNTIyNCwgIDgsIDEsICdwaXNvcy1vbG9jYXUnLCAgICAgICAgICAgICAgICAgICdvbG9jYXUnLCAgICAgICAgICAgICAgJ29sb2NhdScpLAogICgnTsOhcXVlcmEnLCAgICAgICAgICAgICAgJ25hcXVlcmEnLCAgICAgICAgICAgMzkuNjUwOSwgLTAuNDkxNywgIDgsIDEsICdwaXNvcy1uYXF1ZXJhJywgICAgICAgICAgICAgICAgICduYXF1ZXJhJywgICAgICAgICAgICAgJ25hcXVlcmEnKSwKICAoJ0LDqXRlcmEnLCAgICAgICAgICAgICAgICdiZXRlcmEnLCAgICAgICAgICAgIDM5LjU5NDUsIC0wLjQ2ODAsIDEwLCAxLCAncGlzb3MtYmV0ZXJhJywgICAgICAgICAgICAgICAgICAnYmV0ZXJhJywgICAgICAgICAgICAgICdiZXRlcmEnKSwKICAoJ1ZpbGxhbWFyY2hhbnRlJywgICAgICAgJ3ZpbGxhbWFyY2hhbnRlJywgICAgMzkuNTc2MywgLTAuNjI2MiwgIDgsIDEsICdwaXNvcy12aWxsYW1hcmNoYW50ZS12YWxlbmNpYScsICBOVUxMLCAgICAgICAgICAgICAgICAgICd2aWxhbWFyeGFudCcpLAogICgnQmVuYWd1YXNpbCcsICAgICAgICAgICAnYmVuYWd1YXNpbCcsICAgICAgICAzOS42MDMwLCAtMC41NzIwLCAgOCwgMSwgJ3Bpc29zLWJlbmFndWFzaWwnLCAgICAgICAgICAgICAgJ2JlbmFndWFzaWwnLCAgICAgICAgICAnYmVuYWd1YXNpbCcpLAogICgnTGEgUG9ibGEgZGUgVmFsbGJvbmEnLCAncG9ibGEtZGUtdmFsbGJvbmEnLCAzOS42MTI2LCAtMC41Mzk2LCAxMCwgMSwgJ3Bpc29zLXBvYmxhLWRlLXZhbGxib25hJywgICAgICAgJ2xhLXBvYmxhLWRlLXZhbGxib25hJywncG9ibGEtdmFsbGJvbmEnKSwKICAoJ0wnJ0VsaWFuYScsICAgICAgICAgICAgJ2VsaWFuYScsICAgICAgICAgICAgMzkuNTYyOSwgLTAuNDk3NSwgIDgsIDEsICdwaXNvcy1lbGlhbmEnLCAgICAgICAgICAgICAgICAgICdsLWVsaWFuYScsICAgICAgICAgICAgJ2wtZWxpYW5hJyksCiAgKCdSaWJhLXJvamEgZGVsIFTDunJpYScsICAncmliYS1yb2phJywgICAgICAgICAzOS41NDQ4LCAtMC41NTM2LCAxMCwgMSwgJ3Bpc29zLXJpYmEtcm9qYS1kZS10dXJpYScsICAgICAgJ3JpYmEtcm9qYS1kZS10dXJpYScsICAncmliYS1yb2phLXR1cmlhJyksCiAgKCdDaGVsdmEnLCAgICAgICAgICAgICAgICdjaGVsdmEnLCAgICAgICAgICAgIDM5Ljc1NTIsIC0xLjAwNTQsIDEwLCAxLCAncGlzb3MtY2hlbHZhJywgICAgICAgICAgICAgICAgICAnY2hlbHZhJywgICAgICAgICAgICAgICdjaGVsdmEnKSwKICAoJ0Nhc2lub3MnLCAgICAgICAgICAgICAgJ2Nhc2lub3MnLCAgICAgICAgICAgMzkuNzIwNywgLTAuNjc0OCwgIDgsIDEsICdwaXNvcy1jYXNpbm9zJywgICAgICAgICAgICAgICAgICdjYXNpbm9zJywgICAgICAgICAgICAgJ2Nhc2lub3MnKSwKICAoJ01vbmNvZmEnLCAgICAgICAgICAgICAgJ21vbmNvZmEnLCAgICAgICAgICAgMzkuODE4NCwgLTAuMTQ2OCwgIDgsIDEsICdwaXNvcy1tb25jb2ZhJywgICAgICAgICAgICAgICAgICdtb25jb2ZhJywgICAgICAgICAgICAgJ21vbmNvZmEnKSwKICAoJ0xhIFZhbGwgZCcnVWl4w7MnLCAgICAgJ2xhLXZhbGwtZHVpeG8nLCAgICAgMzkuODQ3NywgLTAuMjI1NSwgMTAsIDEsICdwaXNvcy1sYS12YWxsLWR1aXhvJywgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgICAgTlVMTCksCiAgKCdWYWxlbmNpYScsICAgICAgICAgICAgICd2YWxlbmNpYScsICAgICAgICAgIDM5LjQ2OTksIC0wLjM3NjMsIDE1LCAxLCAncGlzb3MtdmFsZW5jaWEnLCAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICd2YWxlbmNpYScpOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcG9ydGFscyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIG5hbWUgVkFSQ0hBUigxMDApIE5PVCBOVUxMLAogIHNsdWcgVkFSQ0hBUigxMDApIE5PVCBOVUxMIFVOSVFVRSwKICBzY3JhcGVyX2NsYXNzIFZBUkNIQVIoMTAwKSBOT1QgTlVMTCBDT01NRU5UICdOb21icmUgZXhhY3RvIGRlIGxhIGNsYXNlIHNjcmFwZXIgZW4gVHlwZVNjcmlwdCcsCiAgYWN0aXZlIFRJTllJTlQoMSkgREVGQVVMVCAxLAogIGNyZWF0ZWRfYXQgVElNRVNUQU1QIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCiAgSU5ERVggaWR4X2FjdGl2ZSAoYWN0aXZlKQopIEVOR0lORT1Jbm5vREI7CgpJTlNFUlQgSUdOT1JFIElOVE8gcG9ydGFscyAobmFtZSwgc2x1Zywgc2NyYXBlcl9jbGFzcywgYWN0aXZlKSBWQUxVRVMKICAoJ0ZvdG9jYXNhJywgICAgICAgICdmb3RvY2FzYScsICAgICAgICdGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyJywgIDEpLAogICgnSGFiaXRhY2xpYScsICAgICAgJ2hhYml0YWNsaWEnLCAgICAgJ0hhYml0YWNsaWFTY3JhcGVyJywgICAgICAgICAgMSksCiAgKCdQaXNvcy5jb20nLCAgICAgICAncGlzb3MtY29tJywgICAgICAnUGlzb3NTY3JhcGVyJywgICAgICAgICAgICAgICAxKSwKICAoJ1RoaW5rU3BhaW4nLCAgICAgICd0aGlua3NwYWluJywgICAgICdUaGlua1NwYWluU2NyYXBlcicsICAgICAgICAgIDEpLAogICgnR2xvYmFsaXphJywgICAgICAgJ2dsb2JhbGl6YScsICAgICAgJ0dsb2JhbGl6YVNjcmFwZXInLCAgICAgICAgICAgMSksCiAgKCdJZGVhbGlzdGEnLCAgICAgICAnaWRlYWxpc3RhJywgICAgICAnSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXInLCAxKSwKICAoJ0t5ZXJvJywgICAgICAgICAgICdreWVybycsICAgICAgICAgICdLeWVyb1NjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnTWlsYW51bmNpb3MnLCAgICAgJ21pbGFudW5jaW9zJywgICAgJ01pbGFudW5jaW9zU2NyYXBlcicsICAgICAgICAgIDApLAogICgnWWFlbmNvbnRyZScsICAgICAgJ3lhZW5jb250cmUnLCAgICAgJ1lhZW5jb250cmVTY3JhcGVyJywgICAgICAgICAgMCksCiAgKCdDYXNhc2FwbycsICAgICAgICAnY2FzYXNhcG8nLCAgICAgICAnQ2FzYXNhcG9TY3JhcGVyJywgICAgICAgICAgICAwKSwKICAoJ1ZpYmJvJywgICAgICAgICAgICd2aWJibycsICAgICAgICAgICdWaWJib1NjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnTnVyb2EnLCAgICAgICAgICAgJ251cm9hJywgICAgICAgICAgJ051cm9hU2NyYXBlcicsICAgICAgICAgICAgICAgMCksCiAgKCdFbmdlbCAmIFbDtmxrZXJzJywgJ2VuZ2Vsdm9sa2VycycsICAgJ0VuZ2VsVm9sa2Vyc1NjcmFwZXInLCAgICAgICAgMCksCiAgKCdUZWNub2Nhc2EnLCAgICAgICAndGVjbm9jYXNhJywgICAgICAnVGVjbm9jYXNhU2NyYXBlcicsICAgICAgICAgICAwKSwKICAoJ0VSQSBTcGFpbicsICAgICAgICdlcmEtc3BhaW4nLCAgICAgICdFcmFTcGFpblNjcmFwZXInLCAgICAgICAgICAgIDApLAogICgnUkVNQVggRXNwYcOxYScsICAgICdyZW1heCcsICAgICAgICAgICdSZW1heFNjcmFwZXInLCAgICAgICAgICAgICAgIDApLAogICgnSW5tb2JpbGlhcmlhLmVzJywgJ2lubW9iaWxpYXJpYScsICAgJ0lubW9iaWxpYXJpYVNjcmFwZXInLCAgICAgICAgMCksCiAgKCdTcGFpbkhvdXNlcycsICAgICAnc3BhaW5ob3VzZXMnLCAgICAnU3BhaW5Ib3VzZXNTY3JhcGVyJywgICAgICAgICAwKSwKICAoJ0hvbHByb3AnLCAgICAgICAgICdob2xwcm9wJywgICAgICAgICdIb2xwcm9wU2NyYXBlcicsICAgICAgICAgICAgIDApLAogICgnVHJvdml0JywgICAgICAgICAgJ3Ryb3ZpdCcsICAgICAgICAgJ1Ryb3ZhdFNjcmFwZXInLCAgICAgICAgICAgICAgMCk7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBzY3JhcGluZ19wb3J0YWxfcnVucyAoCiAgaWQgQklHSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIHBvcnRhbCBWQVJDSEFSKDEwMCkgTk9UIE5VTEwsCiAgc2NyYXBlcl9jbGFzcyBWQVJDSEFSKDEyMCkgTk9UIE5VTEwsCiAgb3BlcmF0aW9uX3R5cGUgRU5VTSgnc2FsZScsJ3JlbnQnKSBOT1QgTlVMTCwKICB0cmlnZ2VyX21vZGUgRU5VTSgnbWFudWFsJywnc2NoZWR1bGVkJykgTk9UIE5VTEwsCiAgem9uZV9zY29wZSBWQVJDSEFSKDIwMCkgTlVMTCwKICBzdGF0dXMgVkFSQ0hBUigyMCkgTk9UIE5VTEwgREVGQVVMVCAncnVubmluZycsCiAgdG90YWxfZm91bmQgSU5UIE5PVCBOVUxMIERFRkFVTFQgMCwKICBuZXdfc2F2ZWQgSU5UIE5PVCBOVUxMIERFRkFVTFQgMCwKICBwYXJ0aWFsX2NvdmVyYWdlIFRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAwLAogIGVycm9yIFRFWFQgTlVMTCwKICBzdGFydGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogIGZpbmlzaGVkX2F0IFRJTUVTVEFNUCBOVUxMLAogIElOREVYIGlkeF9wb3J0YWxfb3BlcmF0aW9uX3N0YXJ0ZWQgKHBvcnRhbCwgb3BlcmF0aW9uX3R5cGUsIHN0YXJ0ZWRfYXQpLAogIElOREVYIGlkeF9zdGF0dXNfc3RhcnRlZCAoc3RhdHVzLCBzdGFydGVkX2F0KQopIEVOR0lORT1Jbm5vREI7CgpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBtdW5pY2lwYWxpdGllc19lcyAoCiAgaWQgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAogIG5hbWUgVkFSQ0hBUigyMDApIE5PVCBOVUxMLAogIGFzY2lpX25hbWUgVkFSQ0hBUigyMDApLAogIHByb3ZpbmNlIFZBUkNIQVIoMjAwKSwKICBhdXRvbm9teSBWQVJDSEFSKDIwMCksCiAgbGF0IERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgbG5nIERFQ0lNQUwoMTAsNykgTk9UIE5VTEwsCiAgcG9wdWxhdGlvbiBJTlQgREVGQVVMVCAwLAogIHNvdXJjZSBWQVJDSEFSKDUwKSBERUZBVUxUICdnZW9uYW1lcycsCiAgY3JlYXRlZF9hdCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICBVTklRVUUgS0VZIHVrX2FzY2lpX2F1dG9ub215IChhc2NpaV9uYW1lKDEwMCksIGF1dG9ub215KDEwMCkpLAogIElOREVYIGlkeF9uYW1lIChuYW1lKSwKICBJTkRFWCBpZHhfYXNjaWlfbmFtZSAoYXNjaWlfbmFtZSkKKSBFTkdJTkU9SW5ub0RCOwoKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgdmFsZW5jaWFfZGlzdHJpY3Rfc2x1Z3MgKAogIGlkIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKICBuYW1lIFZBUkNIQVIoMTIwKSBOT1QgTlVMTCBVTklRVUUsCiAgaWRlYWxpc3RhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIGZvdG9jYXNhX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIHBpc29zX3NsdWcgVkFSQ0hBUigxNjApIE5PVCBOVUxMLAogIGFjdGl2ZSBUSU5ZSU5UKDEpIERFRkFVTFQgMSwKICBzb3J0X29yZGVyIElOVCBERUZBVUxUIDk5OSwKICBjcmVhdGVkX2F0IFRJTUVTVEFNUCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QCikgRU5HSU5FPUlubm9EQjsKCklOU0VSVCBJR05PUkUgSU5UTyB2YWxlbmNpYV9kaXN0cmljdF9zbHVncyAobmFtZSwgaWRlYWxpc3RhX3NsdWcsIGZvdG9jYXNhX3NsdWcsIHBpc29zX3NsdWcsIGFjdGl2ZSwgc29ydF9vcmRlcikgVkFMVUVTCiAgKCdDaXV0YXQgVmVsbGEnLCAnY2l1dGF0LXZlbGxhJywgJ2NpdXRhdC12ZWxsYScsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2NpdXRhdF92ZWxsYScsIDEsIDEwKSwKICAoJ0VpeGFtcGxlJywgJ2wtZWl4YW1wbGUnLCAnZWl4YW1wbGUnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9laXhhbXBsZScsIDEsIDIwKSwKICAoJ0V4dHJhbXVycycsICdleHRyYW11cnMnLCAnZXh0cmFtdXJzJywgJ3Bpc29zLWV4dHJhbXVycycsIDEsIDMwKSwKICAoJ0NhbXBhbmFyJywgJ2NhbXBhbmFyJywgJ2NhbXBhbmFyJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfY2FtcGFuYXInLCAxLCA0MCksCiAgKCdMYSBTYcOvZGlhJywgJ2xhLXNhaWRpYScsICdsYS1zYWlkaWEnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9sYV9zYWlkaWEnLCAxLCA1MCksCiAgKCdFbCBQbGEgZGVsIFJlYWwnLCAnZWwtcGxhLWRlbC1yZWFsJywgJ2VsLXBsYS1kZWwtcmVhbCcsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2VsX3BsYV9kZWxfcmVhbCcsIDEsIDYwKSwKICAoJ0wnJ09saXZlcmV0YScsICdsLW9saXZlcmV0YScsICdsLW9saXZlcmV0YScsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2xfb2xpdmVyZXRhJywgMSwgNzApLAogICgnUGF0cmFpeCcsICdwYXRyYWl4JywgJ3BhdHJhaXgnLCAncGlzb3MtcGF0cmFpeCcsIDEsIDgwKSwKICAoJ0plc8O6cycsICdqZXN1cycsICdqZXN1cycsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2plc3VzJywgMSwgOTApLAogICgnUXVhdHJlIENhcnJlcmVzJywgJ3F1YXRyZS1jYXJyZXJlcycsICdxdWF0cmUtY2FycmVyZXMnLCAncGlzb3MtcXVhdHJlX2NhcnJlcmVzJywgMSwgMTAwKSwKICAoJ1BvYmxhdHMgTWFyaXRpbXMnLCAncG9ibGF0cy1tYXJpdGltcycsICdwb2JsYXRzLW1hcml0aW1zJywgJ3Bpc29zLXBvYmxhdHNfbWFyaXRpbXMnLCAxLCAxMTApLAogICgnQ2FtaW5zIGFsIEdyYXUnLCAnY2FtaW5zLWFsLWdyYXUnLCAnY2FtaW5zLWFsLWdyYXUnLCAncGlzb3MtY2FtaW5zX2FsX2dyYXUnLCAxLCAxMjApLAogICgnQWxnaXLDs3MnLCAnYWxnaXJvcycsICdhbGdpcm9zJywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfYWxnaXJvcycsIDEsIDEzMCksCiAgKCdCZW5pbWFjbGV0JywgJ2JlbmltYWNsZXQnLCAnYmVuaW1hY2xldCcsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX2JlbmltYWNsZXQnLCAxLCAxNDApLAogICgnUmFzY2FueWEnLCAncmFzY2FueWEnLCAncmFzY2FueWEnLCAncGlzb3MtcmFzY2FueWEnLCAxLCAxNTApLAogICgnQmVuaWNhbGFwJywgJ2JlbmljYWxhcCcsICdiZW5pY2FsYXAnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9iZW5pY2FsYXAnLCAxLCAxNjApLAogICgnUG9ibGVzIGRlbCBOb3JkJywgJ3BvYmxlcy1kZWwtbm9yZCcsICdwb2JsZXMtZGVsLW5vcmQnLCAncGlzb3MtdmFsZW5jaWFfY2FwaXRhbF9wb2JsZXNfZGVsX25vcmQnLCAxLCAxNzApLAogICgnUG9ibGVzIGRlIGwnJ09lc3QnLCAncG9ibGVzLWRlLWwtb2VzdCcsICdwb2JsZXMtZGUtbC1vZXN0JywgJ3Bpc29zLXZhbGVuY2lhX2NhcGl0YWxfcG9ibGVzX2RlX2xfb2VzdCcsIDEsIDE4MCksCiAgKCdQb2JsZXMgZGVsIFN1ZCcsICdwb2JsZXMtZGVsLXN1ZCcsICdwb2JsZXMtZGVsLXN1ZCcsICdwaXNvcy12YWxlbmNpYV9jYXBpdGFsX3BvYmxlc19kZWxfc3VkJywgMSwgMTkwKTsKYDsKCmFzeW5jIGZ1bmN0aW9uIGluaXREYigpIHsKICBjb25zdCBjb25uZWN0aW9uID0gYXdhaXQgbXlzcWwuY3JlYXRlQ29ubmVjdGlvbih7CiAgICBob3N0OiBwcm9jZXNzLmVudi5EQl9IT1NUIHx8ICJsb2NhbGhvc3QiLAogICAgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LkRCX1BPUlQpIHx8IDMzMDYsCiAgICB1c2VyOiBwcm9jZXNzLmVudi5EQl9VU0VSIHx8ICJyb290IiwKICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5EQl9QQVNTV09SRCB8fCAiIiwKICAgIG11bHRpcGxlU3RhdGVtZW50czogdHJ1ZSwKICB9KTsKCiAgdHJ5IHsKICAgIGNvbnN0IHN0YXRlbWVudHMgPSBTUUwuc3BsaXQoIjsiKS5maWx0ZXIoKHMpID0+IHMudHJpbSgpLmxlbmd0aCA+IDApOwogICAgZm9yIChjb25zdCBzIG9mIHN0YXRlbWVudHMpIHsKICAgICAgYXdhaXQgY29ubmVjdGlvbi5xdWVyeShzICsgIjsiKTsKICAgIH0KICAgIGNvbnNvbGUubG9nKCJCYXNlIGRlIGRhdG9zIGluaWNpYWxpemFkYSBjb3JyZWN0YW1lbnRlLiIpOwogIH0gZmluYWxseSB7CiAgICBhd2FpdCBjb25uZWN0aW9uLmVuZCgpOwogIH0KfQoKaW5pdERiKCkuY2F0Y2goY29uc29sZS5lcnJvcik7Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\controllers\\analyticsController.ts","beforeExisted":true,"beforeHash":"700f794660ff65535f358d223ded8167d74ea72aea8e62b1cf642bae6e5ad5cb","beforeContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsNCmltcG9ydCBQcm9wZXJ0eVNlcnZpY2UgZnJvbSAiLi4vc2VydmljZXMvcHJvcGVydHlTZXJ2aWNlIjsNCmltcG9ydCB7IFByb3BlcnR5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJvcGVydHlNb2RlbCI7DQppbXBvcnQgeyBTY29yaW5nU2VydmljZSB9IGZyb20gIi4uL3NlcnZpY2VzL3Njb3JpbmdTZXJ2aWNlIjsNCmltcG9ydCB7IERlZHVwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvZGVkdXBsaWNhdGlvblNlcnZpY2UiOw0KaW1wb3J0IEV4Y2VsSlMgZnJvbSAiZXhjZWxqcyI7DQoNCmNvbnN0IHNjb3JpbmdTZXJ2aWNlID0gbmV3IFNjb3JpbmdTZXJ2aWNlKCk7DQpjb25zdCBkZWR1cGxpY2F0aW9uU2VydmljZSA9IG5ldyBEZWR1cGxpY2F0aW9uU2VydmljZSgpOw0KDQpleHBvcnQgY29uc3QgQW5hbHl0aWNzQ29udHJvbGxlciA9IHsNCiAgICAvKiogR0VUIC9kYXNoYm9hcmQvYW5hbHl0aWNzIOKAlCBQw6FnaW5hIHByaW5jaXBhbCBhbmFseXRpY3MgKi8NCiAgICBhc3luYyBwYWdlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgYW5hbHl0aWNzID0gYXdhaXQgUHJvcGVydHlTZXJ2aWNlLmdldEFuYWx5dGljcygpOw0KICAgICAgICAgICAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2FuYWx5dGljcyIsIHsNCiAgICAgICAgICAgICAgICB0aXRsZTogIkFuYWx5dGljcyIsDQogICAgICAgICAgICAgICAgYW5hbHl0aWNzLA0KICAgICAgICAgICAgICAgIHVzZXI6IChyZXEgYXMgYW55KS51c2VyLA0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICBjb25zb2xlLmVycm9yKCJFcnJvciBhbmFseXRpY3MgcGFnZToiLCBlcnJvcik7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkucmVuZGVyKCJlcnJvciIsIHsgbWVzc2FnZTogIkVycm9yIGNhcmdhbmRvIGFuYWx5dGljcyIsIHVzZXI6IChyZXEgYXMgYW55KS51c2VyIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIC8qKiBHRVQgL2FwaS9hbmFseXRpY3Mg4oCUIERhdG9zIEpTT04gcGFyYSBBamF4ICovDQogICAgYXN5bmMgZGF0YShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IGFuYWx5dGljcyA9IGF3YWl0IFByb3BlcnR5U2VydmljZS5nZXRBbmFseXRpY3MoKTsNCiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgLi4uYW5hbHl0aWNzIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IChlcnJvciBhcyBFcnJvcikubWVzc2FnZSB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICAvKiogUE9TVCAvYXBpL2FuYWx5dGljcy9zY29yZSDigJQgUmUtY2FsY3VsYXIgdG9kb3MgbG9zIHNjb3JlcyAqLw0KICAgIGFzeW5jIHJ1blNjb3JpbmcocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBjb3VudCA9IGF3YWl0IHNjb3JpbmdTZXJ2aWNlLnNjb3JlQWxsKCk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjb3JlZDogY291bnQgfSk7DQogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIC8qKiBQT1NUIC9hcGkvYW5hbHl0aWNzL2RlZHVwIOKAlCBFamVjdXRhciBkZWR1cGxpY2FjacOzbiAqLw0KICAgIGFzeW5jIHJ1bkRlZHVwbGljYXRlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXdhaXQgZGVkdXBsaWNhdGlvblNlcnZpY2UucmVzZXREdXBsaWNhdGVzKCk7DQogICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5ydW5EZWR1cGxpY2F0aW9uKCk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIC4uLnJlc3VsdCB9KTsNCiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgLyoqIEdFVCAvYXBpL3Byb3BlcnRpZXMvZXhwb3J0L3hsc3gg4oCUIEV4cG9ydGFyIHByb3BpZWRhZGVzIGEgRXhjZWwgKi8NCiAgICBhc3luYyBleHBvcnRYbHN4KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEFsbCgpOw0KICAgICAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBuZXcgRXhjZWxKUy5Xb3JrYm9vaygpOw0KICAgICAgICAgICAgd29ya2Jvb2suY3JlYXRvciA9ICJDYXB0YWphIElubW9iaWxpYXJpYSI7DQogICAgICAgICAgICB3b3JrYm9vay5jcmVhdGVkID0gbmV3IERhdGUoKTsNCg0KICAgICAgICAgICAgY29uc3Qgc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoIlByb3BpZWRhZGVzIiwgew0KICAgICAgICAgICAgICAgIHBhZ2VTZXR1cDogeyBwYXBlclNpemU6IDksIG9yaWVudGF0aW9uOiAibGFuZHNjYXBlIiB9LA0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIC8vIENhYmVjZXJhcyBjb24gZXN0aWxvDQogICAgICAgICAgICBzaGVldC5jb2x1bW5zID0gWw0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiSUQiLCBrZXk6ICJpZCIsIHdpZHRoOiA4IH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJUw610dWxvIiwga2V5OiAidGl0bGUiLCB3aWR0aDogNDUgfSwNCiAgICAgICAgICAgICAgICB7IGhlYWRlcjogIlBvcnRhbCIsIGtleTogInNvdXJjZSIsIHdpZHRoOiAxNCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiVGlwbyIsIGtleTogInByb3BlcnR5X3R5cGUiLCB3aWR0aDogMTIgfSwNCiAgICAgICAgICAgICAgICB7IGhlYWRlcjogIk11bmljaXBpbyIsIGtleTogIm11bmljaXBhbGl0eSIsIHdpZHRoOiAxOCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiVWJpY2FjacOzbiIsIGtleTogImxvY2F0aW9uIiwgd2lkdGg6IDMwIH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJQcmVjaW8gKOKCrCkiLCBrZXk6ICJwcmljZSIsIHdpZHRoOiAxNCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAi4oKsL23CsiIsIGtleTogInByaWNlX3Blcl9tMiIsIHdpZHRoOiAxMCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiU2NvcmUiLCBrZXk6ICJzY29yZSIsIHdpZHRoOiA4IH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJIYWJpdGFjaW9uZXMiLCBrZXk6ICJyb29tcyIsIHdpZHRoOiAxNCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAibcKyIiwga2V5OiAic2l6ZV9tMiIsIHdpZHRoOiAxMCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiRHVwbGljYWRvIiwga2V5OiAiaXNfZHVwbGljYXRlIiwgd2lkdGg6IDEyIH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJVUkwiLCBrZXk6ICJ1cmwiLCB3aWR0aDogNTAgfSwNCiAgICAgICAgICAgICAgICB7IGhlYWRlcjogIkFjdHVhbGl6YWRvIiwga2V5OiAidXBkYXRlZF9hdCIsIHdpZHRoOiAxOCB9LA0KICAgICAgICAgICAgXTsNCg0KICAgICAgICAgICAgLy8gRXN0aWxvIGRlIGNhYmVjZXJhDQogICAgICAgICAgICBjb25zdCBoZWFkZXJSb3cgPSBzaGVldC5nZXRSb3coMSk7DQogICAgICAgICAgICBoZWFkZXJSb3cuZWFjaENlbGwoY2VsbCA9PiB7DQogICAgICAgICAgICAgICAgY2VsbC5maWxsID0geyB0eXBlOiAicGF0dGVybiIsIHBhdHRlcm46ICJzb2xpZCIsIGZnQ29sb3I6IHsgYXJnYjogIkZGMUY0OTdEIiB9IH07DQogICAgICAgICAgICAgICAgY2VsbC5mb250ID0geyBib2xkOiB0cnVlLCBjb2xvcjogeyBhcmdiOiAiRkZGRkZGRkYiIH0sIHNpemU6IDExIH07DQogICAgICAgICAgICAgICAgY2VsbC5hbGlnbm1lbnQgPSB7IHZlcnRpY2FsOiAibWlkZGxlIiwgaG9yaXpvbnRhbDogImNlbnRlciIgfTsNCiAgICAgICAgICAgICAgICBjZWxsLmJvcmRlciA9IHsNCiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiB7IHN0eWxlOiAibWVkaXVtIiwgY29sb3I6IHsgYXJnYjogIkZGMUY0OTdEIiB9IH0sDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgaGVhZGVyUm93LmhlaWdodCA9IDIyOw0KDQogICAgICAgICAgICAvLyBEYXRvcw0KICAgICAgICAgICAgZm9yIChjb25zdCBwIG9mIHByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICBjb25zdCByb3cgPSBzaGVldC5hZGRSb3coew0KICAgICAgICAgICAgICAgICAgICBpZDogcC5pZCwNCiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHAudGl0bGUsDQogICAgICAgICAgICAgICAgICAgIHNvdXJjZTogcC5zb3VyY2UsDQogICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X3R5cGU6IHAucHJvcGVydHlfdHlwZSwNCiAgICAgICAgICAgICAgICAgICAgbXVuaWNpcGFsaXR5OiBwLm11bmljaXBhbGl0eSwNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246IHAubG9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgIHByaWNlOiBwLnByaWNlLA0KICAgICAgICAgICAgICAgICAgICBwcmljZV9wZXJfbTI6IChwIGFzIGFueSkucHJpY2VfcGVyX20yIHx8ICIiLA0KICAgICAgICAgICAgICAgICAgICBzY29yZTogKHAgYXMgYW55KS5zY29yZSA/IE51bWJlcigocCBhcyBhbnkpLnNjb3JlKS50b0ZpeGVkKDEpIDogIiIsDQogICAgICAgICAgICAgICAgICAgIHJvb21zOiBwLnJvb21zIHx8ICIiLA0KICAgICAgICAgICAgICAgICAgICBzaXplX20yOiBwLnNpemVfbTIgfHwgIiIsDQogICAgICAgICAgICAgICAgICAgIGlzX2R1cGxpY2F0ZTogKHAgYXMgYW55KS5pc19kdXBsaWNhdGUgPyAiU8OtIiA6ICJObyIsDQogICAgICAgICAgICAgICAgICAgIHVybDogcC51cmwsDQogICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IHAudXBkYXRlZF9hdA0KICAgICAgICAgICAgICAgICAgICAgICAgPyBuZXcgRGF0ZShwLnVwZGF0ZWRfYXQpLnRvTG9jYWxlRGF0ZVN0cmluZygiZXMtRVMiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgOiAiIiwNCiAgICAgICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgICAgIC8vIEZvcm1hdG8gZGUgcHJlY2lvDQogICAgICAgICAgICAgICAgcm93LmdldENlbGwoInByaWNlIikubnVtRm10ID0gJyMsIyMwICLigqwiJzsNCiAgICAgICAgICAgICAgICByb3cuZ2V0Q2VsbCgicHJpY2VfcGVyX20yIikubnVtRm10ID0gJyMsIyMwICLigqwiJzsNCg0KICAgICAgICAgICAgICAgIC8vIENvbG9yIHNjb3JlDQogICAgICAgICAgICAgICAgY29uc3Qgc2NvcmVWYWwgPSAocCBhcyBhbnkpLnNjb3JlID8gTnVtYmVyKChwIGFzIGFueSkuc2NvcmUpIDogMDsNCiAgICAgICAgICAgICAgICBjb25zdCBzY29yZUNlbGwgPSByb3cuZ2V0Q2VsbCgic2NvcmUiKTsNCiAgICAgICAgICAgICAgICBpZiAoc2NvcmVWYWwgPj0gNykgew0KICAgICAgICAgICAgICAgICAgICBzY29yZUNlbGwuZmlsbCA9IHsgdHlwZTogInBhdHRlcm4iLCBwYXR0ZXJuOiAic29saWQiLCBmZ0NvbG9yOiB7IGFyZ2I6ICJGRjcwQUQ0NyIgfSB9Ow0KICAgICAgICAgICAgICAgICAgICBzY29yZUNlbGwuZm9udCA9IHsgY29sb3I6IHsgYXJnYjogIkZGRkZGRkZGIiB9IH07DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzY29yZVZhbCA+PSA1KSB7DQogICAgICAgICAgICAgICAgICAgIHNjb3JlQ2VsbC5maWxsID0geyB0eXBlOiAicGF0dGVybiIsIHBhdHRlcm46ICJzb2xpZCIsIGZnQ29sb3I6IHsgYXJnYjogIkZGRkZDMDAwIiB9IH07DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzY29yZVZhbCA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgc2NvcmVDZWxsLmZpbGwgPSB7IHR5cGU6ICJwYXR0ZXJuIiwgcGF0dGVybjogInNvbGlkIiwgZmdDb2xvcjogeyBhcmdiOiAiRkZGRjAwMDAiIH0gfTsNCiAgICAgICAgICAgICAgICAgICAgc2NvcmVDZWxsLmZvbnQgPSB7IGNvbG9yOiB7IGFyZ2I6ICJGRkZGRkZGRiIgfSB9Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIFVSTCBjb21vIGhpcGVydsOtbmN1bG8NCiAgICAgICAgICAgICAgICBpZiAocC51cmwpIHsNCiAgICAgICAgICAgICAgICAgICAgcm93LmdldENlbGwoInVybCIpLnZhbHVlID0geyB0ZXh0OiAiVmVyIGFudW5jaW8iLCBoeXBlcmxpbms6IHAudXJsIH07DQogICAgICAgICAgICAgICAgICAgIHJvdy5nZXRDZWxsKCJ1cmwiKS5mb250ID0geyBjb2xvcjogeyBhcmdiOiAiRkYwNTYzQzEiIH0sIHVuZGVybGluZTogdHJ1ZSB9Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIEZpbGFzIGFsdGVybmFzDQogICAgICAgICAgICAgICAgaWYgKHJvdy5udW1iZXIgJSAyID09PSAwKSB7DQogICAgICAgICAgICAgICAgICAgIHJvdy5lYWNoQ2VsbCh7IGluY2x1ZGVFbXB0eTogZmFsc2UgfSwgY2VsbCA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNlbGwuZmlsbCB8fCAoY2VsbC5maWxsIGFzIGFueSkuZmdDb2xvcj8uYXJnYiA9PT0gIkZGRkZGRkZGIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuZmlsbCA9IHsgdHlwZTogInBhdHRlcm4iLCBwYXR0ZXJuOiAic29saWQiLCBmZ0NvbG9yOiB7IGFyZ2I6ICJGRkYyRjJGMiIgfSB9Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEF1dG8tZmlsdHJvDQogICAgICAgICAgICBzaGVldC5hdXRvRmlsdGVyID0gew0KICAgICAgICAgICAgICAgIGZyb206ICJBMSIsDQogICAgICAgICAgICAgICAgdG86IGAke1N0cmluZy5mcm9tQ2hhckNvZGUoNjQgKyBzaGVldC5jb2x1bW5zLmxlbmd0aCl9MWAsDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAvLyBDb25nZWxhciBmaWxhIGNhYmVjZXJhDQogICAgICAgICAgICBzaGVldC52aWV3cyA9IFt7IHN0YXRlOiAiZnJvemVuIiwgeFNwbGl0OiAwLCB5U3BsaXQ6IDEgfV07DQoNCiAgICAgICAgICAgIC8vIEVudmlhcg0KICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBgcHJvcGllZGFkZXNfbGxpcmlhXyR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKX0ueGxzeGA7DQogICAgICAgICAgICByZXMuc2V0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiKTsNCiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb24iLCBgYXR0YWNobWVudDsgZmlsZW5hbWU9IiR7ZmlsZW5hbWV9ImApOw0KICAgICAgICAgICAgYXdhaXQgd29ya2Jvb2sueGxzeC53cml0ZShyZXMpOw0KICAgICAgICAgICAgcmVzLmVuZCgpOw0KICAgICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICAgICAgY29uc29sZS5lcnJvcigiRXJyb3IgZXhwb3J0YW5kbyBFeGNlbDoiLCBlcnJvcik7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlIH0pOw0KICAgICAgICB9DQogICAgfSwNCn07DQo=","afterExisted":true,"afterHash":"90a3ef3eccae1d3f840a4ab8128a6377ef29f02a949c0c5112c6ae8be74cd899","afterContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsNCmltcG9ydCBQcm9wZXJ0eVNlcnZpY2UgZnJvbSAiLi4vc2VydmljZXMvcHJvcGVydHlTZXJ2aWNlIjsNCmltcG9ydCB7IFByb3BlcnR5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJvcGVydHlNb2RlbCI7DQppbXBvcnQgeyBTY29yaW5nU2VydmljZSB9IGZyb20gIi4uL3NlcnZpY2VzL3Njb3JpbmdTZXJ2aWNlIjsNCmltcG9ydCB7IERlZHVwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvZGVkdXBsaWNhdGlvblNlcnZpY2UiOw0KaW1wb3J0IEV4Y2VsSlMgZnJvbSAiZXhjZWxqcyI7DQoNCmNvbnN0IHNjb3JpbmdTZXJ2aWNlID0gbmV3IFNjb3JpbmdTZXJ2aWNlKCk7DQpjb25zdCBkZWR1cGxpY2F0aW9uU2VydmljZSA9IG5ldyBEZWR1cGxpY2F0aW9uU2VydmljZSgpOw0KDQpleHBvcnQgY29uc3QgQW5hbHl0aWNzQ29udHJvbGxlciA9IHsNCiAgICAvKiogR0VUIC9kYXNoYm9hcmQvYW5hbHl0aWNzIOKAlCBQw6FnaW5hIHByaW5jaXBhbCBhbmFseXRpY3MgKi8NCiAgICBhc3luYyBwYWdlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgYW5hbHl0aWNzID0gYXdhaXQgUHJvcGVydHlTZXJ2aWNlLmdldEFuYWx5dGljcygpOw0KICAgICAgICAgICAgcmVzLnJlbmRlcigiZGFzaGJvYXJkL2FuYWx5dGljcyIsIHsNCiAgICAgICAgICAgICAgICB0aXRsZTogIkFuYWx5dGljcyIsDQogICAgICAgICAgICAgICAgYW5hbHl0aWNzLA0KICAgICAgICAgICAgICAgIHVzZXI6IChyZXEgYXMgYW55KS51c2VyLA0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICBjb25zb2xlLmVycm9yKCJFcnJvciBhbmFseXRpY3MgcGFnZToiLCBlcnJvcik7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkucmVuZGVyKCJlcnJvciIsIHsgbWVzc2FnZTogIkVycm9yIGNhcmdhbmRvIGFuYWx5dGljcyIsIHVzZXI6IChyZXEgYXMgYW55KS51c2VyIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIC8qKiBHRVQgL2FwaS9hbmFseXRpY3Mg4oCUIERhdG9zIEpTT04gcGFyYSBBamF4ICovDQogICAgYXN5bmMgZGF0YShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IGFuYWx5dGljcyA9IGF3YWl0IFByb3BlcnR5U2VydmljZS5nZXRBbmFseXRpY3MoKTsNCiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgLi4uYW5hbHl0aWNzIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IChlcnJvciBhcyBFcnJvcikubWVzc2FnZSB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICAvKiogUE9TVCAvYXBpL2FuYWx5dGljcy9zY29yZSDigJQgUmUtY2FsY3VsYXIgdG9kb3MgbG9zIHNjb3JlcyAqLw0KICAgIGFzeW5jIHJ1blNjb3JpbmcocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBjb3VudCA9IGF3YWl0IHNjb3JpbmdTZXJ2aWNlLnNjb3JlQWxsKCk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjb3JlZDogY291bnQgfSk7DQogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIC8qKiBQT1NUIC9hcGkvYW5hbHl0aWNzL2RlZHVwIOKAlCBFamVjdXRhciBkZWR1cGxpY2FjacOzbiAqLw0KICAgIGFzeW5jIHJ1bkRlZHVwbGljYXRlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXdhaXQgZGVkdXBsaWNhdGlvblNlcnZpY2UucmVzZXREdXBsaWNhdGVzKCk7DQogICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5ydW5EZWR1cGxpY2F0aW9uKCk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIC4uLnJlc3VsdCB9KTsNCiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgLyoqIEdFVCAvYXBpL3Byb3BlcnRpZXMvZXhwb3J0L3hsc3gg4oCUIEV4cG9ydGFyIHByb3BpZWRhZGVzIGEgRXhjZWwgKi8NCiAgICBhc3luYyBleHBvcnRYbHN4KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEFsbCgpOw0KICAgICAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBuZXcgRXhjZWxKUy5Xb3JrYm9vaygpOw0KICAgICAgICAgICAgd29ya2Jvb2suY3JlYXRvciA9ICJDYXB0YWphIElubW9iaWxpYXJpYSI7DQogICAgICAgICAgICB3b3JrYm9vay5jcmVhdGVkID0gbmV3IERhdGUoKTsNCg0KICAgICAgICAgICAgY29uc3Qgc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoIlByb3BpZWRhZGVzIiwgew0KICAgICAgICAgICAgICAgIHBhZ2VTZXR1cDogeyBwYXBlclNpemU6IDksIG9yaWVudGF0aW9uOiAibGFuZHNjYXBlIiB9LA0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIC8vIENhYmVjZXJhcyBjb24gZXN0aWxvDQogICAgICAgICAgICBzaGVldC5jb2x1bW5zID0gWw0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiSUQiLCBrZXk6ICJpZCIsIHdpZHRoOiA4IH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJUw610dWxvIiwga2V5OiAidGl0bGUiLCB3aWR0aDogNDUgfSwNCiAgICAgICAgICAgICAgICB7IGhlYWRlcjogIlBvcnRhbCIsIGtleTogInNvdXJjZSIsIHdpZHRoOiAxNCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiVGlwbyIsIGtleTogInByb3BlcnR5X3R5cGUiLCB3aWR0aDogMTIgfSwNCiAgICAgICAgICAgICAgICB7IGhlYWRlcjogIk11bmljaXBpbyIsIGtleTogIm11bmljaXBhbGl0eSIsIHdpZHRoOiAxOCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiVWJpY2FjacOzbiIsIGtleTogImxvY2F0aW9uIiwgd2lkdGg6IDMwIH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJQcmVjaW8gKOKCrCkiLCBrZXk6ICJwcmljZSIsIHdpZHRoOiAxNCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAi4oKsL23CsiIsIGtleTogInByaWNlX3Blcl9tMiIsIHdpZHRoOiAxMCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiU2NvcmUiLCBrZXk6ICJzY29yZSIsIHdpZHRoOiA4IH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJIYWJpdGFjaW9uZXMiLCBrZXk6ICJyb29tcyIsIHdpZHRoOiAxNCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAibcKyIiwga2V5OiAic2l6ZV9tMiIsIHdpZHRoOiAxMCB9LA0KICAgICAgICAgICAgICAgIHsgaGVhZGVyOiAiRHVwbGljYWRvIiwga2V5OiAiaXNfZHVwbGljYXRlIiwgd2lkdGg6IDEyIH0sDQogICAgICAgICAgICAgICAgeyBoZWFkZXI6ICJVUkwiLCBrZXk6ICJ1cmwiLCB3aWR0aDogNTAgfSwNCiAgICAgICAgICAgICAgICB7IGhlYWRlcjogIkFjdHVhbGl6YWRvIiwga2V5OiAidXBkYXRlZF9hdCIsIHdpZHRoOiAxOCB9LA0KICAgICAgICAgICAgXTsNCg0KICAgICAgICAgICAgLy8gRXN0aWxvIGRlIGNhYmVjZXJhDQogICAgICAgICAgICBjb25zdCBoZWFkZXJSb3cgPSBzaGVldC5nZXRSb3coMSk7DQogICAgICAgICAgICBoZWFkZXJSb3cuZWFjaENlbGwoY2VsbCA9PiB7DQogICAgICAgICAgICAgICAgY2VsbC5maWxsID0geyB0eXBlOiAicGF0dGVybiIsIHBhdHRlcm46ICJzb2xpZCIsIGZnQ29sb3I6IHsgYXJnYjogIkZGMUY0OTdEIiB9IH07DQogICAgICAgICAgICAgICAgY2VsbC5mb250ID0geyBib2xkOiB0cnVlLCBjb2xvcjogeyBhcmdiOiAiRkZGRkZGRkYiIH0sIHNpemU6IDExIH07DQogICAgICAgICAgICAgICAgY2VsbC5hbGlnbm1lbnQgPSB7IHZlcnRpY2FsOiAibWlkZGxlIiwgaG9yaXpvbnRhbDogImNlbnRlciIgfTsNCiAgICAgICAgICAgICAgICBjZWxsLmJvcmRlciA9IHsNCiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiB7IHN0eWxlOiAibWVkaXVtIiwgY29sb3I6IHsgYXJnYjogIkZGMUY0OTdEIiB9IH0sDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgaGVhZGVyUm93LmhlaWdodCA9IDIyOw0KDQogICAgICAgICAgICAvLyBEYXRvcw0KICAgICAgICAgICAgZm9yIChjb25zdCBwIG9mIHByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICBjb25zdCByb3cgPSBzaGVldC5hZGRSb3coew0KICAgICAgICAgICAgICAgICAgICBpZDogcC5pZCwNCiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHAudGl0bGUsDQogICAgICAgICAgICAgICAgICAgIHNvdXJjZTogcC5zb3VyY2UsDQogICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X3R5cGU6IHAucHJvcGVydHlfdHlwZSwNCiAgICAgICAgICAgICAgICAgICAgbXVuaWNpcGFsaXR5OiBwLm11bmljaXBhbGl0eSwNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246IHAubG9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgIHByaWNlOiBwLnByaWNlLA0KICAgICAgICAgICAgICAgICAgICBwcmljZV9wZXJfbTI6IChwIGFzIGFueSkucHJpY2VfcGVyX20yIHx8ICIiLA0KICAgICAgICAgICAgICAgICAgICBzY29yZTogKHAgYXMgYW55KS5zY29yZSA/IE51bWJlcigocCBhcyBhbnkpLnNjb3JlKS50b0ZpeGVkKDEpIDogIiIsDQogICAgICAgICAgICAgICAgICAgIHJvb21zOiBwLnJvb21zIHx8ICIiLA0KICAgICAgICAgICAgICAgICAgICBzaXplX20yOiBwLnNpemVfbTIgfHwgIiIsDQogICAgICAgICAgICAgICAgICAgIGlzX2R1cGxpY2F0ZTogKHAgYXMgYW55KS5pc19kdXBsaWNhdGUgPyAiU8OtIiA6ICJObyIsDQogICAgICAgICAgICAgICAgICAgIHVybDogcC51cmwsDQogICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IChwLmxhc3Rfc2Vlbl9hdCB8fCBwLnVwZGF0ZWRfYXQpCiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUocC5sYXN0X3NlZW5fYXQgfHwgcC51cGRhdGVkX2F0ISkudG9Mb2NhbGVEYXRlU3RyaW5nKCJlcy1FUyIpCiAgICAgICAgICAgICAgICAgICAgICAgIDogIiIsDQogICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICAvLyBGb3JtYXRvIGRlIHByZWNpbw0KICAgICAgICAgICAgICAgIHJvdy5nZXRDZWxsKCJwcmljZSIpLm51bUZtdCA9ICcjLCMjMCAi4oKsIic7DQogICAgICAgICAgICAgICAgcm93LmdldENlbGwoInByaWNlX3Blcl9tMiIpLm51bUZtdCA9ICcjLCMjMCAi4oKsIic7DQoNCiAgICAgICAgICAgICAgICAvLyBDb2xvciBzY29yZQ0KICAgICAgICAgICAgICAgIGNvbnN0IHNjb3JlVmFsID0gKHAgYXMgYW55KS5zY29yZSA/IE51bWJlcigocCBhcyBhbnkpLnNjb3JlKSA6IDA7DQogICAgICAgICAgICAgICAgY29uc3Qgc2NvcmVDZWxsID0gcm93LmdldENlbGwoInNjb3JlIik7DQogICAgICAgICAgICAgICAgaWYgKHNjb3JlVmFsID49IDcpIHsNCiAgICAgICAgICAgICAgICAgICAgc2NvcmVDZWxsLmZpbGwgPSB7IHR5cGU6ICJwYXR0ZXJuIiwgcGF0dGVybjogInNvbGlkIiwgZmdDb2xvcjogeyBhcmdiOiAiRkY3MEFENDciIH0gfTsNCiAgICAgICAgICAgICAgICAgICAgc2NvcmVDZWxsLmZvbnQgPSB7IGNvbG9yOiB7IGFyZ2I6ICJGRkZGRkZGRiIgfSB9Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NvcmVWYWwgPj0gNSkgew0KICAgICAgICAgICAgICAgICAgICBzY29yZUNlbGwuZmlsbCA9IHsgdHlwZTogInBhdHRlcm4iLCBwYXR0ZXJuOiAic29saWQiLCBmZ0NvbG9yOiB7IGFyZ2I6ICJGRkZGQzAwMCIgfSB9Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NvcmVWYWwgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgIHNjb3JlQ2VsbC5maWxsID0geyB0eXBlOiAicGF0dGVybiIsIHBhdHRlcm46ICJzb2xpZCIsIGZnQ29sb3I6IHsgYXJnYjogIkZGRkYwMDAwIiB9IH07DQogICAgICAgICAgICAgICAgICAgIHNjb3JlQ2VsbC5mb250ID0geyBjb2xvcjogeyBhcmdiOiAiRkZGRkZGRkYiIH0gfTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBVUkwgY29tbyBoaXBlcnbDrW5jdWxvDQogICAgICAgICAgICAgICAgaWYgKHAudXJsKSB7DQogICAgICAgICAgICAgICAgICAgIHJvdy5nZXRDZWxsKCJ1cmwiKS52YWx1ZSA9IHsgdGV4dDogIlZlciBhbnVuY2lvIiwgaHlwZXJsaW5rOiBwLnVybCB9Ow0KICAgICAgICAgICAgICAgICAgICByb3cuZ2V0Q2VsbCgidXJsIikuZm9udCA9IHsgY29sb3I6IHsgYXJnYjogIkZGMDU2M0MxIiB9LCB1bmRlcmxpbmU6IHRydWUgfTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBGaWxhcyBhbHRlcm5hcw0KICAgICAgICAgICAgICAgIGlmIChyb3cubnVtYmVyICUgMiA9PT0gMCkgew0KICAgICAgICAgICAgICAgICAgICByb3cuZWFjaENlbGwoeyBpbmNsdWRlRW1wdHk6IGZhbHNlIH0sIGNlbGwgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjZWxsLmZpbGwgfHwgKGNlbGwuZmlsbCBhcyBhbnkpLmZnQ29sb3I/LmFyZ2IgPT09ICJGRkZGRkZGRiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmZpbGwgPSB7IHR5cGU6ICJwYXR0ZXJuIiwgcGF0dGVybjogInNvbGlkIiwgZmdDb2xvcjogeyBhcmdiOiAiRkZGMkYyRjIiIH0gfTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBBdXRvLWZpbHRybw0KICAgICAgICAgICAgc2hlZXQuYXV0b0ZpbHRlciA9IHsNCiAgICAgICAgICAgICAgICBmcm9tOiAiQTEiLA0KICAgICAgICAgICAgICAgIHRvOiBgJHtTdHJpbmcuZnJvbUNoYXJDb2RlKDY0ICsgc2hlZXQuY29sdW1ucy5sZW5ndGgpfTFgLA0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgLy8gQ29uZ2VsYXIgZmlsYSBjYWJlY2VyYQ0KICAgICAgICAgICAgc2hlZXQudmlld3MgPSBbeyBzdGF0ZTogImZyb3plbiIsIHhTcGxpdDogMCwgeVNwbGl0OiAxIH1dOw0KDQogICAgICAgICAgICAvLyBFbnZpYXINCiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gYHByb3BpZWRhZGVzX2xsaXJpYV8ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCl9Lnhsc3hgOw0KICAgICAgICAgICAgcmVzLnNldEhlYWRlcigiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Iik7DQogICAgICAgICAgICByZXMuc2V0SGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uIiwgYGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIke2ZpbGVuYW1lfSJgKTsNCiAgICAgICAgICAgIGF3YWl0IHdvcmtib29rLnhsc3gud3JpdGUocmVzKTsNCiAgICAgICAgICAgIHJlcy5lbmQoKTsNCiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkVycm9yIGV4cG9ydGFuZG8gRXhjZWw6IiwgZXJyb3IpOw0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IChlcnJvciBhcyBFcnJvcikubWVzc2FnZSB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQp9Ow0K","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\controllers\\authController.ts","beforeExisted":true,"beforeHash":"9aef76d20f3f3757165a8084768a2509875772f8df92850bd4b2452d37092be4","beforeContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3VzZXJNb2RlbCI7Cgpjb25zdCBTVEFUSUNfVVNFUiA9IHsgdXNlcm5hbWU6ICJHZW9yZ2UiLCBwYXNzd29yZDogIjQyMTMiIH07CmNvbnN0IEFETUlOX1VTRVIgPSB7CiAgdXNlcm5hbWU6IHByb2Nlc3MuZW52LkFETUlOX1VTRVJOQU1FIHx8ICJhZG1pbiIsCiAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LkFETUlOX1BBU1NXT1JEIHx8ICJBZG1pbjIwMjYhIiwKICByb2xlOiAiaWFfYWRtaW4iIGFzIGNvbnN0LAp9OwoKZXhwb3J0IGNvbnN0IGF1dGhDb250cm9sbGVyID0gewogIHNob3dMb2dpbjogKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IHZvaWQgPT4gewogICAgaWYgKChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJJZCkgewogICAgICBjb25zdCByb2xlID0gKHJlcS5zZXNzaW9uIGFzIGFueSkucm9sZTsKICAgICAgcmVzLnJlZGlyZWN0KHJvbGUgPT09ICJpYV9hZG1pbiIgPyAiL2Rhc2hib2FyZC9haS1hZG1pbiIgOiAiL2Rhc2hib2FyZCIpOwogICAgICByZXR1cm47CiAgICB9CiAgICByZXMucmVuZGVyKCJsb2dpbiIsIHsgZXJyb3I6IG51bGwgfSk7CiAgfSwKCiAgbG9naW46IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIGNvbnN0IHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0gPSByZXEuYm9keTsKICAgIHRyeSB7CiAgICAgIGlmICh1c2VybmFtZSA9PT0gQURNSU5fVVNFUi51c2VybmFtZSAmJiBwYXNzd29yZCA9PT0gQURNSU5fVVNFUi5wYXNzd29yZCkgewogICAgICAgIChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJJZCA9IDkwMDE7CiAgICAgICAgKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgPSBBRE1JTl9VU0VSLnVzZXJuYW1lOwogICAgICAgIChyZXEuc2Vzc2lvbiBhcyBhbnkpLnJvbGUgPSBBRE1JTl9VU0VSLnJvbGU7CiAgICAgICAgcmVzLnJlZGlyZWN0KCIvZGFzaGJvYXJkL2FpLWFkbWluIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh1c2VybmFtZSA9PT0gU1RBVElDX1VTRVIudXNlcm5hbWUgJiYgcGFzc3dvcmQgPT09IFNUQVRJQ19VU0VSLnBhc3N3b3JkKSB7CiAgICAgICAgKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcklkID0gMTsKICAgICAgICAocmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSA9IHVzZXJuYW1lOwogICAgICAgIChyZXEuc2Vzc2lvbiBhcyBhbnkpLnJvbGUgPSAib3BlcmF0b3IiOwogICAgICAgIHJlcy5yZWRpcmVjdCgiL2Rhc2hib2FyZCIpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlck1vZGVsLmZpbmRCeVVzZXJuYW1lKHVzZXJuYW1lKTsKICAgICAgaWYgKHVzZXIgJiYgYXdhaXQgVXNlck1vZGVsLnZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCB1c2VyLnBhc3N3b3JkKSkgewogICAgICAgIChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJJZCA9IHVzZXIuaWQ7CiAgICAgICAgKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcm5hbWUgPSB1c2VyLnVzZXJuYW1lOwogICAgICAgIChyZXEuc2Vzc2lvbiBhcyBhbnkpLnJvbGUgPSAodXNlciBhcyBhbnkpLnJvbGUgPT09ICJpYV9hZG1pbiIgPyAiaWFfYWRtaW4iIDogIm9wZXJhdG9yIjsKICAgICAgICByZXMucmVkaXJlY3QoKHJlcS5zZXNzaW9uIGFzIGFueSkucm9sZSA9PT0gImlhX2FkbWluIiA/ICIvZGFzaGJvYXJkL2FpLWFkbWluIiA6ICIvZGFzaGJvYXJkIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHJlcy5yZW5kZXIoImxvZ2luIiwgeyBlcnJvcjogIlVzdWFyaW8gbyBjb250cmFzZcOxYSBpbmNvcnJlY3RvcyIgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnJlbmRlcigibG9naW4iLCB7IGVycm9yOiAiRXJyb3IgZGVsIHNlcnZpZG9yIiB9KTsKICAgIH0KICB9LAoKICBsb2dvdXQ6IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiB2b2lkID0+IHsKICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKCkgPT4gewogICAgICByZXMucmVkaXJlY3QoIi9sb2dpbiIpOwogICAgfSk7CiAgfSwKfTsKCmV4cG9ydCBkZWZhdWx0IGF1dGhDb250cm9sbGVyOwo=","afterExisted":true,"afterHash":"5a8fdbb795f59de372dbd1f30aed8de865d5ddc464e75c1bc07779934cb05393","afterContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3VzZXJNb2RlbCI7Cgpjb25zdCBTVEFUSUNfVVNFUiA9IHsgdXNlcm5hbWU6ICJHZW9yZ2UiLCBwYXNzd29yZDogIjQyMTMiIH07CmNvbnN0IGFsbG93TGVnYWN5TG9naW4gPSBwcm9jZXNzLmVudi5BTExPV19MRUdBQ1lfTE9HSU4gPT09ICJ0cnVlIiB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gInByb2R1Y3Rpb24iOwpjb25zdCBBRE1JTl9VU0VSID0gewogIHVzZXJuYW1lOiBwcm9jZXNzLmVudi5BRE1JTl9VU0VSTkFNRSB8fCAoYWxsb3dMZWdhY3lMb2dpbiA/ICJhZG1pbiIgOiAiIiksCiAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LkFETUlOX1BBU1NXT1JEIHx8IChhbGxvd0xlZ2FjeUxvZ2luID8gIkFkbWluMjAyNiEiIDogIiIpLAogIHJvbGU6ICJpYV9hZG1pbiIgYXMgY29uc3QsCn07CgpmdW5jdGlvbiBlc3RhYmxpc2hTZXNzaW9uKHJlcTogUmVxdWVzdCwgdXNlcjogeyBpZDogbnVtYmVyOyB1c2VybmFtZTogc3RyaW5nOyByb2xlOiAiaWFfYWRtaW4iIHwgIm9wZXJhdG9yIiB9KTogUHJvbWlzZTx2b2lkPiB7CiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgIHJlcS5zZXNzaW9uLnJlZ2VuZXJhdGUoZXJyb3IgPT4gewogICAgICBpZiAoZXJyb3IpIHJldHVybiByZWplY3QoZXJyb3IpOwogICAgICAocmVxLnNlc3Npb24gYXMgYW55KS51c2VySWQgPSB1c2VyLmlkOwogICAgICAocmVxLnNlc3Npb24gYXMgYW55KS51c2VybmFtZSA9IHVzZXIudXNlcm5hbWU7CiAgICAgIChyZXEuc2Vzc2lvbiBhcyBhbnkpLnJvbGUgPSB1c2VyLnJvbGU7CiAgICAgIHJlcS5zZXNzaW9uLnNhdmUoc2F2ZUVycm9yID0+IHNhdmVFcnJvciA/IHJlamVjdChzYXZlRXJyb3IpIDogcmVzb2x2ZSgpKTsKICAgIH0pOwogIH0pOwp9CgpleHBvcnQgY29uc3QgYXV0aENvbnRyb2xsZXIgPSB7CiAgc2hvd0xvZ2luOiAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogdm9pZCA9PiB7CiAgICBpZiAoKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcklkKSB7CiAgICAgIGNvbnN0IHJvbGUgPSAocmVxLnNlc3Npb24gYXMgYW55KS5yb2xlOwogICAgICByZXMucmVkaXJlY3Qocm9sZSA9PT0gImlhX2FkbWluIiA/ICIvZGFzaGJvYXJkL2FpLWFkbWluIiA6ICIvZGFzaGJvYXJkIik7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHJlcy5yZW5kZXIoImxvZ2luIiwgeyBlcnJvcjogbnVsbCB9KTsKICB9LAoKICBsb2dpbjogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgY29uc3QgeyB1c2VybmFtZSwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5OwogICAgdHJ5IHsKICAgICAgaWYgKEFETUlOX1VTRVIudXNlcm5hbWUgJiYgdXNlcm5hbWUgPT09IEFETUlOX1VTRVIudXNlcm5hbWUgJiYgcGFzc3dvcmQgPT09IEFETUlOX1VTRVIucGFzc3dvcmQpIHsKICAgICAgICBhd2FpdCBlc3RhYmxpc2hTZXNzaW9uKHJlcSwgeyBpZDogOTAwMSwgdXNlcm5hbWU6IEFETUlOX1VTRVIudXNlcm5hbWUsIHJvbGU6IEFETUlOX1VTRVIucm9sZSB9KTsKICAgICAgICByZXMucmVkaXJlY3QoIi9kYXNoYm9hcmQvYWktYWRtaW4iKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKGFsbG93TGVnYWN5TG9naW4gJiYgdXNlcm5hbWUgPT09IFNUQVRJQ19VU0VSLnVzZXJuYW1lICYmIHBhc3N3b3JkID09PSBTVEFUSUNfVVNFUi5wYXNzd29yZCkgewogICAgICAgIGF3YWl0IGVzdGFibGlzaFNlc3Npb24ocmVxLCB7IGlkOiAxLCB1c2VybmFtZSwgcm9sZTogIm9wZXJhdG9yIiB9KTsKICAgICAgICByZXMucmVkaXJlY3QoIi9kYXNoYm9hcmQiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJNb2RlbC5maW5kQnlVc2VybmFtZSh1c2VybmFtZSk7CiAgICAgIGlmICh1c2VyICYmIGF3YWl0IFVzZXJNb2RlbC52ZXJpZnlQYXNzd29yZChwYXNzd29yZCwgdXNlci5wYXNzd29yZCkpIHsKICAgICAgICBjb25zdCByb2xlID0gdXNlci5yb2xlID09PSAiaWFfYWRtaW4iID8gImlhX2FkbWluIiA6ICJvcGVyYXRvciI7CiAgICAgICAgYXdhaXQgZXN0YWJsaXNoU2Vzc2lvbihyZXEsIHsgaWQ6IHVzZXIuaWQhLCB1c2VybmFtZTogdXNlci51c2VybmFtZSwgcm9sZSB9KTsKICAgICAgICByZXMucmVkaXJlY3Qocm9sZSA9PT0gImlhX2FkbWluIiA/ICIvZGFzaGJvYXJkL2FpLWFkbWluIiA6ICIvZGFzaGJvYXJkIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHJlcy5yZW5kZXIoImxvZ2luIiwgeyBlcnJvcjogIlVzdWFyaW8gbyBjb250cmFzZcOxYSBpbmNvcnJlY3RvcyIgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnJlbmRlcigibG9naW4iLCB7IGVycm9yOiAiRXJyb3IgZGVsIHNlcnZpZG9yIiB9KTsKICAgIH0KICB9LAoKICBsb2dvdXQ6IChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiB2b2lkID0+IHsKICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKCkgPT4gewogICAgICByZXMuY2xlYXJDb29raWUoImNhcHRhamF1cy5zaWQiKTsKICAgICAgcmVzLnJlZGlyZWN0KCIvbG9naW4iKTsKICAgIH0pOwogIH0sCn07CgpleHBvcnQgZGVmYXVsdCBhdXRoQ29udHJvbGxlcjsK","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\controllers\\filterController.ts","beforeExisted":true,"beforeHash":"b685a1612dbea91bf2c86e8d399fca3f2b4567be115648b2c14133b6afa4b0ac","beforeContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvZmlsdGVyTW9kZWwiOwppbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICIuLi90eXBlcy9maWx0ZXIiOwoKZXhwb3J0IGNvbnN0IGZpbHRlckNvbnRyb2xsZXIgPSB7CiAgZ2V0QWxsOiBhc3luYyAoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgZmlsdGVycyA9IGF3YWl0IEZpbHRlck1vZGVsLmZpbmRBbGwoKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBmaWx0ZXJzIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IiIH0pOwogICAgfQogIH0sCgogIGdldEJ5SWQ6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IGZpbHRlciA9IGF3YWl0IEZpbHRlck1vZGVsLmZpbmRCeUlkKHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpKTsKICAgICAgaWYgKCFmaWx0ZXIpIHsgcmVzLnN0YXR1cyg0MDQpLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJObyBlbmNvbnRyYWRvIiB9KTsgcmV0dXJuOyB9CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogZmlsdGVyIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IiIH0pOwogICAgfQogIH0sCgogIGNyZWF0ZTogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgZmlsdGVyOiBGaWx0ZXIgPSB7IC4uLnJlcS5ib2R5LCBlbWFpbF9hbGVydHM6IHJlcS5ib2R5LmVtYWlsX2FsZXJ0cyA9PT0gIjEiIHx8IHJlcS5ib2R5LmVtYWlsX2FsZXJ0cyA9PT0gdHJ1ZSB9OwogICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgRmlsdGVyTW9kZWwuY3JlYXRlKGZpbHRlcik7CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogY3JlYXRlZCB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIGNyZWFyIGZpbHRybyIgfSk7CiAgICB9CiAgfSwKCiAgdXBkYXRlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBhd2FpdCBGaWx0ZXJNb2RlbC51cGRhdGUocGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIHJlcS5ib2R5KTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgYWN0dWFsaXphciIgfSk7CiAgICB9CiAgfSwKCiAgZGVsZXRlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBhd2FpdCBGaWx0ZXJNb2RlbC5kZWxldGVCeUlkKHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgZWxpbWluYXIiIH0pOwogICAgfQogIH0sCn07CgpleHBvcnQgZGVmYXVsdCBmaWx0ZXJDb250cm9sbGVyOwo=","afterExisted":true,"afterHash":"2c99ea1053a55b7eccd9fa9f5efedb6f0fe809d1328c0b0da65e55d78457849c","afterContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvZmlsdGVyTW9kZWwiOwppbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICIuLi90eXBlcy9maWx0ZXIiOwoKZXhwb3J0IGNvbnN0IGZpbHRlckNvbnRyb2xsZXIgPSB7CiAgZ2V0QWxsOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBmaWx0ZXJzID0gYXdhaXQgRmlsdGVyTW9kZWwuZmluZEFsbChOdW1iZXIoKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcklkKSk7CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogZmlsdGVycyB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIiB9KTsKICAgIH0KICB9LAoKICBnZXRCeUlkOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBmaWx0ZXIgPSBhd2FpdCBGaWx0ZXJNb2RlbC5maW5kQnlJZChwYXJzZUludChyZXEucGFyYW1zLmlkKSwgTnVtYmVyKChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJJZCkpOwogICAgICBpZiAoIWZpbHRlcikgeyByZXMuc3RhdHVzKDQwNCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIk5vIGVuY29udHJhZG8iIH0pOyByZXR1cm47IH0KICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBmaWx0ZXIgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciIgfSk7CiAgICB9CiAgfSwKCiAgY3JlYXRlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBmaWx0ZXI6IEZpbHRlciA9IHsgLi4ucmVxLmJvZHksIGVtYWlsX2FsZXJ0czogcmVxLmJvZHkuZW1haWxfYWxlcnRzID09PSAiMSIgfHwgcmVxLmJvZHkuZW1haWxfYWxlcnRzID09PSB0cnVlIH07CiAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBGaWx0ZXJNb2RlbC5jcmVhdGUoZmlsdGVyLCBOdW1iZXIoKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcklkKSk7CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogY3JlYXRlZCB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIGNyZWFyIGZpbHRybyIgfSk7CiAgICB9CiAgfSwKCiAgdXBkYXRlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBhd2FpdCBGaWx0ZXJNb2RlbC51cGRhdGUocGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIE51bWJlcigocmVxLnNlc3Npb24gYXMgYW55KS51c2VySWQpLCByZXEuYm9keSk7CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIGFjdHVhbGl6YXIiIH0pOwogICAgfQogIH0sCgogIGRlbGV0ZTogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgYXdhaXQgRmlsdGVyTW9kZWwuZGVsZXRlQnlJZChwYXJzZUludChyZXEucGFyYW1zLmlkKSwgTnVtYmVyKChyZXEuc2Vzc2lvbiBhcyBhbnkpLnVzZXJJZCkpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBlbGltaW5hciIgfSk7CiAgICB9CiAgfSwKfTsKCmV4cG9ydCBkZWZhdWx0IGZpbHRlckNvbnRyb2xsZXI7Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\controllers\\portalController.ts","beforeExisted":true,"beforeHash":"06d2ca36e0539539bac35a597076ff1f26543e807f4377b825d422957217a79a","beforeContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsNCmltcG9ydCB7IFBvcnRhbE1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3BvcnRhbE1vZGVsIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7CmltcG9ydCB7IFJvd0RhdGFQYWNrZXQgfSBmcm9tICJteXNxbDIiOwppbXBvcnQgeyBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24gfSBmcm9tICIuLi9zY3JhcGVycy9jYXBhYmlsaXRpZXMiOwoNCmV4cG9ydCBjb25zdCBwb3J0YWxDb250cm9sbGVyID0gew0KICAgIGFzeW5jIGdldEFsbChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFsbCgpOw0KICAgICAgICAgICAgcmVzLmpzb24ocG9ydGFscyk7DQogICAgICAgIH0gY2F0Y2ggKGVycikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBlcnJvcjogIkVycm9yIGFsIG9idGVuZXIgcG9ydGFsZXMiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIGNyZWF0ZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgc2x1Zywgc2NyYXBlcl9jbGFzcywgYWN0aXZlIH0gPSByZXEuYm9keTsNCiAgICAgICAgICAgIGlmICghbmFtZSB8fCAhc2NyYXBlcl9jbGFzcykgew0KICAgICAgICAgICAgICAgIHJlcy5zdGF0dXMoNDAwKS5qc29uKHsgZXJyb3I6ICJuYW1lIHkgc2NyYXBlcl9jbGFzcyBzb24gb2JsaWdhdG9yaW9zIiB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb25zdCBpZCA9IGF3YWl0IFBvcnRhbE1vZGVsLmNyZWF0ZSh7IG5hbWUsIHNsdWc6IHNsdWcgfHwgIiIsIHNjcmFwZXJfY2xhc3MsIGFjdGl2ZTogYWN0aXZlID8/IDEgfSk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGlkIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6ICJFcnJvciBhbCBjcmVhciBwb3J0YWwiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIHRvZ2dsZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7DQogICAgICAgICAgICBhd2FpdCBQb3J0YWxNb2RlbC50b2dnbGVBY3RpdmUoaWQpOw0KICAgICAgICAgICAgY29uc3QgcG9ydGFsID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEJ5SWQoaWQpOw0KICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBhY3RpdmU6IHBvcnRhbD8uYWN0aXZlIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6ICJFcnJvciBhbCBjYW1iaWFyIGVzdGFkbyBkZWwgcG9ydGFsIiB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBhc3luYyByZW1vdmUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpOw0KICAgICAgICAgICAgY29uc3QgcG9ydGFsID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEJ5SWQoaWQpOw0KICAgICAgICAgICAgaWYgKCFwb3J0YWwpIHsgcmVzLnN0YXR1cyg0MDQpLmpzb24oeyBlcnJvcjogIlBvcnRhbCBubyBlbmNvbnRyYWRvIiB9KTsgcmV0dXJuOyB9DQogICAgICAgICAgICBhd2FpdCBQb3J0YWxNb2RlbC5kZWxldGVCeUlkKGlkKTsNCiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSB9KTsNCiAgICAgICAgfSBjYXRjaCAoZXJyKSB7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAiRXJyb3IgYWwgZWxpbWluYXIgcG9ydGFsIiB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBhc3luYyBoZWFsdGgoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBbGwoKTsNCiAgICAgICAgICAgIGNvbnN0IGRhdGE6IGFueVtdID0gW107DQogICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcG9ydGFscykgew0KICAgICAgICAgICAgICAgIGNvbnN0IFtzYWxlUm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oDQogICAgICAgICAgICAgICAgICAgIGBTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1VNKENBU0UgV0hFTiB1cGRhdGVkX2F0ID49IERBVEVfU1VCKE5PVygpLCBJTlRFUlZBTCAyNCBIT1VSKSBUSEVOIDEgRUxTRSAwIEVORCkgQVMgbGFzdDI0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVgodXBkYXRlZF9hdCkgQVMgbGFzdF9zZWVuDQogICAgICAgICAgICAgICAgICAgICBGUk9NIHByb3BlcnRpZXMNCiAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBBTkQgc291cmNlID0gPyBBTkQgb3BlcmF0aW9uX3R5cGUgPSAnc2FsZSdgLA0KICAgICAgICAgICAgICAgICAgICBbcC5uYW1lXQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgY29uc3QgW3JlbnRSb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigNCiAgICAgICAgICAgICAgICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVU0oQ0FTRSBXSEVOIHVwZGF0ZWRfYXQgPj0gREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDI0IEhPVVIpIFRIRU4gMSBFTFNFIDAgRU5EKSBBUyBsYXN0MjRoLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWCh1cGRhdGVkX2F0KSBBUyBsYXN0X3NlZW4NCiAgICAgICAgICAgICAgICAgICAgIEZST00gcHJvcGVydGllcw0KICAgICAgICAgICAgICAgICAgICAgV0hFUkUgZGVsZXRlZF9hdCBJUyBOVUxMIEFORCBzb3VyY2UgPSA/IEFORCBvcGVyYXRpb25fdHlwZSA9ICdyZW50J2AsDQogICAgICAgICAgICAgICAgICAgIFtwLm5hbWVdDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICBjb25zdCBzYWxlID0gc2FsZVJvd3NbMF0gfHwgeyB0b3RhbDogMCwgbGFzdDI0aDogMCwgbGFzdF9zZWVuOiBudWxsIH07DQogICAgICAgICAgICAgICAgY29uc3QgcmVudCA9IHJlbnRSb3dzWzBdIHx8IHsgdG90YWw6IDAsIGxhc3QyNGg6IDAsIGxhc3Rfc2VlbjogbnVsbCB9Ow0KDQogICAgICAgICAgICAgICAgY29uc3QgZGlhZ25vc2UgPSAob3A6ICJzYWxlIiB8ICJyZW50Iiwgc3RhdHM6IGFueSk6IHN0cmluZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmFjdGl2ZSkgcmV0dXJuICJQb3J0YWwgaW5hY3Rpdm8iOwogICAgICAgICAgICAgICAgICAgIGlmICghc3VwcG9ydHNTY3JhcGVyT3BlcmF0aW9uKHAuc2NyYXBlcl9jbGFzcywgb3ApKSByZXR1cm4gIk9wZXJhY2nDs24gbm8gc29wb3J0YWRhIjsKICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKHN0YXRzLnRvdGFsKSA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AgPT09ICJyZW50IiAmJiBOdW1iZXIoc2FsZS50b3RhbCkgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaW4gYWxxdWlsZXJlczogcmV2aXNhciBVUkwvc2x1Z3MgZGUgYWxxdWlsZXIgbyBibG9xdWVvIGFudGktYm90IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2luIGRhdG9zIGhpc3TDs3JpY29zIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKHN0YXRzLmxhc3QyNGgpID09PSAwKSByZXR1cm4gIlNpbiBhY3R1YWxpemFjaW9uZXMgw7psdGltYXMgMjRoIChyZXZpc2FyIHNjcmFwZXIvYmxvcXVlbykiOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNhbHVkIE9LIjsNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgZGF0YS5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgcG9ydGFsX2lkOiBwLmlkLA0KICAgICAgICAgICAgICAgICAgICBwb3J0YWw6IHAubmFtZSwNCiAgICAgICAgICAgICAgICAgICAgc2x1ZzogcC5zbHVnLA0KICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHAuYWN0aXZlLA0KICAgICAgICAgICAgICAgICAgICBzYWxlOiB7DQogICAgICAgICAgICAgICAgICAgICAgICB0b3RhbDogTnVtYmVyKHNhbGUudG90YWwgfHwgMCksDQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0MjRoOiBOdW1iZXIoc2FsZS5sYXN0MjRoIHx8IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zZWVuOiBzYWxlLmxhc3Rfc2VlbiB8fCBudWxsLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGlhZ25vc2lzOiBkaWFnbm9zZSgic2FsZSIsIHNhbGUpLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICByZW50OiB7DQogICAgICAgICAgICAgICAgICAgICAgICB0b3RhbDogTnVtYmVyKHJlbnQudG90YWwgfHwgMCksDQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0MjRoOiBOdW1iZXIocmVudC5sYXN0MjRoIHx8IDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zZWVuOiByZW50Lmxhc3Rfc2VlbiB8fCBudWxsLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGlhZ25vc2lzOiBkaWFnbm9zZSgicmVudCIsIHJlbnQpLA0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgY2FsY3VsYXIgc2FsdWQgZGUgc2NyYXBlcnMiIH0pOw0KICAgICAgICB9DQogICAgfSwNCn07DQo=","afterExisted":true,"afterHash":"0d2e1d74e2e2d1b18ff016a016523baad4b34349138b617eec9561b8e673dc05","afterContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsNCmltcG9ydCB7IFBvcnRhbE1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3BvcnRhbE1vZGVsIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7CmltcG9ydCB7IFJvd0RhdGFQYWNrZXQgfSBmcm9tICJteXNxbDIiOwppbXBvcnQgeyBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24gfSBmcm9tICIuLi9zY3JhcGVycy9jYXBhYmlsaXRpZXMiOwoNCmV4cG9ydCBjb25zdCBwb3J0YWxDb250cm9sbGVyID0gew0KICAgIGFzeW5jIGdldEFsbChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFsbCgpOw0KICAgICAgICAgICAgcmVzLmpzb24ocG9ydGFscyk7DQogICAgICAgIH0gY2F0Y2ggKGVycikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBlcnJvcjogIkVycm9yIGFsIG9idGVuZXIgcG9ydGFsZXMiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIGNyZWF0ZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgc2x1Zywgc2NyYXBlcl9jbGFzcywgYWN0aXZlIH0gPSByZXEuYm9keTsNCiAgICAgICAgICAgIGlmICghbmFtZSB8fCAhc2NyYXBlcl9jbGFzcykgew0KICAgICAgICAgICAgICAgIHJlcy5zdGF0dXMoNDAwKS5qc29uKHsgZXJyb3I6ICJuYW1lIHkgc2NyYXBlcl9jbGFzcyBzb24gb2JsaWdhdG9yaW9zIiB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb25zdCBpZCA9IGF3YWl0IFBvcnRhbE1vZGVsLmNyZWF0ZSh7IG5hbWUsIHNsdWc6IHNsdWcgfHwgIiIsIHNjcmFwZXJfY2xhc3MsIGFjdGl2ZTogYWN0aXZlID8/IDEgfSk7DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGlkIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6ICJFcnJvciBhbCBjcmVhciBwb3J0YWwiIH0pOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIGFzeW5jIHRvZ2dsZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7DQogICAgICAgICAgICBhd2FpdCBQb3J0YWxNb2RlbC50b2dnbGVBY3RpdmUoaWQpOw0KICAgICAgICAgICAgY29uc3QgcG9ydGFsID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEJ5SWQoaWQpOw0KICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBhY3RpdmU6IHBvcnRhbD8uYWN0aXZlIH0pOw0KICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6ICJFcnJvciBhbCBjYW1iaWFyIGVzdGFkbyBkZWwgcG9ydGFsIiB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBhc3luYyByZW1vdmUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpOw0KICAgICAgICAgICAgY29uc3QgcG9ydGFsID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEJ5SWQoaWQpOw0KICAgICAgICAgICAgaWYgKCFwb3J0YWwpIHsgcmVzLnN0YXR1cyg0MDQpLmpzb24oeyBlcnJvcjogIlBvcnRhbCBubyBlbmNvbnRyYWRvIiB9KTsgcmV0dXJuOyB9DQogICAgICAgICAgICBhd2FpdCBQb3J0YWxNb2RlbC5kZWxldGVCeUlkKGlkKTsNCiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSB9KTsNCiAgICAgICAgfSBjYXRjaCAoZXJyKSB7DQogICAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAiRXJyb3IgYWwgZWxpbWluYXIgcG9ydGFsIiB9KTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBhc3luYyBoZWFsdGgoX3JlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gew0KICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFsbCgpOwogICAgICAgICAgICBjb25zdCBbbGF0ZXN0UnVuUm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgICAgICAgICAgICBgU0VMRUNUIHIuKiBGUk9NIHNjcmFwaW5nX3BvcnRhbF9ydW5zIHIKICAgICAgICAgICAgICAgICAgSk9JTiAoCiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIHBvcnRhbCwgb3BlcmF0aW9uX3R5cGUsIE1BWChpZCkgQVMgaWQKICAgICAgICAgICAgICAgICAgICAgIEZST00gc2NyYXBpbmdfcG9ydGFsX3J1bnMKICAgICAgICAgICAgICAgICAgICAgR1JPVVAgQlkgcG9ydGFsLCBvcGVyYXRpb25fdHlwZQogICAgICAgICAgICAgICAgICApIGxhdGVzdCBPTiBsYXRlc3QuaWQgPSByLmlkYAogICAgICAgICAgICApOwogICAgICAgICAgICBjb25zdCBsYXRlc3RSdW5zID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oCiAgICAgICAgICAgICAgICBsYXRlc3RSdW5Sb3dzLm1hcChydW4gPT4gW2Ake3J1bi5wb3J0YWx9OiR7cnVuLm9wZXJhdGlvbl90eXBlfWAsIHJ1bl0pCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNvbnN0IGRhdGE6IGFueVtdID0gW107CiAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwb3J0YWxzKSB7DQogICAgICAgICAgICAgICAgY29uc3QgW3NhbGVSb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigNCiAgICAgICAgICAgICAgICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVU0oQ0FTRSBXSEVOIENPQUxFU0NFKGxhc3Rfc2Vlbl9hdCwgdXBkYXRlZF9hdCkgPj0gREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDI0IEhPVVIpIFRIRU4gMSBFTFNFIDAgRU5EKSBBUyBsYXN0MjRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYKENPQUxFU0NFKGxhc3Rfc2Vlbl9hdCwgdXBkYXRlZF9hdCkpIEFTIGxhc3Rfc2VlbgogICAgICAgICAgICAgICAgICAgICBGUk9NIHByb3BlcnRpZXMNCiAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBBTkQgc291cmNlID0gPyBBTkQgb3BlcmF0aW9uX3R5cGUgPSAnc2FsZSdgLA0KICAgICAgICAgICAgICAgICAgICBbcC5uYW1lXQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgY29uc3QgW3JlbnRSb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigNCiAgICAgICAgICAgICAgICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVU0oQ0FTRSBXSEVOIENPQUxFU0NFKGxhc3Rfc2Vlbl9hdCwgdXBkYXRlZF9hdCkgPj0gREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDI0IEhPVVIpIFRIRU4gMSBFTFNFIDAgRU5EKSBBUyBsYXN0MjRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYKENPQUxFU0NFKGxhc3Rfc2Vlbl9hdCwgdXBkYXRlZF9hdCkpIEFTIGxhc3Rfc2VlbgogICAgICAgICAgICAgICAgICAgICBGUk9NIHByb3BlcnRpZXMNCiAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBBTkQgc291cmNlID0gPyBBTkQgb3BlcmF0aW9uX3R5cGUgPSAncmVudCdgLA0KICAgICAgICAgICAgICAgICAgICBbcC5uYW1lXQ0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgY29uc3Qgc2FsZSA9IHNhbGVSb3dzWzBdIHx8IHsgdG90YWw6IDAsIGxhc3QyNGg6IDAsIGxhc3Rfc2VlbjogbnVsbCB9OwogICAgICAgICAgICAgICAgY29uc3QgcmVudCA9IHJlbnRSb3dzWzBdIHx8IHsgdG90YWw6IDAsIGxhc3QyNGg6IDAsIGxhc3Rfc2VlbjogbnVsbCB9OwogICAgICAgICAgICAgICAgY29uc3Qgc2FsZVJ1biA9IGxhdGVzdFJ1bnMuZ2V0KGAke3AubmFtZX06c2FsZWApIHx8IG51bGw7CiAgICAgICAgICAgICAgICBjb25zdCByZW50UnVuID0gbGF0ZXN0UnVucy5nZXQoYCR7cC5uYW1lfTpyZW50YCkgfHwgbnVsbDsKCiAgICAgICAgICAgICAgICBjb25zdCBkaWFnbm9zZSA9IChvcDogInNhbGUiIHwgInJlbnQiLCBzdGF0czogYW55LCBydW46IGFueSk6IHN0cmluZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmFjdGl2ZSkgcmV0dXJuICJQb3J0YWwgaW5hY3Rpdm8iOwogICAgICAgICAgICAgICAgICAgIGlmICghc3VwcG9ydHNTY3JhcGVyT3BlcmF0aW9uKHAuc2NyYXBlcl9jbGFzcywgb3ApKSByZXR1cm4gIk9wZXJhY2nDs24gbm8gc29wb3J0YWRhIjsKICAgICAgICAgICAgICAgICAgICBpZiAocnVuPy5zdGF0dXMgPT09ICJlcnJvciIpIHJldHVybiBgw5psdGltYSBlamVjdWNpw7NuIGNvbiBlcnJvcjogJHtydW4uZXJyb3IgfHwgInNpbiBkZXRhbGxlIn1gOwogICAgICAgICAgICAgICAgICAgIGlmIChydW4/LnN0YXR1cyA9PT0gImVtcHR5IikgcmV0dXJuICLDmmx0aW1hIGVqZWN1Y2nDs24gc2luIHJlc3VsdGFkb3MiOwogICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoc3RhdHMudG90YWwpID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcCA9PT0gInJlbnQiICYmIE51bWJlcihzYWxlLnRvdGFsKSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNpbiBhbHF1aWxlcmVzOiByZXZpc2FyIFVSTC9zbHVncyBkZSBhbHF1aWxlciBvIGJsb3F1ZW8gYW50aS1ib3QiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaW4gZGF0b3MgaGlzdMOzcmljb3MiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoc3RhdHMubGFzdDI0aCkgPT09IDApIHJldHVybiAiU2luIGFjdHVhbGl6YWNpb25lcyDDumx0aW1hcyAyNGggKHJldmlzYXIgc2NyYXBlci9ibG9xdWVvKSI7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2FsdWQgT0siOw0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBkYXRhLnB1c2goew0KICAgICAgICAgICAgICAgICAgICBwb3J0YWxfaWQ6IHAuaWQsDQogICAgICAgICAgICAgICAgICAgIHBvcnRhbDogcC5uYW1lLA0KICAgICAgICAgICAgICAgICAgICBzbHVnOiBwLnNsdWcsDQogICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogcC5hY3RpdmUsDQogICAgICAgICAgICAgICAgICAgIHNhbGU6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsOiBOdW1iZXIoc2FsZS50b3RhbCB8fCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QyNGg6IE51bWJlcihzYWxlLmxhc3QyNGggfHwgMCksDQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3NlZW46IHNhbGUubGFzdF9zZWVuIHx8IG51bGwsDQogICAgICAgICAgICAgICAgICAgICAgICBkaWFnbm9zaXM6IGRpYWdub3NlKCJzYWxlIiwgc2FsZSwgc2FsZVJ1biksCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfcnVuOiBzYWxlUnVuLAogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIHJlbnQ6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsOiBOdW1iZXIocmVudC50b3RhbCB8fCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QyNGg6IE51bWJlcihyZW50Lmxhc3QyNGggfHwgMCksDQogICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3NlZW46IHJlbnQubGFzdF9zZWVuIHx8IG51bGwsDQogICAgICAgICAgICAgICAgICAgICAgICBkaWFnbm9zaXM6IGRpYWdub3NlKCJyZW50IiwgcmVudCwgcmVudFJ1biksCiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfcnVuOiByZW50UnVuLAogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGRhdGEgfSk7DQogICAgICAgIH0gY2F0Y2ggKGVycikgew0KICAgICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBjYWxjdWxhciBzYWx1ZCBkZSBzY3JhcGVycyIgfSk7DQogICAgICAgIH0NCiAgICB9LA0KfTsNCg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\controllers\\propertyController.ts","beforeExisted":true,"beforeHash":"000642414513e3c089a9c1fa54ce4b50aeaf9926e470d7aaca847d73fb2cac38","beforeContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvcHJvcGVydHlTZXJ2aWNlIjsKaW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwoKY29uc3Qgc2VydmljZSA9IG5ldyBQcm9wZXJ0eVNlcnZpY2UoKTsKCmV4cG9ydCBjb25zdCBwcm9wZXJ0eUNvbnRyb2xsZXIgPSB7CiAgZ2V0QWxsOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCB7IG11bmljaXBhbGl0eSwgcHJvcGVydHlfdHlwZSwgbWluX3ByaWNlLCBtYXhfcHJpY2UsIG1pbl9yb29tcywgcGFnZSwgcGVyX3BhZ2UsIHNlYXJjaCwgb3BlcmF0aW9uX3R5cGUsIHZhbGVuY2lhX3pvbmUgfSA9IHJlcS5xdWVyeSBhcyBhbnk7CgogICAgICAvLyBTaSBzZSBwaWRlbiBkYXRvcyBwYWdpbmFkb3MgdmlhIEFQSQogICAgICBpZiAocGFnZSkgewogICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZFBhZ2luYXRlZCgKICAgICAgICAgIE51bWJlcihwYWdlKSB8fCAxLAogICAgICAgICAgTnVtYmVyKHBlcl9wYWdlKSB8fCA1MCwKICAgICAgICAgIHNlYXJjaCB8fCB1bmRlZmluZWQKICAgICAgICApOwogICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0LnJvd3MsIGNvdW50OiByZXN1bHQucm93cy5sZW5ndGgsIHRvdGFsOiByZXN1bHQudG90YWwgfSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCBwcm9wcyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmlsdGVyQWR2YW5jZWQoCiAgICAgICAgbWluX3ByaWNlID8gTnVtYmVyKG1pbl9wcmljZSkgOiB1bmRlZmluZWQsCiAgICAgICAgbWF4X3ByaWNlID8gTnVtYmVyKG1heF9wcmljZSkgOiB1bmRlZmluZWQsCiAgICAgICAgcHJvcGVydHlfdHlwZSB8fCB1bmRlZmluZWQsCiAgICAgICAgbXVuaWNpcGFsaXR5IHx8IHVuZGVmaW5lZCwKICAgICAgICBtaW5fcm9vbXMgPyBOdW1iZXIobWluX3Jvb21zKSA6IHVuZGVmaW5lZCwKICAgICAgICB1bmRlZmluZWQsCiAgICAgICAgb3BlcmF0aW9uX3R5cGUgPT09ICJyZW50IiA/ICJyZW50IiA6IG9wZXJhdGlvbl90eXBlID09PSAic2FsZSIgPyAic2FsZSIgOiB1bmRlZmluZWQsCiAgICAgICAgdmFsZW5jaWFfem9uZSB8fCB1bmRlZmluZWQKICAgICAgKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBwcm9wcywgY291bnQ6IHByb3BzLmxlbmd0aCB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIG9idGVuZXIgcHJvcGllZGFkZXMiIH0pOwogICAgfQogIH0sCgogIC8qKgogICAqIERhdGFUYWJsZXMgc2VydmVyLXNpZGUgZW5kcG9pbnQuCiAgICogR0VUIC9hcGkvcHJvcGVydGllcy9kdD9kcmF3PU4mc3RhcnQ9TiZsZW5ndGg9TiZzZWFyY2hbdmFsdWVdPVgmb3JkZXJbMF1bY29sdW1uXT1OJm9yZGVyWzBdW2Rpcl09YXNjCiAgICogRmlsdHJvcyBhZGljaW9uYWxlczogZl9tdW5pLCBmX3RpcG8sIGZfcG1pbiwgZl9wbWF4LCBmX3Jvb21zLCBmX3BvcnRhbCwgZl9kZWxldGVkCiAgICovCiAgZ2V0RGF0YVRhYmxlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBxID0gcmVxLnF1ZXJ5IGFzIGFueTsKICAgICAgY29uc3QgZHJhdyA9IHBhcnNlSW50KHEuZHJhdyB8fCBxWyJkcmF3Il0pIHx8IDE7CiAgICAgIGNvbnN0IHN0YXJ0ID0gcGFyc2VJbnQocS5zdGFydCB8fCBxWyJzdGFydCJdKSB8fCAwOwogICAgICBjb25zdCBsZW5ndGggPSBwYXJzZUludChxLmxlbmd0aCB8fCBxWyJsZW5ndGgiXSkgfHwgMTAwOwogICAgICBjb25zdCBzZWFyY2ggPSAocVsic2VhcmNoW3ZhbHVlXSJdIHx8ICIiKS50cmltKCk7CiAgICAgIGNvbnN0IG9yZGVyQ29sID0gcGFyc2VJbnQocVsib3JkZXJbMF1bY29sdW1uXSJdID8/ICIyIik7CiAgICAgIGNvbnN0IG9yZGVyRGlyID0gKHFbIm9yZGVyWzBdW2Rpcl0iXSA9PT0gImRlc2MiID8gImRlc2MiIDogImFzYyIpIGFzICJhc2MiIHwgImRlc2MiOwoKICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvcGVydHlNb2RlbC5maW5kUGFnaW5hdGVkRFQoewogICAgICAgIGRyYXcsIHN0YXJ0LCBsZW5ndGgsIHNlYXJjaCwKICAgICAgICBvcmRlckNvbCwgb3JkZXJEaXIsCiAgICAgICAgbXVuaWNpcGFsaXR5OiBxLmZfbXVuaSB8fCB1bmRlZmluZWQsCiAgICAgICAgcHJvcGVydHlfdHlwZTogcS5mX3RpcG8gfHwgdW5kZWZpbmVkLAogICAgICAgIG1pbl9wcmljZTogcS5mX29wID09PSAicmVudCIgPyB1bmRlZmluZWQgOiAocS5mX3BtaW4gPyBOdW1iZXIocS5mX3BtaW4pIDogdW5kZWZpbmVkKSwKICAgICAgICBtYXhfcHJpY2U6IHEuZl9wbWF4ID8gTnVtYmVyKHEuZl9wbWF4KSA6IHVuZGVmaW5lZCwKICAgICAgICBtaW5fcm9vbXM6IHEuZl9yb29tcyA/IE51bWJlcihxLmZfcm9vbXMpIDogdW5kZWZpbmVkLAogICAgICAgIHNvdXJjZTogcS5mX3BvcnRhbCB8fCB1bmRlZmluZWQsCiAgICAgICAgZGVsZXRlZDogcS5mX2RlbGV0ZWQgPT09ICIxIiwKICAgICAgICBvcGVyYXRpb25fdHlwZTogcS5mX29wID09PSAicmVudCIgPyAicmVudCIgOiBxLmZfb3AgPT09ICJzYWxlIiA/ICJzYWxlIiA6IHVuZGVmaW5lZCwKICAgICAgICB2YWxlbmNpYV96b25lOiBxLmZfdmFsZW5jaWFfem9uZSB8fCB1bmRlZmluZWQsCiAgICAgIH0pOwoKICAgICAgcmVzLmpzb24ocmVzdWx0KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGRyYXc6IDEsIHJlY29yZHNUb3RhbDogMCwgcmVjb3Jkc0ZpbHRlcmVkOiAwLCBkYXRhOiBbXSwgZXJyb3I6ICJFcnJvciBhbCBvYnRlbmVyIGRhdG9zIiB9KTsKICAgIH0KICB9LAoKICBnZXRCeUlkOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBwcm9wID0gYXdhaXQgUHJvcGVydHlNb2RlbC5maW5kQnlJZChwYXJzZUludChyZXEucGFyYW1zLmlkKSk7CiAgICAgIGlmICghcHJvcCkgeyByZXMuc3RhdHVzKDQwNCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIk5vIGVuY29udHJhZGEiIH0pOyByZXR1cm47IH0KICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBwcm9wIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IiIH0pOwogICAgfQogIH0sCgogIGRlbGV0ZTogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgYXdhaXQgUHJvcGVydHlNb2RlbC5kZWxldGVCeUlkKHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgZWxpbWluYXIiIH0pOwogICAgfQogIH0sCgogIHJlc3RvcmU6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIHRyeSB7CiAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwucmVzdG9yZUJ5SWQocGFyc2VJbnQocmVxLnBhcmFtcy5pZCkpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCByZXN0YXVyYXIiIH0pOwogICAgfQogIH0sCgogIGhhcmREZWxldGU6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIHRyeSB7CiAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwuaGFyZERlbGV0ZUJ5SWQocGFyc2VJbnQocmVxLnBhcmFtcy5pZCkpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBlbGltaW5hciBkZWZpbml0aXZhbWVudGUiIH0pOwogICAgfQogIH0sCgogIHRvZ2dsZUZhdm9yaXRlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpOwogICAgICBjb25zdCBpc0ZhdiA9IGF3YWl0IFByb3BlcnR5TW9kZWwudG9nZ2xlRmF2b3JpdGUoaWQpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGlzX2Zhdm9yaXRlOiBpc0ZhdiB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIGFjdHVhbGl6YXIgZmF2b3JpdG8iIH0pOwogICAgfQogIH0sCgogIHVwZGF0ZU5vdGVzOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpOwogICAgICBjb25zdCB7IG5vdGVzIH0gPSByZXEuYm9keTsKICAgICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cGRhdGVOb3RlcyhpZCwgbm90ZXMgfHwgIiIpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBndWFyZGFyIG5vdGFzIiB9KTsKICAgIH0KICB9LAoKICBnZXRGYXZvcml0ZXM6IGFzeW5jIChfcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBmYXZzID0gYXdhaXQgUHJvcGVydHlNb2RlbC5maW5kRmF2b3JpdGVzKCk7CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogZmF2cywgY291bnQ6IGZhdnMubGVuZ3RoIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgb2J0ZW5lciBmYXZvcml0b3MiIH0pOwogICAgfQogIH0sCgogIGdldFByaWNlSGlzdG9yeTogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTsKICAgICAgY29uc3QgaGlzdG9yeSA9IGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLmdldEJ5UHJvcGVydHkoaWQpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IGhpc3RvcnkgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBvYnRlbmVyIGhpc3RvcmlhbCIgfSk7CiAgICB9CiAgfSwKfTsKCmV4cG9ydCBkZWZhdWx0IHByb3BlcnR5Q29udHJvbGxlcjsKCg==","afterExisted":true,"afterHash":"0cbfc7c09244d7ed18f00e3eb7e23f87944445ff5c6c4a8eb85b81e9203fdf93","afterContent":"aW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICJleHByZXNzIjsKaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAiLi4vc2VydmljZXMvcHJvcGVydHlTZXJ2aWNlIjsKaW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwoKY29uc3Qgc2VydmljZSA9IG5ldyBQcm9wZXJ0eVNlcnZpY2UoKTsKCmV4cG9ydCBjb25zdCBwcm9wZXJ0eUNvbnRyb2xsZXIgPSB7CiAgZ2V0QWxsOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCB7IG11bmljaXBhbGl0eSwgcHJvcGVydHlfdHlwZSwgbWluX3ByaWNlLCBtYXhfcHJpY2UsIG1pbl9yb29tcywgcGFnZSwgcGVyX3BhZ2UsIHNlYXJjaCwgb3BlcmF0aW9uX3R5cGUsIHZhbGVuY2lhX3pvbmUgfSA9IHJlcS5xdWVyeSBhcyBhbnk7CgogICAgICAvLyBTaSBzZSBwaWRlbiBkYXRvcyBwYWdpbmFkb3MgdmlhIEFQSQogICAgICBpZiAocGFnZSkgewogICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZFBhZ2luYXRlZCgKICAgICAgICAgIE51bWJlcihwYWdlKSB8fCAxLAogICAgICAgICAgTnVtYmVyKHBlcl9wYWdlKSB8fCA1MCwKICAgICAgICAgIHNlYXJjaCB8fCB1bmRlZmluZWQKICAgICAgICApOwogICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0LnJvd3MsIGNvdW50OiByZXN1bHQucm93cy5sZW5ndGgsIHRvdGFsOiByZXN1bHQudG90YWwgfSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCBwcm9wcyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmlsdGVyQWR2YW5jZWQoCiAgICAgICAgbWluX3ByaWNlID8gTnVtYmVyKG1pbl9wcmljZSkgOiB1bmRlZmluZWQsCiAgICAgICAgbWF4X3ByaWNlID8gTnVtYmVyKG1heF9wcmljZSkgOiB1bmRlZmluZWQsCiAgICAgICAgcHJvcGVydHlfdHlwZSB8fCB1bmRlZmluZWQsCiAgICAgICAgbXVuaWNpcGFsaXR5IHx8IHVuZGVmaW5lZCwKICAgICAgICBtaW5fcm9vbXMgPyBOdW1iZXIobWluX3Jvb21zKSA6IHVuZGVmaW5lZCwKICAgICAgICB1bmRlZmluZWQsCiAgICAgICAgb3BlcmF0aW9uX3R5cGUgPT09ICJyZW50IiA/ICJyZW50IiA6IG9wZXJhdGlvbl90eXBlID09PSAic2FsZSIgPyAic2FsZSIgOiB1bmRlZmluZWQsCiAgICAgICAgdmFsZW5jaWFfem9uZSB8fCB1bmRlZmluZWQKICAgICAgKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBwcm9wcywgY291bnQ6IHByb3BzLmxlbmd0aCB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIG9idGVuZXIgcHJvcGllZGFkZXMiIH0pOwogICAgfQogIH0sCgogIC8qKgogICAqIERhdGFUYWJsZXMgc2VydmVyLXNpZGUgZW5kcG9pbnQuCiAgICogR0VUIC9hcGkvcHJvcGVydGllcy9kdD9kcmF3PU4mc3RhcnQ9TiZsZW5ndGg9TiZzZWFyY2hbdmFsdWVdPVgmb3JkZXJbMF1bY29sdW1uXT1OJm9yZGVyWzBdW2Rpcl09YXNjCiAgICogRmlsdHJvcyBhZGljaW9uYWxlczogZl9tdW5pLCBmX3RpcG8sIGZfcG1pbiwgZl9wbWF4LCBmX3Jvb21zLCBmX3BvcnRhbCwgZl9kZWxldGVkCiAgICovCiAgZ2V0RGF0YVRhYmxlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBxID0gcmVxLnF1ZXJ5IGFzIGFueTsKICAgICAgY29uc3QgZHJhdyA9IHBhcnNlSW50KHEuZHJhdyB8fCBxWyJkcmF3Il0pIHx8IDE7CiAgICAgIGNvbnN0IHN0YXJ0ID0gcGFyc2VJbnQocS5zdGFydCB8fCBxWyJzdGFydCJdKSB8fCAwOwogICAgICBjb25zdCBsZW5ndGggPSBwYXJzZUludChxLmxlbmd0aCB8fCBxWyJsZW5ndGgiXSkgfHwgMTAwOwogICAgICBjb25zdCBzZWFyY2ggPSAocVsic2VhcmNoW3ZhbHVlXSJdIHx8ICIiKS50cmltKCk7CiAgICAgIGNvbnN0IG9yZGVyQ29sID0gcGFyc2VJbnQocVsib3JkZXJbMF1bY29sdW1uXSJdID8/ICIyIik7CiAgICAgIGNvbnN0IG9yZGVyRGlyID0gKHFbIm9yZGVyWzBdW2Rpcl0iXSA9PT0gImRlc2MiID8gImRlc2MiIDogImFzYyIpIGFzICJhc2MiIHwgImRlc2MiOwoKICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvcGVydHlNb2RlbC5maW5kUGFnaW5hdGVkRFQoewogICAgICAgIGRyYXcsIHN0YXJ0LCBsZW5ndGgsIHNlYXJjaCwKICAgICAgICBvcmRlckNvbCwgb3JkZXJEaXIsCiAgICAgICAgbXVuaWNpcGFsaXR5OiBxLmZfbXVuaSB8fCB1bmRlZmluZWQsCiAgICAgICAgcHJvcGVydHlfdHlwZTogcS5mX3RpcG8gfHwgdW5kZWZpbmVkLAogICAgICAgIG1pbl9wcmljZTogcS5mX29wID09PSAicmVudCIgPyB1bmRlZmluZWQgOiAocS5mX3BtaW4gPyBOdW1iZXIocS5mX3BtaW4pIDogdW5kZWZpbmVkKSwKICAgICAgICBtYXhfcHJpY2U6IHEuZl9wbWF4ID8gTnVtYmVyKHEuZl9wbWF4KSA6IHVuZGVmaW5lZCwKICAgICAgICBtaW5fcm9vbXM6IHEuZl9yb29tcyA/IE51bWJlcihxLmZfcm9vbXMpIDogdW5kZWZpbmVkLAogICAgICAgIHNvdXJjZTogcS5mX3BvcnRhbCB8fCB1bmRlZmluZWQsCiAgICAgICAgZGVsZXRlZDogcS5mX2RlbGV0ZWQgPT09ICIxIiwKICAgICAgICBvcGVyYXRpb25fdHlwZTogcS5mX29wID09PSAicmVudCIgPyAicmVudCIgOiBxLmZfb3AgPT09ICJzYWxlIiA/ICJzYWxlIiA6IHVuZGVmaW5lZCwKICAgICAgICB2YWxlbmNpYV96b25lOiBxLmZfdmFsZW5jaWFfem9uZSB8fCB1bmRlZmluZWQsCiAgICAgICAgdXNlcklkOiBOdW1iZXIoKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcklkKSwKICAgICAgfSk7CgogICAgICByZXMuanNvbihyZXN1bHQpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZHJhdzogMSwgcmVjb3Jkc1RvdGFsOiAwLCByZWNvcmRzRmlsdGVyZWQ6IDAsIGRhdGE6IFtdLCBlcnJvcjogIkVycm9yIGFsIG9idGVuZXIgZGF0b3MiIH0pOwogICAgfQogIH0sCgogIGdldEJ5SWQ6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHByb3AgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmZpbmRCeUlkKHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLCBOdW1iZXIoKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcklkKSk7CiAgICAgIGlmICghcHJvcCkgeyByZXMuc3RhdHVzKDQwNCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIk5vIGVuY29udHJhZGEiIH0pOyByZXR1cm47IH0KICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBwcm9wIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IiIH0pOwogICAgfQogIH0sCgogIGRlbGV0ZTogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgYXdhaXQgUHJvcGVydHlNb2RlbC5kZWxldGVCeUlkKHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgZWxpbWluYXIiIH0pOwogICAgfQogIH0sCgogIHJlc3RvcmU6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIHRyeSB7CiAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwucmVzdG9yZUJ5SWQocGFyc2VJbnQocmVxLnBhcmFtcy5pZCkpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCByZXN0YXVyYXIiIH0pOwogICAgfQogIH0sCgogIGhhcmREZWxldGU6IGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICAgIHRyeSB7CiAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwuaGFyZERlbGV0ZUJ5SWQocGFyc2VJbnQocmVxLnBhcmFtcy5pZCkpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBlbGltaW5hciBkZWZpbml0aXZhbWVudGUiIH0pOwogICAgfQogIH0sCgogIHRvZ2dsZUZhdm9yaXRlOiBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpOwogICAgICBjb25zdCBpc0ZhdiA9IGF3YWl0IFByb3BlcnR5TW9kZWwudG9nZ2xlRmF2b3JpdGUoaWQsIE51bWJlcigocmVxLnNlc3Npb24gYXMgYW55KS51c2VySWQpKTsKICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBpc19mYXZvcml0ZTogaXNGYXYgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBhY3R1YWxpemFyIGZhdm9yaXRvIiB9KTsKICAgIH0KICB9LAoKICB1cGRhdGVOb3RlczogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTsKICAgICAgY29uc3QgeyBub3RlcyB9ID0gcmVxLmJvZHk7CiAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBkYXRlTm90ZXMoaWQsIE51bWJlcigocmVxLnNlc3Npb24gYXMgYW55KS51c2VySWQpLCBub3RlcyB8fCAiIik7CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSB9KTsKICAgIH0gY2F0Y2ggKGVycikgewogICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogIkVycm9yIGFsIGd1YXJkYXIgbm90YXMiIH0pOwogICAgfQogIH0sCgogIGdldEZhdm9yaXRlczogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgZmF2cyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEZhdm9yaXRlcyhOdW1iZXIoKHJlcS5zZXNzaW9uIGFzIGFueSkudXNlcklkKSk7CiAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogZmF2cywgY291bnQ6IGZhdnMubGVuZ3RoIH0pOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAiRXJyb3IgYWwgb2J0ZW5lciBmYXZvcml0b3MiIH0pOwogICAgfQogIH0sCgogIGdldFByaWNlSGlzdG9yeTogYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4gPT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTsKICAgICAgY29uc3QgaGlzdG9yeSA9IGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLmdldEJ5UHJvcGVydHkoaWQpOwogICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IGhpc3RvcnkgfSk7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICJFcnJvciBhbCBvYnRlbmVyIGhpc3RvcmlhbCIgfSk7CiAgICB9CiAgfSwKfTsKCmV4cG9ydCBkZWZhdWx0IHByb3BlcnR5Q29udHJvbGxlcjsK","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\models\\filterModel.ts","beforeExisted":true,"beforeHash":"479eb259281dc0a34da8699c928408277a5087b8cf05e4b2fb8cd7f637cd4ea0","beforeContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKCmV4cG9ydCBjb25zdCBGaWx0ZXJNb2RlbCA9IHsKICBhc3luYyBmaW5kQWxsKCk6IFByb21pc2U8RmlsdGVyW10+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoIlNFTEVDVCAqIEZST00gZmlsdGVycyBPUkRFUiBCWSBpZCBERVNDIik7CiAgICByZXR1cm4gcm93cyBhcyBGaWx0ZXJbXTsKICB9LAoKICBhc3luYyBmaW5kQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTxGaWx0ZXIgfCBudWxsPiB7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGZpbHRlcnMgV0hFUkUgaWQgPSA/IiwgW2lkXSk7CiAgICBjb25zdCBhcnIgPSByb3dzIGFzIEZpbHRlcltdOwogICAgcmV0dXJuIGFyci5sZW5ndGggPiAwID8gYXJyWzBdIDogbnVsbDsKICB9LAoKICBhc3luYyBjcmVhdGUoZmlsdGVyOiBGaWx0ZXIpOiBQcm9taXNlPEZpbHRlcj4gewogICAgY29uc3QgcSA9IGBJTlNFUlQgSU5UTyBmaWx0ZXJzIChuYW1lLCBtaW5fcHJpY2UsIG1heF9wcmljZSwgcHJvcGVydHlfdHlwZSwgbXVuaWNpcGFsaXR5LCBtaW5fcm9vbXMsIG1pbl9zaXplX20yLCBwb3J0YWwsIGVtYWlsX2FsZXJ0cykKICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KWA7CiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnkocSwgWwogICAgICBmaWx0ZXIubmFtZSB8fCBudWxsLCBmaWx0ZXIubWluX3ByaWNlIHx8IG51bGwsIGZpbHRlci5tYXhfcHJpY2UgfHwgbnVsbCwKICAgICAgZmlsdGVyLnByb3BlcnR5X3R5cGUgfHwgbnVsbCwgZmlsdGVyLm11bmljaXBhbGl0eSB8fCBudWxsLAogICAgICBmaWx0ZXIubWluX3Jvb21zIHx8IG51bGwsIGZpbHRlci5taW5fc2l6ZV9tMiB8fCBudWxsLAogICAgICBmaWx0ZXIucG9ydGFsIHx8IG51bGwsCiAgICAgIGZpbHRlci5lbWFpbF9hbGVydHMgPyAxIDogMAogICAgXSk7CiAgICBjb25zdCByID0gcmVzdWx0IGFzIGFueTsKICAgIHJldHVybiB7IC4uLmZpbHRlciwgaWQ6IHIuaW5zZXJ0SWQgfTsKICB9LAoKICBhc3luYyB1cGRhdGUoaWQ6IG51bWJlciwgZmlsdGVyOiBQYXJ0aWFsPEZpbHRlcj4pOiBQcm9taXNlPHZvaWQ+IHsKICAgIGNvbnN0IHEgPSBgVVBEQVRFIGZpbHRlcnMgU0VUIG5hbWU9PywgbWluX3ByaWNlPT8sIG1heF9wcmljZT0/LCBwcm9wZXJ0eV90eXBlPT8sCiAgICAgICAgICAgICAgIG11bmljaXBhbGl0eT0/LCBtaW5fcm9vbXM9PywgbWluX3NpemVfbTI9PywgcG9ydGFsPT8sIGVtYWlsX2FsZXJ0cz0/IFdIRVJFIGlkPT9gOwogICAgYXdhaXQgcG9vbC5xdWVyeShxLCBbCiAgICAgIGZpbHRlci5uYW1lIHx8IG51bGwsIGZpbHRlci5taW5fcHJpY2UgfHwgbnVsbCwgZmlsdGVyLm1heF9wcmljZSB8fCBudWxsLAogICAgICBmaWx0ZXIucHJvcGVydHlfdHlwZSB8fCBudWxsLCBmaWx0ZXIubXVuaWNpcGFsaXR5IHx8IG51bGwsCiAgICAgIGZpbHRlci5taW5fcm9vbXMgfHwgbnVsbCwgZmlsdGVyLm1pbl9zaXplX20yIHx8IG51bGwsCiAgICAgIGZpbHRlci5wb3J0YWwgfHwgbnVsbCwKICAgICAgZmlsdGVyLmVtYWlsX2FsZXJ0cyA/IDEgOiAwLCBpZAogICAgXSk7CiAgfSwKCiAgYXN5bmMgZGVsZXRlQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJERUxFVEUgRlJPTSBmaWx0ZXJzIFdIRVJFIGlkID0gPyIsIFtpZF0pOwogIH0sCgogIGFzeW5jIGZpbmRFbWFpbEFsZXJ0cygpOiBQcm9taXNlPEZpbHRlcltdPiB7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGZpbHRlcnMgV0hFUkUgZW1haWxfYWxlcnRzID0gMSIpOwogICAgcmV0dXJuIHJvd3MgYXMgRmlsdGVyW107CiAgfQp9Owo=","afterExisted":true,"afterHash":"1076f9273bc6611996fd1784eaf66e5484ca495ada01b1c1f9b7f34d558d3a16","afterContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKCmV4cG9ydCBjb25zdCBGaWx0ZXJNb2RlbCA9IHsKICBhc3luYyBmaW5kQWxsKHVzZXJJZDogbnVtYmVyKTogUHJvbWlzZTxGaWx0ZXJbXT4gewogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeSgiU0VMRUNUICogRlJPTSBmaWx0ZXJzIFdIRVJFIHVzZXJfaWQgPSA/IE9SREVSIEJZIGlkIERFU0MiLCBbdXNlcklkXSk7CiAgICByZXR1cm4gcm93cyBhcyBGaWx0ZXJbXTsKICB9LAoKICBhc3luYyBmaW5kQnlJZChpZDogbnVtYmVyLCB1c2VySWQ6IG51bWJlcik6IFByb21pc2U8RmlsdGVyIHwgbnVsbD4gewogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeSgiU0VMRUNUICogRlJPTSBmaWx0ZXJzIFdIRVJFIGlkID0gPyBBTkQgdXNlcl9pZCA9ID8iLCBbaWQsIHVzZXJJZF0pOwogICAgY29uc3QgYXJyID0gcm93cyBhcyBGaWx0ZXJbXTsKICAgIHJldHVybiBhcnIubGVuZ3RoID4gMCA/IGFyclswXSA6IG51bGw7CiAgfSwKCiAgYXN5bmMgY3JlYXRlKGZpbHRlcjogRmlsdGVyLCB1c2VySWQ6IG51bWJlcik6IFByb21pc2U8RmlsdGVyPiB7CiAgICBjb25zdCBxID0gYElOU0VSVCBJTlRPIGZpbHRlcnMgKHVzZXJfaWQsIG5hbWUsIG1pbl9wcmljZSwgbWF4X3ByaWNlLCBwcm9wZXJ0eV90eXBlLCBvcGVyYXRpb25fdHlwZSwgbXVuaWNpcGFsaXR5LCBtaW5fcm9vbXMsIG1pbl9zaXplX20yLCBwb3J0YWwsIGVtYWlsX2FsZXJ0cykKICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KWA7CiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnkocSwgWwogICAgICB1c2VySWQsCiAgICAgIGZpbHRlci5uYW1lIHx8IG51bGwsIGZpbHRlci5taW5fcHJpY2UgfHwgbnVsbCwgZmlsdGVyLm1heF9wcmljZSB8fCBudWxsLAogICAgICBmaWx0ZXIucHJvcGVydHlfdHlwZSB8fCBudWxsLCBmaWx0ZXIub3BlcmF0aW9uX3R5cGUgfHwgbnVsbCwKICAgICAgZmlsdGVyLm11bmljaXBhbGl0eSB8fCBudWxsLAogICAgICBmaWx0ZXIubWluX3Jvb21zIHx8IG51bGwsIGZpbHRlci5taW5fc2l6ZV9tMiB8fCBudWxsLAogICAgICBmaWx0ZXIucG9ydGFsIHx8IG51bGwsCiAgICAgIGZpbHRlci5lbWFpbF9hbGVydHMgPyAxIDogMAogICAgXSk7CiAgICBjb25zdCByID0gcmVzdWx0IGFzIGFueTsKICAgIHJldHVybiB7IC4uLmZpbHRlciwgaWQ6IHIuaW5zZXJ0SWQsIHVzZXJfaWQ6IHVzZXJJZCB9OwogIH0sCgogIGFzeW5jIHVwZGF0ZShpZDogbnVtYmVyLCB1c2VySWQ6IG51bWJlciwgZmlsdGVyOiBQYXJ0aWFsPEZpbHRlcj4pOiBQcm9taXNlPHZvaWQ+IHsKICAgIGNvbnN0IHEgPSBgVVBEQVRFIGZpbHRlcnMgU0VUIG5hbWU9PywgbWluX3ByaWNlPT8sIG1heF9wcmljZT0/LCBwcm9wZXJ0eV90eXBlPT8sIG9wZXJhdGlvbl90eXBlPT8sCiAgICAgICAgICAgICAgIG11bmljaXBhbGl0eT0/LCBtaW5fcm9vbXM9PywgbWluX3NpemVfbTI9PywgcG9ydGFsPT8sIGVtYWlsX2FsZXJ0cz0/IFdIRVJFIGlkPT8gQU5EIHVzZXJfaWQ9P2A7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KHEsIFsKICAgICAgZmlsdGVyLm5hbWUgfHwgbnVsbCwgZmlsdGVyLm1pbl9wcmljZSB8fCBudWxsLCBmaWx0ZXIubWF4X3ByaWNlIHx8IG51bGwsCiAgICAgIGZpbHRlci5wcm9wZXJ0eV90eXBlIHx8IG51bGwsIGZpbHRlci5vcGVyYXRpb25fdHlwZSB8fCBudWxsLCBmaWx0ZXIubXVuaWNpcGFsaXR5IHx8IG51bGwsCiAgICAgIGZpbHRlci5taW5fcm9vbXMgfHwgbnVsbCwgZmlsdGVyLm1pbl9zaXplX20yIHx8IG51bGwsCiAgICAgIGZpbHRlci5wb3J0YWwgfHwgbnVsbCwKICAgICAgZmlsdGVyLmVtYWlsX2FsZXJ0cyA/IDEgOiAwLCBpZCwgdXNlcklkCiAgICBdKTsKICB9LAoKICBhc3luYyBkZWxldGVCeUlkKGlkOiBudW1iZXIsIHVzZXJJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJERUxFVEUgRlJPTSBmaWx0ZXJzIFdIRVJFIGlkID0gPyBBTkQgdXNlcl9pZCA9ID8iLCBbaWQsIHVzZXJJZF0pOwogIH0sCgogIGFzeW5jIGZpbmRFbWFpbEFsZXJ0cygpOiBQcm9taXNlPEZpbHRlcltdPiB7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICBgU0VMRUNUIGYuKiwgdS5lbWFpbCBBUyByZWNpcGllbnRfZW1haWwKICAgICAgICAgRlJPTSBmaWx0ZXJzIGYgTEVGVCBKT0lOIHVzZXJzIHUgT04gdS5pZCA9IGYudXNlcl9pZAogICAgICAgIFdIRVJFIGYuZW1haWxfYWxlcnRzID0gMWAKICAgICk7CiAgICByZXR1cm4gcm93cyBhcyBGaWx0ZXJbXTsKICB9LAoKICBhc3luYyBleGNsdWRlRGVsaXZlcmVkPFQgZXh0ZW5kcyB7IGlkPzogbnVtYmVyIH0+KGZpbHRlcklkOiBudW1iZXIsIHByb3BlcnRpZXM6IFRbXSk6IFByb21pc2U8VFtdPiB7CiAgICBjb25zdCBpZHMgPSBwcm9wZXJ0aWVzLm1hcChwcm9wZXJ0eSA9PiBwcm9wZXJ0eS5pZCkuZmlsdGVyKChpZCk6IGlkIGlzIG51bWJlciA9PiBOdW1iZXIuaXNJbnRlZ2VyKGlkKSk7CiAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdOwogICAgY29uc3QgcGxhY2Vob2xkZXJzID0gaWRzLm1hcCgoKSA9PiAiPyIpLmpvaW4oIiwiKTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8YW55W10+KAogICAgICBgU0VMRUNUIHByb3BlcnR5X2lkIEZST00gZmlsdGVyX2FsZXJ0X2RlbGl2ZXJpZXMgV0hFUkUgZmlsdGVyX2lkID0gPyBBTkQgcHJvcGVydHlfaWQgSU4gKCR7cGxhY2Vob2xkZXJzfSlgLAogICAgICBbZmlsdGVySWQsIC4uLmlkc10KICAgICk7CiAgICBjb25zdCBkZWxpdmVyZWQgPSBuZXcgU2V0KHJvd3MubWFwKHJvdyA9PiBOdW1iZXIocm93LnByb3BlcnR5X2lkKSkpOwogICAgcmV0dXJuIHByb3BlcnRpZXMuZmlsdGVyKHByb3BlcnR5ID0+IHByb3BlcnR5LmlkICYmICFkZWxpdmVyZWQuaGFzKHByb3BlcnR5LmlkKSk7CiAgfSwKCiAgYXN5bmMgbWFya0RlbGl2ZXJlZChmaWx0ZXJJZDogbnVtYmVyLCBwcm9wZXJ0eUlkczogbnVtYmVyW10pOiBQcm9taXNlPHZvaWQ+IHsKICAgIGlmIChwcm9wZXJ0eUlkcy5sZW5ndGggPT09IDApIHJldHVybjsKICAgIGNvbnN0IHBsYWNlaG9sZGVycyA9IHByb3BlcnR5SWRzLm1hcCgoKSA9PiAiKD8sID8pIikuam9pbigiLCIpOwogICAgY29uc3QgcGFyYW1zID0gcHJvcGVydHlJZHMuZmxhdE1hcChwcm9wZXJ0eUlkID0+IFtmaWx0ZXJJZCwgcHJvcGVydHlJZF0pOwogICAgYXdhaXQgcG9vbC5xdWVyeSgKICAgICAgYElOU0VSVCBJR05PUkUgSU5UTyBmaWx0ZXJfYWxlcnRfZGVsaXZlcmllcyAoZmlsdGVyX2lkLCBwcm9wZXJ0eV9pZCkgVkFMVUVTICR7cGxhY2Vob2xkZXJzfWAsCiAgICAgIHBhcmFtcwogICAgKTsKICB9Cn07Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\models\\propertyModel.ts","beforeExisted":true,"beforeHash":"27cd395535c8904166f3ede535ef1acdef5b490afe9e9ebbc81b4c52af570bb8","beforeContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IFJvd0RhdGFQYWNrZXQsIFJlc3VsdFNldEhlYWRlciB9IGZyb20gIm15c3FsMiI7CgpleHBvcnQgY29uc3QgUHJvcGVydHlNb2RlbCA9IHsKICBhc3luYyBmaW5kQWxsKGZpbHRlcnM/OiBQYXJ0aWFsPFByb3BlcnR5Pik6IFByb21pc2U8UHJvcGVydHlbXT4gewogICAgbGV0IHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwiOwogICAgY29uc3QgcGFyYW1zOiBhbnlbXSA9IFtdOwogICAgaWYgKGZpbHRlcnM/Lm11bmljaXBhbGl0eSkgewogICAgICBxdWVyeSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsKICAgICAgcGFyYW1zLnB1c2goYCUke2ZpbHRlcnMubXVuaWNpcGFsaXR5fSVgKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5wcm9wZXJ0eV90eXBlKSB7CiAgICAgIHF1ZXJ5ICs9ICIgQU5EIHByb3BlcnR5X3R5cGUgPSA/IjsKICAgICAgcGFyYW1zLnB1c2goZmlsdGVycy5wcm9wZXJ0eV90eXBlKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5vcGVyYXRpb25fdHlwZSkgewogICAgICBxdWVyeSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOwogICAgICBwYXJhbXMucHVzaChmaWx0ZXJzLm9wZXJhdGlvbl90eXBlKTsKICAgIH0KICAgIHF1ZXJ5ICs9ICIgT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIjsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkocXVlcnksIHBhcmFtcyk7CiAgICByZXR1cm4gcm93cyBhcyBQcm9wZXJ0eVtdOwogIH0sCgogIC8qKiBFc3RhZMOtc3RpY2FzIGdsb2JhbGVzIGRlbCBkYXNoYm9hcmQgKHNpbiBjYXJnYXIgdG9kYXMgbGFzIGZpbGFzKSAqLwogIGFzeW5jIGdldFN0YXRzKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyOyBzb3VyY2VfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtbc11dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwKICAgICAgICAgICAgICBDT0FMRVNDRShBVkcocHJpY2UpLDApIEFTIGF2Z19wcmljZSwKICAgICAgICAgICAgICBDT0FMRVNDRShNSU4ocHJpY2UpLDApIEFTIG1pbl9wcmljZSwKICAgICAgICAgICAgICBDT1VOVChESVNUSU5DVCBzb3VyY2UpIEFTIHNvdXJjZV9jb3VudAogICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCR7d2hlcmVPcGVyYXRpb259YCwKICAgICAgb3BQYXJhbXMKICAgICkpIGFzIGFueTsKICAgIHJldHVybiB7CiAgICAgIHRvdGFsOiBOdW1iZXIocy50b3RhbCksCiAgICAgIGF2Z19wcmljZTogTnVtYmVyKHMuYXZnX3ByaWNlKSwKICAgICAgbWluX3ByaWNlOiBOdW1iZXIocy5taW5fcHJpY2UpLAogICAgICBzb3VyY2VfY291bnQ6IE51bWJlcihzLnNvdXJjZV9jb3VudCksCiAgICB9OwogIH0sCgogIC8qKiBAZGVwcmVjYXRlZCB1c2FyIGdldFN0YXRzKCkgKyBmaW5kUGFnaW5hdGVkRFQoKSBlbiBzdSBsdWdhciAqLwogIGFzeW5jIGZpbmRGb3JEYXNoYm9hcmQobGltaXQgPSA0MDApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyIH0+IHsKICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgUHJvcGVydHlNb2RlbC5nZXRTdGF0cygpOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBPUkRFUiBCWSBDT0FMRVNDRShzY29yZSwwKSBERVNDLCB1cGRhdGVkX2F0IERFU0MgTElNSVQgP2AsCiAgICAgIFtsaW1pdF0KICAgICk7CiAgICByZXR1cm4geyByb3dzOiByb3dzIGFzIFByb3BlcnR5W10sIHRvdGFsOiBzdGF0cy50b3RhbCwgYXZnX3ByaWNlOiBzdGF0cy5hdmdfcHJpY2UsIG1pbl9wcmljZTogc3RhdHMubWluX3ByaWNlIH07CiAgfSwKCiAgLyoqIENhcmdhIG3DrW5pbWEgcGFyYSBlbCBtYXBhOiBzw7NsbyBjb2x1bW5hcyBuZWNlc2FyaWFzIHBhcmEgbG9zIG1hcmtlcnMgKi8KICBhc3luYyBmaW5kRm9yTWFwKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPFBpY2s8UHJvcGVydHksICJpZCIgfCAidGl0bGUiIHwgInByaWNlIiB8ICJsYXQiIHwgImxuZyIgfCAic291cmNlIiB8ICJtdW5pY2lwYWxpdHkiIHwgInByb3BlcnR5X3R5cGUiIHwgImltYWdlX3VybCIgfCAib3BlcmF0aW9uX3R5cGUiPltdPiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBpZCwgdGl0bGUsIHByaWNlLCBsYXQsIGxuZywgc291cmNlLCBtdW5pY2lwYWxpdHksIHByb3BlcnR5X3R5cGUsIGltYWdlX3VybCwgb3BlcmF0aW9uX3R5cGUKICAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBsYXQgSVMgTk9UIE5VTEwgQU5EIGxuZyBJUyBOT1QgTlVMTCBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMCiAgICAgICAke3doZXJlT3BlcmF0aW9ufQogICAgICAgT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIExJTUlUIDIwMDBgLAogICAgICBvcFBhcmFtcwogICAgKTsKICAgIHJldHVybiByb3dzIGFzIGFueTsKICB9LAoKICBhc3luYyBmaW5kQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTxQcm9wZXJ0eSB8IG51bGw+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLCBbaWRdKTsKICAgIGNvbnN0IGFyciA9IHJvd3MgYXMgUHJvcGVydHlbXTsKICAgIHJldHVybiBhcnIubGVuZ3RoID4gMCA/IGFyclswXSA6IG51bGw7CiAgfSwKCiAgYXN5bmMgdXBzZXJ0KHByb3A6IFByb3BlcnR5ICYgeyBwcmljZV9wZXJfbTI/OiBudW1iZXIgfSk6IFByb21pc2U8bnVtYmVyPiB7CiAgICBjb25zdCBxID0gYElOU0VSVCBJTlRPIHByb3BlcnRpZXMKICAgICAgKHRpdGxlLCBwcmljZSwgbG9jYXRpb24sIG11bmljaXBhbGl0eSwgcHJvcGVydHlfdHlwZSwgb3BlcmF0aW9uX3R5cGUsIHJvb21zLCBiYXRocm9vbXMsIHNpemVfbTIsIGRlc2NyaXB0aW9uLCBpbWFnZV91cmwsIHVybCwgc291cmNlLCBsYXQsIGxuZywgcHJpY2VfcGVyX20yLCB1cGRhdGVkX2F0KQogICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sIE5PVygpKQogICAgICBPTiBEVVBMSUNBVEUgS0VZIFVQREFURQogICAgICAgIHRpdGxlPVZBTFVFUyh0aXRsZSksIHByaWNlPVZBTFVFUyhwcmljZSksIGxvY2F0aW9uPVZBTFVFUyhsb2NhdGlvbiksCiAgICAgICAgbXVuaWNpcGFsaXR5PVZBTFVFUyhtdW5pY2lwYWxpdHkpLCBwcm9wZXJ0eV90eXBlPVZBTFVFUyhwcm9wZXJ0eV90eXBlKSwgb3BlcmF0aW9uX3R5cGU9VkFMVUVTKG9wZXJhdGlvbl90eXBlKSwKICAgICAgICByb29tcz1WQUxVRVMocm9vbXMpLCBiYXRocm9vbXM9VkFMVUVTKGJhdGhyb29tcyksIHNpemVfbTI9VkFMVUVTKHNpemVfbTIpLAogICAgICAgIGRlc2NyaXB0aW9uPVZBTFVFUyhkZXNjcmlwdGlvbiksIGltYWdlX3VybD1WQUxVRVMoaW1hZ2VfdXJsKSwKICAgICAgICBzb3VyY2U9VkFMVUVTKHNvdXJjZSksIGxhdD1WQUxVRVMobGF0KSwgbG5nPVZBTFVFUyhsbmcpLAogICAgICAgIHByaWNlX3Blcl9tMj1WQUxVRVMocHJpY2VfcGVyX20yKSwgZGVsZXRlZF9hdD1OVUxMLCB1cGRhdGVkX2F0PU5PVygpYDsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KHEsIFsKICAgICAgcHJvcC50aXRsZSwgcHJvcC5wcmljZSwgcHJvcC5sb2NhdGlvbiwgcHJvcC5tdW5pY2lwYWxpdHkgfHwgbnVsbCwKICAgICAgcHJvcC5wcm9wZXJ0eV90eXBlLCBwcm9wLm9wZXJhdGlvbl90eXBlIHx8ICJzYWxlIiwgcHJvcC5yb29tcyB8fCBudWxsLCBwcm9wLmJhdGhyb29tcyB8fCBudWxsLCBwcm9wLnNpemVfbTIgfHwgbnVsbCwKICAgICAgcHJvcC5kZXNjcmlwdGlvbiB8fCBudWxsLCBwcm9wLmltYWdlX3VybCB8fCBudWxsLCBwcm9wLnVybCwgcHJvcC5zb3VyY2UsCiAgICAgIHByb3AubGF0IHx8IG51bGwsIHByb3AubG5nIHx8IG51bGwsIHByb3AucHJpY2VfcGVyX20yIHx8IG51bGwsCiAgICBdKTsKICAgIC8vIE9uIGluc2VydDogaW5zZXJ0SWQgaXMgbmV3IGlkOyBvbiB1cGRhdGU6IGluc2VydElkIGlzIDAsIGdldCBieSBVUkwKICAgIGlmIChyZXN1bHQuaW5zZXJ0SWQgPiAwKSByZXR1cm4gcmVzdWx0Lmluc2VydElkOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KCJTRUxFQ1QgaWQgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIHVybCA9ID8iLCBbcHJvcC51cmxdKTsKICAgIHJldHVybiByb3dzWzBdPy5pZCB8fCAwOwogIH0sCgogIC8qKiBTb2Z0LWRlbGV0ZTogbWFyY2EgY29tbyBlbGltaW5hZG8gKHF1ZWRhIGVuIGFyY2hpdm8gMzAgZMOtYXMpICovCiAgYXN5bmMgZGVsZXRlQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJVUERBVEUgcHJvcGVydGllcyBTRVQgZGVsZXRlZF9hdCA9IE5PVygpIFdIRVJFIGlkID0gPyBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMIiwgW2lkXSk7CiAgfSwKCiAgLyoqIFJlc3RhdXJhIHVuYSBwcm9waWVkYWQgZWxpbWluYWRhIGFsIGxpc3RhZG8gYWN0aXZvICovCiAgYXN5bmMgcmVzdG9yZUJ5SWQoaWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4gewogICAgYXdhaXQgcG9vbC5xdWVyeSgiVVBEQVRFIHByb3BlcnRpZXMgU0VUIGRlbGV0ZWRfYXQgPSBOVUxMIFdIRVJFIGlkID0gPyIsIFtpZF0pOwogIH0sCgogIC8qKiBFbGltaW5hY2nDs24gcGVybWFuZW50ZSBlIGlycmVjdXBlcmFibGUgKi8KICBhc3luYyBoYXJkRGVsZXRlQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJERUxFVEUgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlkID0gPyIsIFtpZF0pOwogIH0sCgogIC8qKiBEZXZ1ZWx2ZSBwcm9waWVkYWRlcyBlbiBlbCBhcmNoaXZvIChzb2Z0LWRlbGV0ZWQpLCBwYWdpbmFkYXMgKi8KICBhc3luYyBmaW5kRGVsZXRlZChwYWdlID0gMSwgcGVyUGFnZSA9IDEwMCk6IFByb21pc2U8eyByb3dzOiBQcm9wZXJ0eVtdOyB0b3RhbDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IG9mZnNldCA9IChwYWdlIC0gMSkgKiBwZXJQYWdlOwogICAgY29uc3QgW1t7IHRvdGFsIH1dXSA9IChhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgICJTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTk9UIE5VTEwiCiAgICApKSBhcyBhbnk7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgIGBTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgV0hFUkUgZGVsZXRlZF9hdCBJUyBOT1QgTlVMTAogICAgICAgT1JERVIgQlkgZGVsZXRlZF9hdCBERVNDIExJTUlUID8gT0ZGU0VUID9gLAogICAgICBbcGVyUGFnZSwgb2Zmc2V0XQogICAgKTsKICAgIHJldHVybiB7IHJvd3M6IHJvd3MgYXMgUHJvcGVydHlbXSwgdG90YWw6IE51bWJlcih0b3RhbCkgfTsKICB9LAoKICAvKiogUHVyZ2EgcHJvcGllZGFkZXMgZWxpbWluYWRhcyBoYWNlIG3DoXMgZGUgMzAgZMOtYXMgKi8KICBhc3luYyBwdXJnZU9sZERlbGV0ZWQoKTogUHJvbWlzZTxudW1iZXI+IHsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICAiREVMRVRFIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5PVCBOVUxMIEFORCBkZWxldGVkX2F0IDwgREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDMwIERBWSkiCiAgICApOwogICAgcmV0dXJuIHJlc3VsdC5hZmZlY3RlZFJvd3M7CiAgfSwKCiAgLyoqCiAgICogQXJjaGl2YSAoc29mdC1kZWxldGUpIHByb3BpZWRhZGVzIGRlIHVuIHBvcnRhbCB5IG9wZXJhY2nDs24gcXVlIE5PIGZ1ZXJvbgogICAqIGRldGVjdGFkYXMgZW4gZWwgw7psdGltbyBzY3JhcGluZyAoc3UgYHVwZGF0ZWRfYXRgIGVzIGFudGVyaW9yIGFsIGluaWNpbykuCiAgICogQHBhcmFtIHNvdXJjZSAgIE5vbWJyZSBkZWwgcG9ydGFsLCBwLiBlai4gIklkZWFsaXN0YSIKICAgKiBAcGFyYW0gb3BlcmF0aW9uVHlwZSBPcGVyYWNpw7NuIGRlbCBjaWNsbzsgdmVudGEgbnVuY2EgZGViZSBhcmNoaXZhciBhbHF1aWxlcgogICAqIEBwYXJhbSBvbGRlclRoYW4gRmVjaGEgZGUgaW5pY2lvIGRlbCBzY3JhcGluZyDigJQgdG9kbyBsbyBubyBhY3R1YWxpemFkbyBkZXNkZSBlbnRvbmNlcyBzZSBhcmNoaXZhCiAgICogQHJldHVybnMgTsO6bWVybyBkZSBwcm9waWVkYWRlcyBhcmNoaXZhZGFzCiAgICovCiAgYXN5bmMgYXJjaGl2ZVN0YWxlQnlTb3VyY2UoCiAgICBzb3VyY2U6IHN0cmluZywKICAgIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiwKICAgIG9sZGVyVGhhbjogRGF0ZQogICk6IFByb21pc2U8bnVtYmVyPiB7CiAgICAvLyBFeGlnaW1vcyBxdWUgbGEgcHJvcGllZGFkIGxsZXZlIEFMIE1FTk9TIDIgZMOtYXMgc2luIGFwYXJlY2VyIGVuIG5pbmfDum4gY2ljbG8KICAgIC8vIGRlIHNjcmFwaW5nIGFudGVzIGRlIGFyY2hpdmFybGEuIEVzdG8gZXZpdGEgcXVlIHVuIGZhbGxvIHB1bnR1YWwgZGVsIHNjcmFwZXIKICAgIC8vICg0MDMsIGFudGktYm90LCByZWQpIGJvcnJlIHByb3BpZWRhZGVzIHF1ZSBzaWd1ZW4gcHVibGljYWRhcyBlbiBlbCBwb3J0YWwuCiAgICBjb25zdCBncmFjZVBlcmlvZE1zID0gMiAqIDI0ICogNjAgKiA2MCAqIDEwMDA7IC8vIDIgZMOtYXMgZW4gbXMKICAgIGNvbnN0IHRocmVzaG9sZCA9IG5ldyBEYXRlKG9sZGVyVGhhbi5nZXRUaW1lKCkgLSBncmFjZVBlcmlvZE1zKTsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICBgVVBEQVRFIHByb3BlcnRpZXMgU0VUIGRlbGV0ZWRfYXQgPSBOT1coKQogICAgICAgV0hFUkUgc291cmNlID0gPyBBTkQgb3BlcmF0aW9uX3R5cGUgPSA/CiAgICAgICAgIEFORCB1cGRhdGVkX2F0IDwgPyBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMYCwKICAgICAgW3NvdXJjZSwgb3BlcmF0aW9uVHlwZSwgdGhyZXNob2xkXQogICAgKTsKICAgIHJldHVybiByZXN1bHQuYWZmZWN0ZWRSb3dzOwogIH0sCgogIGFzeW5jIGZpbHRlckFkdmFuY2VkKG1pbl9wcmljZT86IG51bWJlciwgbWF4X3ByaWNlPzogbnVtYmVyLCBwcm9wZXJ0eV90eXBlPzogc3RyaW5nLCBtdW5pY2lwYWxpdHk/OiBzdHJpbmcsIG1pbl9yb29tcz86IG51bWJlciwgbWluX3NpemVfbTI/OiBudW1iZXIsIG9wZXJhdGlvbl90eXBlPzogInNhbGUiIHwgInJlbnQiLCB2YWxlbmNpYV96b25lPzogc3RyaW5nKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICBsZXQgcXVlcnkgPSAiU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCI7CiAgICBjb25zdCBwYXJhbXM6IGFueVtdID0gW107CiAgICBpZiAobWluX3ByaWNlICE9IG51bGwpIHsgcXVlcnkgKz0gIiBBTkQgcHJpY2UgPj0gPyI7IHBhcmFtcy5wdXNoKG1pbl9wcmljZSk7IH0KICAgIGlmIChtYXhfcHJpY2UgIT0gbnVsbCkgeyBxdWVyeSArPSAiIEFORCBwcmljZSA8PSA/IjsgcGFyYW1zLnB1c2gobWF4X3ByaWNlKTsgfQogICAgaWYgKHByb3BlcnR5X3R5cGUpIHsgcXVlcnkgKz0gIiBBTkQgcHJvcGVydHlfdHlwZSA9ID8iOyBwYXJhbXMucHVzaChwcm9wZXJ0eV90eXBlKTsgfQogICAgaWYgKG11bmljaXBhbGl0eSkgeyBxdWVyeSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsgcGFyYW1zLnB1c2goYCUke211bmljaXBhbGl0eX0lYCk7IH0KICAgIGlmIChvcGVyYXRpb25fdHlwZSkgeyBxdWVyeSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOyBwYXJhbXMucHVzaChvcGVyYXRpb25fdHlwZSk7IH0KICAgIGlmICh2YWxlbmNpYV96b25lKSB7CiAgICAgIHF1ZXJ5ICs9ICIgQU5EIG11bmljaXBhbGl0eSBMSUtFICclVmFsZW5jaWElJyBBTkQgKGxvY2F0aW9uIExJS0UgPyBPUiB0aXRsZSBMSUtFID8pIjsKICAgICAgcGFyYW1zLnB1c2goYCUke3ZhbGVuY2lhX3pvbmV9JWAsIGAlJHt2YWxlbmNpYV96b25lfSVgKTsKICAgIH0KICAgIGlmIChtaW5fcm9vbXMgIT0gbnVsbCkgeyBxdWVyeSArPSAiIEFORCByb29tcyA+PSA/IjsgcGFyYW1zLnB1c2gobWluX3Jvb21zKTsgfQogICAgaWYgKG1pbl9zaXplX20yICE9IG51bGwpIHsgcXVlcnkgKz0gIiBBTkQgc2l6ZV9tMiA+PSA/IjsgcGFyYW1zLnB1c2gobWluX3NpemVfbTIpOyB9CiAgICBxdWVyeSArPSAiIE9SREVSIEJZIHByaWNlIEFTQyI7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpOwogICAgcmV0dXJuIHJvd3MgYXMgUHJvcGVydHlbXTsKICB9LAoKICBhc3luYyB0b2dnbGVGYXZvcml0ZShpZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICAiVVBEQVRFIHByb3BlcnRpZXMgU0VUIGlzX2Zhdm9yaXRlID0gSUYoaXNfZmF2b3JpdGUgPSAxLCAwLCAxKSBXSEVSRSBpZCA9ID8iLAogICAgICBbaWRdCiAgICApOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICAiU0VMRUNUIGlzX2Zhdm9yaXRlIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLAogICAgICBbaWRdCiAgICApOwogICAgcmV0dXJuIEJvb2xlYW4ocm93c1swXT8uaXNfZmF2b3JpdGUpOwogIH0sCgogIGFzeW5jIHVwZGF0ZU5vdGVzKGlkOiBudW1iZXIsIG5vdGVzOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IHBvb2wucXVlcnkoIlVQREFURSBwcm9wZXJ0aWVzIFNFVCBub3RlcyA9ID8gV0hFUkUgaWQgPSA/IiwgW25vdGVzIHx8IG51bGwsIGlkXSk7CiAgfSwKCiAgYXN5bmMgZmluZEZhdm9yaXRlcygpOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoCiAgICAgICJTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgV0hFUkUgaXNfZmF2b3JpdGUgPSAxIEFORCBkZWxldGVkX2F0IElTIE5VTEwgT1JERVIgQlkgc2NvcmUgREVTQywgdXBkYXRlZF9hdCBERVNDIgogICAgKTsKICAgIHJldHVybiByb3dzIGFzIFByb3BlcnR5W107CiAgfSwKCiAgYXN5bmMgZmluZFBhZ2luYXRlZCgKICAgIHBhZ2U6IG51bWJlciwKICAgIHBlclBhZ2U6IG51bWJlciwKICAgIHNlYXJjaD86IHN0cmluZwogICk6IFByb21pc2U8eyByb3dzOiBQcm9wZXJ0eVtdOyB0b3RhbDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IG9mZnNldCA9IChwYWdlIC0gMSkgKiBwZXJQYWdlOwogICAgbGV0IHdoZXJlID0gIldIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCI7CiAgICBjb25zdCBwYXJhbXM6IGFueVtdID0gW107CiAgICBpZiAoc2VhcmNoKSB7CiAgICAgIHdoZXJlICs9ICIgQU5EICh0aXRsZSBMSUtFID8gT1IgbG9jYXRpb24gTElLRSA/IE9SIG11bmljaXBhbGl0eSBMSUtFID8pIjsKICAgICAgcGFyYW1zLnB1c2goYCUke3NlYXJjaH0lYCwgYCUke3NlYXJjaH0lYCwgYCUke3NlYXJjaH0lYCk7CiAgICB9CiAgICBjb25zdCBbW3sgdG90YWwgfV1dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX1gLAogICAgICBwYXJhbXMKICAgICkpIGFzIGFueTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoCiAgICAgIGBTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX0gT1JERVIgQlkgdXBkYXRlZF9hdCBERVNDIExJTUlUID8gT0ZGU0VUID9gLAogICAgICBbLi4ucGFyYW1zLCBwZXJQYWdlLCBvZmZzZXRdCiAgICApOwogICAgcmV0dXJuIHsgcm93czogcm93cyBhcyBQcm9wZXJ0eVtdLCB0b3RhbDogTnVtYmVyKHRvdGFsKSB9OwogIH0sCgogIC8qKgogICAqIEVuZHBvaW50IHByaW5jaXBhbCBwYXJhIERhdGFUYWJsZXMgc2VydmVyLXNpZGUuCiAgICogU29wb3J0YSBiw7pzcXVlZGEgZ2xvYmFsLCBmaWx0cm9zIHBvciBjb2x1bW5hLCBvcmRlbmFjacOzbiB5IHBhZ2luYWNpw7NuLgogICAqIEN1YW5kbyBkZWxldGVkPXRydWUgZGV2dWVsdmUgZWwgYXJjaGl2byBkZSBlbGltaW5hZG9zLgogICAqLwogIGFzeW5jIGZpbmRQYWdpbmF0ZWREVChwYXJhbXM6IHsKICAgIGRyYXc6IG51bWJlcjsKICAgIHN0YXJ0OiBudW1iZXI7CiAgICBsZW5ndGg6IG51bWJlcjsKICAgIHNlYXJjaD86IHN0cmluZzsKICAgIG9yZGVyQ29sPzogbnVtYmVyOwogICAgb3JkZXJEaXI/OiAiYXNjIiB8ICJkZXNjIjsKICAgIG11bmljaXBhbGl0eT86IHN0cmluZzsKICAgIHByb3BlcnR5X3R5cGU/OiBzdHJpbmc7CiAgICBtaW5fcHJpY2U/OiBudW1iZXI7CiAgICBtYXhfcHJpY2U/OiBudW1iZXI7CiAgICBtaW5fcm9vbXM/OiBudW1iZXI7CiAgICBzb3VyY2U/OiBzdHJpbmc7CiAgICBkZWxldGVkPzogYm9vbGVhbjsKICAgIG9wZXJhdGlvbl90eXBlPzogInNhbGUiIHwgInJlbnQiOwogICAgdmFsZW5jaWFfem9uZT86IHN0cmluZzsKICB9KTogUHJvbWlzZTx7IGRyYXc6IG51bWJlcjsgcmVjb3Jkc1RvdGFsOiBudW1iZXI7IHJlY29yZHNGaWx0ZXJlZDogbnVtYmVyOyBkYXRhOiBQcm9wZXJ0eVtdIH0+IHsKICAgIGNvbnN0IHsKICAgICAgZHJhdywgc3RhcnQsIGxlbmd0aCwgc2VhcmNoLAogICAgICBvcmRlckNvbCA9IDIsIG9yZGVyRGlyID0gImFzYyIsCiAgICAgIG11bmljaXBhbGl0eSwgcHJvcGVydHlfdHlwZSwKICAgICAgbWluX3ByaWNlLCBtYXhfcHJpY2UsIG1pbl9yb29tcywgc291cmNlLCBvcGVyYXRpb25fdHlwZSwgdmFsZW5jaWFfem9uZSwKICAgICAgZGVsZXRlZCA9IGZhbHNlLAogICAgfSA9IHBhcmFtczsKCiAgICAvLyBDb2x1bW5hcyBvcmRlbmFibGVzICjDrW5kaWNlIERUIOKGkiBjYW1wbyBEQikKICAgIGNvbnN0IHNvcnRhYmxlRmllbGRzOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0gewogICAgICAxOiAidGl0bGUiLCAyOiAicHJpY2UiLCAzOiAicHJpY2VfcGVyX20yIiwgNDogInNjb3JlIiwKICAgICAgNTogIm11bmljaXBhbGl0eSIsIDY6ICJwcm9wZXJ0eV90eXBlIiwgNzogInJvb21zIiwgODogInNpemVfbTIiLCA5OiAic291cmNlIiwKICAgIH07CiAgICBjb25zdCBvcmRlckZpZWxkID0gc29ydGFibGVGaWVsZHNbb3JkZXJDb2xdID8/ICJwcmljZSI7CiAgICBjb25zdCBzYWZlRGlyID0gb3JkZXJEaXIgPT09ICJkZXNjIiA/ICJERVNDIiA6ICJBU0MiOwoKICAgIC8vIEJhc2UgV0hFUkUKICAgIGNvbnN0IGRlbGV0ZWRDb25kaXRpb24gPSBkZWxldGVkID8gImRlbGV0ZWRfYXQgSVMgTk9UIE5VTEwiIDogImRlbGV0ZWRfYXQgSVMgTlVMTCI7CiAgICBsZXQgd2hlcmUgPSBgV0hFUkUgJHtkZWxldGVkQ29uZGl0aW9ufWA7CiAgICBjb25zdCBxdWVyeVBhcmFtczogYW55W10gPSBbXTsKCiAgICAvLyBGaWx0cm9zIHBlcnNvbmFsaXphZG9zCiAgICBpZiAobXVuaWNpcGFsaXR5KSB7IHdoZXJlICs9ICIgQU5EIG11bmljaXBhbGl0eSBMSUtFID8iOyBxdWVyeVBhcmFtcy5wdXNoKGAlJHttdW5pY2lwYWxpdHl9JWApOyB9CiAgICBpZiAocHJvcGVydHlfdHlwZSkgeyB3aGVyZSArPSAiIEFORCBwcm9wZXJ0eV90eXBlID0gPyI7IHF1ZXJ5UGFyYW1zLnB1c2gocHJvcGVydHlfdHlwZSk7IH0KICAgIGlmIChtaW5fcHJpY2UgIT0gbnVsbCAmJiBtaW5fcHJpY2UgPiAwKSB7IHdoZXJlICs9ICIgQU5EIHByaWNlID49ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG1pbl9wcmljZSk7IH0KICAgIGlmIChtYXhfcHJpY2UgIT0gbnVsbCAmJiBtYXhfcHJpY2UgPiAwKSB7IHdoZXJlICs9ICIgQU5EIHByaWNlIDw9ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG1heF9wcmljZSk7IH0KICAgIGlmIChtaW5fcm9vbXMgIT0gbnVsbCAmJiBtaW5fcm9vbXMgPiAwKSB7IHdoZXJlICs9ICIgQU5EIHJvb21zID49ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG1pbl9yb29tcyk7IH0KICAgIGlmIChzb3VyY2UpIHsgd2hlcmUgKz0gIiBBTkQgc291cmNlIExJS0UgPyI7IHF1ZXJ5UGFyYW1zLnB1c2goYCUke3NvdXJjZX0lYCk7IH0KICAgIGlmIChvcGVyYXRpb25fdHlwZSkgeyB3aGVyZSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOyBxdWVyeVBhcmFtcy5wdXNoKG9wZXJhdGlvbl90eXBlKTsgfQogICAgaWYgKHZhbGVuY2lhX3pvbmUpIHsKICAgICAgd2hlcmUgKz0gIiBBTkQgbXVuaWNpcGFsaXR5IExJS0UgJyVWYWxlbmNpYSUnIEFORCAobG9jYXRpb24gTElLRSA/IE9SIHRpdGxlIExJS0UgPykiOwogICAgICBxdWVyeVBhcmFtcy5wdXNoKGAlJHt2YWxlbmNpYV96b25lfSVgLCBgJSR7dmFsZW5jaWFfem9uZX0lYCk7CiAgICB9CgogICAgLy8gVG90YWwgc2luIGZpbHRybyBkZSBiw7pzcXVlZGEgKHBhcmEgcmVjb3Jkc1RvdGFsKQogICAgY29uc3QgW1t7IHJlY29yZHNUb3RhbCB9XV0gPSAoYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUIENPVU5UKCopIEFTIHJlY29yZHNUb3RhbCBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX1gLCBxdWVyeVBhcmFtcwogICAgKSkgYXMgYW55OwoKICAgIC8vIELDunNxdWVkYSBnbG9iYWwKICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IFsuLi5xdWVyeVBhcmFtc107CiAgICBpZiAoc2VhcmNoKSB7CiAgICAgIHdoZXJlICs9ICIgQU5EICh0aXRsZSBMSUtFID8gT1IgbG9jYXRpb24gTElLRSA/IE9SIG11bmljaXBhbGl0eSBMSUtFID8gT1Igc291cmNlIExJS0UgPykiOwogICAgICBjb25zdCBzID0gYCUke3NlYXJjaH0lYDsKICAgICAgc2VhcmNoUGFyYW1zLnB1c2gocywgcywgcywgcyk7CiAgICB9CgogICAgLy8gVG90YWwgY29uIGZpbHRybyBkZSBiw7pzcXVlZGEgKHBhcmEgcmVjb3Jkc0ZpbHRlcmVkKQogICAgY29uc3QgW1t7IHJlY29yZHNGaWx0ZXJlZCB9XV0gPSAoYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUIENPVU5UKCopIEFTIHJlY29yZHNGaWx0ZXJlZCBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX1gLCBzZWFyY2hQYXJhbXMKICAgICkpIGFzIGFueTsKCiAgICAvLyBEYXRvcyBkZSBsYSBww6FnaW5hCiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgIGBTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgJHt3aGVyZX0gT1JERVIgQlkgJHtvcmRlckZpZWxkfSAke3NhZmVEaXJ9IExJTUlUID8gT0ZGU0VUID9gLAogICAgICBbLi4uc2VhcmNoUGFyYW1zLCBsZW5ndGgsIHN0YXJ0XQogICAgKTsKCiAgICByZXR1cm4gewogICAgICBkcmF3LAogICAgICByZWNvcmRzVG90YWw6IE51bWJlcihyZWNvcmRzVG90YWwpLAogICAgICByZWNvcmRzRmlsdGVyZWQ6IE51bWJlcihyZWNvcmRzRmlsdGVyZWQpLAogICAgICBkYXRhOiByb3dzIGFzIFByb3BlcnR5W10sCiAgICB9OwogIH0sCn07Cg==","afterExisted":true,"afterHash":"33b7ab636a7a25432893cb27e6e7c1656b622d3df23c38ea39ef8856f403ef97","afterContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICIuLi90eXBlcy9wcm9wZXJ0eSI7CmltcG9ydCB7IFJvd0RhdGFQYWNrZXQsIFJlc3VsdFNldEhlYWRlciB9IGZyb20gIm15c3FsMiI7CgpleHBvcnQgY29uc3QgUHJvcGVydHlNb2RlbCA9IHsKICBhc3luYyBmaW5kQWxsKGZpbHRlcnM/OiBQYXJ0aWFsPFByb3BlcnR5Pik6IFByb21pc2U8UHJvcGVydHlbXT4gewogICAgbGV0IHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwiOwogICAgY29uc3QgcGFyYW1zOiBhbnlbXSA9IFtdOwogICAgaWYgKGZpbHRlcnM/Lm11bmljaXBhbGl0eSkgewogICAgICBxdWVyeSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsKICAgICAgcGFyYW1zLnB1c2goYCUke2ZpbHRlcnMubXVuaWNpcGFsaXR5fSVgKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5wcm9wZXJ0eV90eXBlKSB7CiAgICAgIHF1ZXJ5ICs9ICIgQU5EIHByb3BlcnR5X3R5cGUgPSA/IjsKICAgICAgcGFyYW1zLnB1c2goZmlsdGVycy5wcm9wZXJ0eV90eXBlKTsKICAgIH0KICAgIGlmIChmaWx0ZXJzPy5vcGVyYXRpb25fdHlwZSkgewogICAgICBxdWVyeSArPSAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iOwogICAgICBwYXJhbXMucHVzaChmaWx0ZXJzLm9wZXJhdGlvbl90eXBlKTsKICAgIH0KICAgIHF1ZXJ5ICs9ICIgT1JERVIgQlkgQ09BTEVTQ0UobGFzdF9zZWVuX2F0LCB1cGRhdGVkX2F0KSBERVNDIjsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkocXVlcnksIHBhcmFtcyk7CiAgICByZXR1cm4gcm93cyBhcyBQcm9wZXJ0eVtdOwogIH0sCgogIC8qKiBFc3RhZMOtc3RpY2FzIGdsb2JhbGVzIGRlbCBkYXNoYm9hcmQgKHNpbiBjYXJnYXIgdG9kYXMgbGFzIGZpbGFzKSAqLwogIGFzeW5jIGdldFN0YXRzKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyOyBzb3VyY2VfY291bnQ6IG51bWJlciB9PiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtbc11dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyB0b3RhbCwKICAgICAgICAgICAgICBDT0FMRVNDRShBVkcocHJpY2UpLDApIEFTIGF2Z19wcmljZSwKICAgICAgICAgICAgICBDT0FMRVNDRShNSU4ocHJpY2UpLDApIEFTIG1pbl9wcmljZSwKICAgICAgICAgICAgICBDT1VOVChESVNUSU5DVCBzb3VyY2UpIEFTIHNvdXJjZV9jb3VudAogICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCR7d2hlcmVPcGVyYXRpb259YCwKICAgICAgb3BQYXJhbXMKICAgICkpIGFzIGFueTsKICAgIHJldHVybiB7CiAgICAgIHRvdGFsOiBOdW1iZXIocy50b3RhbCksCiAgICAgIGF2Z19wcmljZTogTnVtYmVyKHMuYXZnX3ByaWNlKSwKICAgICAgbWluX3ByaWNlOiBOdW1iZXIocy5taW5fcHJpY2UpLAogICAgICBzb3VyY2VfY291bnQ6IE51bWJlcihzLnNvdXJjZV9jb3VudCksCiAgICB9OwogIH0sCgogIC8qKiBAZGVwcmVjYXRlZCB1c2FyIGdldFN0YXRzKCkgKyBmaW5kUGFnaW5hdGVkRFQoKSBlbiBzdSBsdWdhciAqLwogIGFzeW5jIGZpbmRGb3JEYXNoYm9hcmQobGltaXQgPSA0MDApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlcjsgYXZnX3ByaWNlOiBudW1iZXI7IG1pbl9wcmljZTogbnVtYmVyIH0+IHsKICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgUHJvcGVydHlNb2RlbC5nZXRTdGF0cygpOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTlVMTCBPUkRFUiBCWSBDT0FMRVNDRShzY29yZSwwKSBERVNDLCBDT0FMRVNDRShsYXN0X3NlZW5fYXQsIHVwZGF0ZWRfYXQpIERFU0MgTElNSVQgP2AsCiAgICAgIFtsaW1pdF0KICAgICk7CiAgICByZXR1cm4geyByb3dzOiByb3dzIGFzIFByb3BlcnR5W10sIHRvdGFsOiBzdGF0cy50b3RhbCwgYXZnX3ByaWNlOiBzdGF0cy5hdmdfcHJpY2UsIG1pbl9wcmljZTogc3RhdHMubWluX3ByaWNlIH07CiAgfSwKCiAgLyoqIENhcmdhIG3DrW5pbWEgcGFyYSBlbCBtYXBhOiBzw7NsbyBjb2x1bW5hcyBuZWNlc2FyaWFzIHBhcmEgbG9zIG1hcmtlcnMgKi8KICBhc3luYyBmaW5kRm9yTWFwKG9wZXJhdGlvblR5cGU/OiAic2FsZSIgfCAicmVudCIpOiBQcm9taXNlPFBpY2s8UHJvcGVydHksICJpZCIgfCAidGl0bGUiIHwgInByaWNlIiB8ICJsYXQiIHwgImxuZyIgfCAic291cmNlIiB8ICJtdW5pY2lwYWxpdHkiIHwgInByb3BlcnR5X3R5cGUiIHwgImltYWdlX3VybCIgfCAib3BlcmF0aW9uX3R5cGUiPltdPiB7CiAgICBjb25zdCB3aGVyZU9wZXJhdGlvbiA9IG9wZXJhdGlvblR5cGUgPyAiIEFORCBvcGVyYXRpb25fdHlwZSA9ID8iIDogIiI7CiAgICBjb25zdCBvcFBhcmFtcyA9IG9wZXJhdGlvblR5cGUgPyBbb3BlcmF0aW9uVHlwZV0gOiBbXTsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBpZCwgdGl0bGUsIHByaWNlLCBsYXQsIGxuZywgc291cmNlLCBtdW5pY2lwYWxpdHksIHByb3BlcnR5X3R5cGUsIGltYWdlX3VybCwgb3BlcmF0aW9uX3R5cGUKICAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBsYXQgSVMgTk9UIE5VTEwgQU5EIGxuZyBJUyBOT1QgTlVMTCBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMCiAgICAgICAke3doZXJlT3BlcmF0aW9ufQogICAgICAgT1JERVIgQlkgQ09BTEVTQ0UobGFzdF9zZWVuX2F0LCB1cGRhdGVkX2F0KSBERVNDIExJTUlUIDIwMDBgLAogICAgICBvcFBhcmFtcwogICAgKTsKICAgIHJldHVybiByb3dzIGFzIGFueTsKICB9LAoKICBhc3luYyBmaW5kQnlJZChpZDogbnVtYmVyLCB1c2VySWQgPSAwKTogUHJvbWlzZTxQcm9wZXJ0eSB8IG51bGw+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoCiAgICAgIGBTRUxFQ1QgcC4qLCBDT0FMRVNDRShzLmlzX2Zhdm9yaXRlLCAwKSBBUyBpc19mYXZvcml0ZSwgcy5ub3RlcyBBUyBub3RlcwogICAgICAgICBGUk9NIHByb3BlcnRpZXMgcAogICAgICAgICBMRUZUIEpPSU4gdXNlcl9wcm9wZXJ0eV9zdGF0ZSBzIE9OIHMucHJvcGVydHlfaWQgPSBwLmlkIEFORCBzLnVzZXJfaWQgPSA/CiAgICAgICAgV0hFUkUgcC5pZCA9ID9gLAogICAgICBbdXNlcklkLCBpZF0KICAgICk7CiAgICBjb25zdCBhcnIgPSByb3dzIGFzIFByb3BlcnR5W107CiAgICByZXR1cm4gYXJyLmxlbmd0aCA+IDAgPyBhcnJbMF0gOiBudWxsOwogIH0sCgogIGFzeW5jIHVwc2VydFdpdGhTdGF0dXMocHJvcDogUHJvcGVydHkgJiB7IHByaWNlX3Blcl9tMj86IG51bWJlciB9KTogUHJvbWlzZTx7IGlkOiBudW1iZXI7IGlzTmV3OiBib29sZWFuIH0+IHsKICAgIGNvbnN0IHEgPSBgSU5TRVJUIElOVE8gcHJvcGVydGllcwogICAgICAodGl0bGUsIHByaWNlLCBsb2NhdGlvbiwgbXVuaWNpcGFsaXR5LCBwcm9wZXJ0eV90eXBlLCBvcGVyYXRpb25fdHlwZSwgcm9vbXMsIGJhdGhyb29tcywgc2l6ZV9tMiwgZGVzY3JpcHRpb24sIGltYWdlX3VybCwgdXJsLCBzb3VyY2UsIGxhdCwgbG5nLCBwcmljZV9wZXJfbTIsIHVwZGF0ZWRfYXQsIGxhc3Rfc2Vlbl9hdCkKICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBOT1coKSwgTk9XKCkpCiAgICAgIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFCiAgICAgICAgdGl0bGU9VkFMVUVTKHRpdGxlKSwgcHJpY2U9VkFMVUVTKHByaWNlKSwgbG9jYXRpb249VkFMVUVTKGxvY2F0aW9uKSwKICAgICAgICBtdW5pY2lwYWxpdHk9VkFMVUVTKG11bmljaXBhbGl0eSksIHByb3BlcnR5X3R5cGU9VkFMVUVTKHByb3BlcnR5X3R5cGUpLCBvcGVyYXRpb25fdHlwZT1WQUxVRVMob3BlcmF0aW9uX3R5cGUpLAogICAgICAgIHJvb21zPVZBTFVFUyhyb29tcyksIGJhdGhyb29tcz1WQUxVRVMoYmF0aHJvb21zKSwgc2l6ZV9tMj1WQUxVRVMoc2l6ZV9tMiksCiAgICAgICAgZGVzY3JpcHRpb249VkFMVUVTKGRlc2NyaXB0aW9uKSwgaW1hZ2VfdXJsPVZBTFVFUyhpbWFnZV91cmwpLAogICAgICAgIHNvdXJjZT1WQUxVRVMoc291cmNlKSwgbGF0PVZBTFVFUyhsYXQpLCBsbmc9VkFMVUVTKGxuZyksCiAgICAgICAgcHJpY2VfcGVyX20yPVZBTFVFUyhwcmljZV9wZXJfbTIpLCBkZWxldGVkX2F0PU5VTEwsIHVwZGF0ZWRfYXQ9Tk9XKCksIGxhc3Rfc2Vlbl9hdD1OT1coKSwKICAgICAgICBpZD1MQVNUX0lOU0VSVF9JRChpZClgOwogICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJlc3VsdFNldEhlYWRlcj4ocSwgWwogICAgICBwcm9wLnRpdGxlLCBwcm9wLnByaWNlLCBwcm9wLmxvY2F0aW9uLCBwcm9wLm11bmljaXBhbGl0eSB8fCBudWxsLAogICAgICBwcm9wLnByb3BlcnR5X3R5cGUsIHByb3Aub3BlcmF0aW9uX3R5cGUgfHwgInNhbGUiLCBwcm9wLnJvb21zIHx8IG51bGwsIHByb3AuYmF0aHJvb21zIHx8IG51bGwsIHByb3Auc2l6ZV9tMiB8fCBudWxsLAogICAgICBwcm9wLmRlc2NyaXB0aW9uIHx8IG51bGwsIHByb3AuaW1hZ2VfdXJsIHx8IG51bGwsIHByb3AudXJsLCBwcm9wLnNvdXJjZSwKICAgICAgcHJvcC5sYXQgfHwgbnVsbCwgcHJvcC5sbmcgfHwgbnVsbCwgcHJvcC5wcmljZV9wZXJfbTIgfHwgbnVsbCwKICAgIF0pOwogICAgcmV0dXJuIHsgaWQ6IHJlc3VsdC5pbnNlcnRJZCwgaXNOZXc6IHJlc3VsdC5hZmZlY3RlZFJvd3MgPT09IDEgfTsKICB9LAoKICBhc3luYyB1cHNlcnQocHJvcDogUHJvcGVydHkgJiB7IHByaWNlX3Blcl9tMj86IG51bWJlciB9KTogUHJvbWlzZTxudW1iZXI+IHsKICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0V2l0aFN0YXR1cyhwcm9wKTsKICAgIHJldHVybiByZXN1bHQuaWQ7CiAgfSwKCiAgLyoqIFNvZnQtZGVsZXRlOiBtYXJjYSBjb21vIGVsaW1pbmFkbyAocXVlZGEgZW4gYXJjaGl2byAzMCBkw61hcykgKi8KICBhc3luYyBkZWxldGVCeUlkKGlkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IHBvb2wucXVlcnkoIlVQREFURSBwcm9wZXJ0aWVzIFNFVCBkZWxldGVkX2F0ID0gTk9XKCkgV0hFUkUgaWQgPSA/IEFORCBkZWxldGVkX2F0IElTIE5VTEwiLCBbaWRdKTsKICB9LAoKICAvKiogUmVzdGF1cmEgdW5hIHByb3BpZWRhZCBlbGltaW5hZGEgYWwgbGlzdGFkbyBhY3Rpdm8gKi8KICBhc3luYyByZXN0b3JlQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJVUERBVEUgcHJvcGVydGllcyBTRVQgZGVsZXRlZF9hdCA9IE5VTEwgV0hFUkUgaWQgPSA/IiwgW2lkXSk7CiAgfSwKCiAgLyoqIEVsaW1pbmFjacOzbiBwZXJtYW5lbnRlIGUgaXJyZWN1cGVyYWJsZSAqLwogIGFzeW5jIGhhcmREZWxldGVCeUlkKGlkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBhd2FpdCBwb29sLmdldENvbm5lY3Rpb24oKTsKICAgIHRyeSB7CiAgICAgIGF3YWl0IGNvbm5lY3Rpb24uYmVnaW5UcmFuc2FjdGlvbigpOwogICAgICBhd2FpdCBjb25uZWN0aW9uLnF1ZXJ5KCJERUxFVEUgRlJPTSB1c2VyX3Byb3BlcnR5X3N0YXRlIFdIRVJFIHByb3BlcnR5X2lkID0gPyIsIFtpZF0pOwogICAgICBhd2FpdCBjb25uZWN0aW9uLnF1ZXJ5KCJERUxFVEUgRlJPTSBmaWx0ZXJfYWxlcnRfZGVsaXZlcmllcyBXSEVSRSBwcm9wZXJ0eV9pZCA9ID8iLCBbaWRdKTsKICAgICAgYXdhaXQgY29ubmVjdGlvbi5xdWVyeSgiREVMRVRFIEZST00gcHJpY2VfaGlzdG9yeSBXSEVSRSBwcm9wZXJ0eV9pZCA9ID8iLCBbaWRdKTsKICAgICAgYXdhaXQgY29ubmVjdGlvbi5xdWVyeSgiREVMRVRFIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLCBbaWRdKTsKICAgICAgYXdhaXQgY29ubmVjdGlvbi5jb21taXQoKTsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGF3YWl0IGNvbm5lY3Rpb24ucm9sbGJhY2soKTsKICAgICAgdGhyb3cgZXJyb3I7CiAgICB9IGZpbmFsbHkgewogICAgICBjb25uZWN0aW9uLnJlbGVhc2UoKTsKICAgIH0KICB9LAoKICAvKiogRGV2dWVsdmUgcHJvcGllZGFkZXMgZW4gZWwgYXJjaGl2byAoc29mdC1kZWxldGVkKSwgcGFnaW5hZGFzICovCiAgYXN5bmMgZmluZERlbGV0ZWQocGFnZSA9IDEsIHBlclBhZ2UgPSAxMDApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlciB9PiB7CiAgICBjb25zdCBvZmZzZXQgPSAocGFnZSAtIDEpICogcGVyUGFnZTsKICAgIGNvbnN0IFtbeyB0b3RhbCB9XV0gPSAoYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICAiU0VMRUNUIENPVU5UKCopIEFTIHRvdGFsIEZST00gcHJvcGVydGllcyBXSEVSRSBkZWxldGVkX2F0IElTIE5PVCBOVUxMIgogICAgKSkgYXMgYW55OwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGRlbGV0ZWRfYXQgSVMgTk9UIE5VTEwKICAgICAgIE9SREVSIEJZIGRlbGV0ZWRfYXQgREVTQyBMSU1JVCA/IE9GRlNFVCA/YCwKICAgICAgW3BlclBhZ2UsIG9mZnNldF0KICAgICk7CiAgICByZXR1cm4geyByb3dzOiByb3dzIGFzIFByb3BlcnR5W10sIHRvdGFsOiBOdW1iZXIodG90YWwpIH07CiAgfSwKCiAgLyoqIFB1cmdhIHByb3BpZWRhZGVzIGVsaW1pbmFkYXMgaGFjZSBtw6FzIGRlIDMwIGTDrWFzICovCiAgYXN5bmMgcHVyZ2VPbGREZWxldGVkKCk6IFByb21pc2U8bnVtYmVyPiB7CiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IHBvb2wucXVlcnk8UmVzdWx0U2V0SGVhZGVyPigKICAgICAgIkRFTEVURSBGUk9NIHByb3BlcnRpZXMgV0hFUkUgZGVsZXRlZF9hdCBJUyBOT1QgTlVMTCBBTkQgZGVsZXRlZF9hdCA8IERBVEVfU1VCKE5PVygpLCBJTlRFUlZBTCAzMCBEQVkpIgogICAgKTsKICAgIHJldHVybiByZXN1bHQuYWZmZWN0ZWRSb3dzOwogIH0sCgogIC8qKgogICAqIEFyY2hpdmEgKHNvZnQtZGVsZXRlKSBwcm9waWVkYWRlcyBkZSB1biBwb3J0YWwgeSBvcGVyYWNpw7NuIHF1ZSBOTyBmdWVyb24KICAgKiBkZXRlY3RhZGFzIGVuIGVsIMO6bHRpbW8gc2NyYXBpbmcgKHN1IGBsYXN0X3NlZW5fYXRgIGVzIGFudGVyaW9yIGFsIGluaWNpbykuCiAgICogQHBhcmFtIHNvdXJjZSAgIE5vbWJyZSBkZWwgcG9ydGFsLCBwLiBlai4gIklkZWFsaXN0YSIKICAgKiBAcGFyYW0gb3BlcmF0aW9uVHlwZSBPcGVyYWNpw7NuIGRlbCBjaWNsbzsgdmVudGEgbnVuY2EgZGViZSBhcmNoaXZhciBhbHF1aWxlcgogICAqIEBwYXJhbSBvbGRlclRoYW4gRmVjaGEgZGUgaW5pY2lvIGRlbCBzY3JhcGluZyDigJQgdG9kbyBsbyBubyBhY3R1YWxpemFkbyBkZXNkZSBlbnRvbmNlcyBzZSBhcmNoaXZhCiAgICogQHJldHVybnMgTsO6bWVybyBkZSBwcm9waWVkYWRlcyBhcmNoaXZhZGFzCiAgICovCiAgYXN5bmMgYXJjaGl2ZVN0YWxlQnlTb3VyY2UoCiAgICBzb3VyY2U6IHN0cmluZywKICAgIG9wZXJhdGlvblR5cGU6ICJzYWxlIiB8ICJyZW50IiwKICAgIG9sZGVyVGhhbjogRGF0ZQogICk6IFByb21pc2U8bnVtYmVyPiB7CiAgICAvLyBFeGlnaW1vcyBxdWUgbGEgcHJvcGllZGFkIGxsZXZlIEFMIE1FTk9TIDIgZMOtYXMgc2luIGFwYXJlY2VyIGVuIG5pbmfDum4gY2ljbG8KICAgIC8vIGRlIHNjcmFwaW5nIGFudGVzIGRlIGFyY2hpdmFybGEuIEVzdG8gZXZpdGEgcXVlIHVuIGZhbGxvIHB1bnR1YWwgZGVsIHNjcmFwZXIKICAgIC8vICg0MDMsIGFudGktYm90LCByZWQpIGJvcnJlIHByb3BpZWRhZGVzIHF1ZSBzaWd1ZW4gcHVibGljYWRhcyBlbiBlbCBwb3J0YWwuCiAgICBjb25zdCBncmFjZVBlcmlvZE1zID0gMiAqIDI0ICogNjAgKiA2MCAqIDEwMDA7IC8vIDIgZMOtYXMgZW4gbXMKICAgIGNvbnN0IHRocmVzaG9sZCA9IG5ldyBEYXRlKG9sZGVyVGhhbi5nZXRUaW1lKCkgLSBncmFjZVBlcmlvZE1zKTsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICBgVVBEQVRFIHByb3BlcnRpZXMgU0VUIGRlbGV0ZWRfYXQgPSBOT1coKQogICAgICAgV0hFUkUgc291cmNlID0gPyBBTkQgb3BlcmF0aW9uX3R5cGUgPSA/CiAgICAgICAgIEFORCBDT0FMRVNDRShsYXN0X3NlZW5fYXQsIHVwZGF0ZWRfYXQpIDwgPyBBTkQgZGVsZXRlZF9hdCBJUyBOVUxMYCwKICAgICAgW3NvdXJjZSwgb3BlcmF0aW9uVHlwZSwgdGhyZXNob2xkXQogICAgKTsKICAgIHJldHVybiByZXN1bHQuYWZmZWN0ZWRSb3dzOwogIH0sCgogIGFzeW5jIGZpbHRlckFkdmFuY2VkKG1pbl9wcmljZT86IG51bWJlciwgbWF4X3ByaWNlPzogbnVtYmVyLCBwcm9wZXJ0eV90eXBlPzogc3RyaW5nLCBtdW5pY2lwYWxpdHk/OiBzdHJpbmcsIG1pbl9yb29tcz86IG51bWJlciwgbWluX3NpemVfbTI/OiBudW1iZXIsIG9wZXJhdGlvbl90eXBlPzogInNhbGUiIHwgInJlbnQiLCB2YWxlbmNpYV96b25lPzogc3RyaW5nLCBzb3VyY2U/OiBzdHJpbmcpOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIGxldCBxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIHByb3BlcnRpZXMgV0hFUkUgZGVsZXRlZF9hdCBJUyBOVUxMIjsKICAgIGNvbnN0IHBhcmFtczogYW55W10gPSBbXTsKICAgIGlmIChtaW5fcHJpY2UgIT0gbnVsbCkgeyBxdWVyeSArPSAiIEFORCBwcmljZSA+PSA/IjsgcGFyYW1zLnB1c2gobWluX3ByaWNlKTsgfQogICAgaWYgKG1heF9wcmljZSAhPSBudWxsKSB7IHF1ZXJ5ICs9ICIgQU5EIHByaWNlIDw9ID8iOyBwYXJhbXMucHVzaChtYXhfcHJpY2UpOyB9CiAgICBpZiAocHJvcGVydHlfdHlwZSkgeyBxdWVyeSArPSAiIEFORCBwcm9wZXJ0eV90eXBlID0gPyI7IHBhcmFtcy5wdXNoKHByb3BlcnR5X3R5cGUpOyB9CiAgICBpZiAobXVuaWNpcGFsaXR5KSB7IHF1ZXJ5ICs9ICIgQU5EIG11bmljaXBhbGl0eSBMSUtFID8iOyBwYXJhbXMucHVzaChgJSR7bXVuaWNpcGFsaXR5fSVgKTsgfQogICAgaWYgKG9wZXJhdGlvbl90eXBlKSB7IHF1ZXJ5ICs9ICIgQU5EIG9wZXJhdGlvbl90eXBlID0gPyI7IHBhcmFtcy5wdXNoKG9wZXJhdGlvbl90eXBlKTsgfQogICAgaWYgKHNvdXJjZSkgeyBxdWVyeSArPSAiIEFORCBzb3VyY2UgPSA/IjsgcGFyYW1zLnB1c2goc291cmNlKTsgfQogICAgaWYgKHZhbGVuY2lhX3pvbmUpIHsKICAgICAgcXVlcnkgKz0gIiBBTkQgbXVuaWNpcGFsaXR5IExJS0UgJyVWYWxlbmNpYSUnIEFORCAobG9jYXRpb24gTElLRSA/IE9SIHRpdGxlIExJS0UgPykiOwogICAgICBwYXJhbXMucHVzaChgJSR7dmFsZW5jaWFfem9uZX0lYCwgYCUke3ZhbGVuY2lhX3pvbmV9JWApOwogICAgfQogICAgaWYgKG1pbl9yb29tcyAhPSBudWxsKSB7IHF1ZXJ5ICs9ICIgQU5EIHJvb21zID49ID8iOyBwYXJhbXMucHVzaChtaW5fcm9vbXMpOyB9CiAgICBpZiAobWluX3NpemVfbTIgIT0gbnVsbCkgeyBxdWVyeSArPSAiIEFORCBzaXplX20yID49ID8iOyBwYXJhbXMucHVzaChtaW5fc2l6ZV9tMik7IH0KICAgIHF1ZXJ5ICs9ICIgT1JERVIgQlkgcHJpY2UgQVNDIjsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkocXVlcnksIHBhcmFtcyk7CiAgICByZXR1cm4gcm93cyBhcyBQcm9wZXJ0eVtdOwogIH0sCgogIGFzeW5jIHRvZ2dsZUZhdm9yaXRlKGlkOiBudW1iZXIsIHVzZXJJZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICBgSU5TRVJUIElOVE8gdXNlcl9wcm9wZXJ0eV9zdGF0ZSAodXNlcl9pZCwgcHJvcGVydHlfaWQsIGlzX2Zhdm9yaXRlKQogICAgICAgVkFMVUVTICg/LCA/LCAxKQogICAgICAgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgaXNfZmF2b3JpdGUgPSBJRihpc19mYXZvcml0ZSA9IDEsIDAsIDEpYCwKICAgICAgW3VzZXJJZCwgaWRdCiAgICApOwogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICAiU0VMRUNUIGlzX2Zhdm9yaXRlIEZST00gdXNlcl9wcm9wZXJ0eV9zdGF0ZSBXSEVSRSB1c2VyX2lkID0gPyBBTkQgcHJvcGVydHlfaWQgPSA/IiwKICAgICAgW3VzZXJJZCwgaWRdCiAgICApOwogICAgcmV0dXJuIEJvb2xlYW4ocm93c1swXT8uaXNfZmF2b3JpdGUpOwogIH0sCgogIGFzeW5jIHVwZGF0ZU5vdGVzKGlkOiBudW1iZXIsIHVzZXJJZDogbnVtYmVyLCBub3Rlczogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICBgSU5TRVJUIElOVE8gdXNlcl9wcm9wZXJ0eV9zdGF0ZSAodXNlcl9pZCwgcHJvcGVydHlfaWQsIG5vdGVzKQogICAgICAgVkFMVUVTICg/LCA/LCA/KQogICAgICAgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgbm90ZXMgPSBWQUxVRVMobm90ZXMpYCwKICAgICAgW3VzZXJJZCwgaWQsIG5vdGVzIHx8IG51bGxdCiAgICApOwogIH0sCgogIGFzeW5jIGZpbmRGYXZvcml0ZXModXNlcklkOiBudW1iZXIpOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIGNvbnN0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoCiAgICAgIGBTRUxFQ1QgcC4qLCBzLmlzX2Zhdm9yaXRlLCBzLm5vdGVzCiAgICAgICAgIEZST00gcHJvcGVydGllcyBwCiAgICAgICAgIEpPSU4gdXNlcl9wcm9wZXJ0eV9zdGF0ZSBzIE9OIHMucHJvcGVydHlfaWQgPSBwLmlkIEFORCBzLnVzZXJfaWQgPSA/IEFORCBzLmlzX2Zhdm9yaXRlID0gMQogICAgICAgIFdIRVJFIHAuZGVsZXRlZF9hdCBJUyBOVUxMCiAgICAgICAgT1JERVIgQlkgcC5zY29yZSBERVNDLCBDT0FMRVNDRShwLmxhc3Rfc2Vlbl9hdCwgcC51cGRhdGVkX2F0KSBERVNDYCwKICAgICAgW3VzZXJJZF0KICAgICk7CiAgICByZXR1cm4gcm93cyBhcyBQcm9wZXJ0eVtdOwogIH0sCgogIGFzeW5jIGZpbmRQYWdpbmF0ZWQoCiAgICBwYWdlOiBudW1iZXIsCiAgICBwZXJQYWdlOiBudW1iZXIsCiAgICBzZWFyY2g/OiBzdHJpbmcKICApOiBQcm9taXNlPHsgcm93czogUHJvcGVydHlbXTsgdG90YWw6IG51bWJlciB9PiB7CiAgICBjb25zdCBvZmZzZXQgPSAocGFnZSAtIDEpICogcGVyUGFnZTsKICAgIGxldCB3aGVyZSA9ICJXSEVSRSBkZWxldGVkX2F0IElTIE5VTEwiOwogICAgY29uc3QgcGFyYW1zOiBhbnlbXSA9IFtdOwogICAgaWYgKHNlYXJjaCkgewogICAgICB3aGVyZSArPSAiIEFORCAodGl0bGUgTElLRSA/IE9SIGxvY2F0aW9uIExJS0UgPyBPUiBtdW5pY2lwYWxpdHkgTElLRSA/KSI7CiAgICAgIHBhcmFtcy5wdXNoKGAlJHtzZWFyY2h9JWAsIGAlJHtzZWFyY2h9JWAsIGAlJHtzZWFyY2h9JWApOwogICAgfQogICAgY29uc3QgW1t7IHRvdGFsIH1dXSA9IChhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oCiAgICAgIGBTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwgRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9YCwKICAgICAgcGFyYW1zCiAgICApKSBhcyBhbnk7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KAogICAgICBgU0VMRUNUICogRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9IE9SREVSIEJZIENPQUxFU0NFKGxhc3Rfc2Vlbl9hdCwgdXBkYXRlZF9hdCkgREVTQyBMSU1JVCA/IE9GRlNFVCA/YCwKICAgICAgWy4uLnBhcmFtcywgcGVyUGFnZSwgb2Zmc2V0XQogICAgKTsKICAgIHJldHVybiB7IHJvd3M6IHJvd3MgYXMgUHJvcGVydHlbXSwgdG90YWw6IE51bWJlcih0b3RhbCkgfTsKICB9LAoKICAvKioKICAgKiBFbmRwb2ludCBwcmluY2lwYWwgcGFyYSBEYXRhVGFibGVzIHNlcnZlci1zaWRlLgogICAqIFNvcG9ydGEgYsO6c3F1ZWRhIGdsb2JhbCwgZmlsdHJvcyBwb3IgY29sdW1uYSwgb3JkZW5hY2nDs24geSBwYWdpbmFjacOzbi4KICAgKiBDdWFuZG8gZGVsZXRlZD10cnVlIGRldnVlbHZlIGVsIGFyY2hpdm8gZGUgZWxpbWluYWRvcy4KICAgKi8KICBhc3luYyBmaW5kUGFnaW5hdGVkRFQocGFyYW1zOiB7CiAgICBkcmF3OiBudW1iZXI7CiAgICBzdGFydDogbnVtYmVyOwogICAgbGVuZ3RoOiBudW1iZXI7CiAgICBzZWFyY2g/OiBzdHJpbmc7CiAgICBvcmRlckNvbD86IG51bWJlcjsKICAgIG9yZGVyRGlyPzogImFzYyIgfCAiZGVzYyI7CiAgICBtdW5pY2lwYWxpdHk/OiBzdHJpbmc7CiAgICBwcm9wZXJ0eV90eXBlPzogc3RyaW5nOwogICAgbWluX3ByaWNlPzogbnVtYmVyOwogICAgbWF4X3ByaWNlPzogbnVtYmVyOwogICAgbWluX3Jvb21zPzogbnVtYmVyOwogICAgc291cmNlPzogc3RyaW5nOwogICAgZGVsZXRlZD86IGJvb2xlYW47CiAgICBvcGVyYXRpb25fdHlwZT86ICJzYWxlIiB8ICJyZW50IjsKICAgIHZhbGVuY2lhX3pvbmU/OiBzdHJpbmc7CiAgICB1c2VySWQ/OiBudW1iZXI7CiAgfSk6IFByb21pc2U8eyBkcmF3OiBudW1iZXI7IHJlY29yZHNUb3RhbDogbnVtYmVyOyByZWNvcmRzRmlsdGVyZWQ6IG51bWJlcjsgZGF0YTogUHJvcGVydHlbXSB9PiB7CiAgICBjb25zdCB7CiAgICAgIGRyYXcsIHN0YXJ0LCBsZW5ndGgsIHNlYXJjaCwKICAgICAgb3JkZXJDb2wgPSAyLCBvcmRlckRpciA9ICJhc2MiLAogICAgICBtdW5pY2lwYWxpdHksIHByb3BlcnR5X3R5cGUsCiAgICAgIG1pbl9wcmljZSwgbWF4X3ByaWNlLCBtaW5fcm9vbXMsIHNvdXJjZSwgb3BlcmF0aW9uX3R5cGUsIHZhbGVuY2lhX3pvbmUsCiAgICAgIGRlbGV0ZWQgPSBmYWxzZSwKICAgICAgdXNlcklkID0gMCwKICAgIH0gPSBwYXJhbXM7CgogICAgLy8gQ29sdW1uYXMgb3JkZW5hYmxlcyAow61uZGljZSBEVCDihpIgY2FtcG8gREIpCiAgICBjb25zdCBzb3J0YWJsZUZpZWxkczogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHsKICAgICAgMTogInRpdGxlIiwgMjogInByaWNlIiwgMzogInByaWNlX3Blcl9tMiIsIDQ6ICJzY29yZSIsCiAgICAgIDU6ICJtdW5pY2lwYWxpdHkiLCA2OiAicHJvcGVydHlfdHlwZSIsIDc6ICJyb29tcyIsIDg6ICJzaXplX20yIiwgOTogInNvdXJjZSIsCiAgICB9OwogICAgY29uc3Qgb3JkZXJGaWVsZCA9IHNvcnRhYmxlRmllbGRzW29yZGVyQ29sXSA/PyAicHJpY2UiOwogICAgY29uc3Qgc2FmZURpciA9IG9yZGVyRGlyID09PSAiZGVzYyIgPyAiREVTQyIgOiAiQVNDIjsKCiAgICAvLyBCYXNlIFdIRVJFCiAgICBjb25zdCBkZWxldGVkQ29uZGl0aW9uID0gZGVsZXRlZCA/ICJkZWxldGVkX2F0IElTIE5PVCBOVUxMIiA6ICJkZWxldGVkX2F0IElTIE5VTEwiOwogICAgbGV0IHdoZXJlID0gYFdIRVJFICR7ZGVsZXRlZENvbmRpdGlvbn1gOwogICAgY29uc3QgcXVlcnlQYXJhbXM6IGFueVtdID0gW107CgogICAgLy8gRmlsdHJvcyBwZXJzb25hbGl6YWRvcwogICAgaWYgKG11bmljaXBhbGl0eSkgeyB3aGVyZSArPSAiIEFORCBtdW5pY2lwYWxpdHkgTElLRSA/IjsgcXVlcnlQYXJhbXMucHVzaChgJSR7bXVuaWNpcGFsaXR5fSVgKTsgfQogICAgaWYgKHByb3BlcnR5X3R5cGUpIHsgd2hlcmUgKz0gIiBBTkQgcHJvcGVydHlfdHlwZSA9ID8iOyBxdWVyeVBhcmFtcy5wdXNoKHByb3BlcnR5X3R5cGUpOyB9CiAgICBpZiAobWluX3ByaWNlICE9IG51bGwgJiYgbWluX3ByaWNlID4gMCkgeyB3aGVyZSArPSAiIEFORCBwcmljZSA+PSA/IjsgcXVlcnlQYXJhbXMucHVzaChtaW5fcHJpY2UpOyB9CiAgICBpZiAobWF4X3ByaWNlICE9IG51bGwgJiYgbWF4X3ByaWNlID4gMCkgeyB3aGVyZSArPSAiIEFORCBwcmljZSA8PSA/IjsgcXVlcnlQYXJhbXMucHVzaChtYXhfcHJpY2UpOyB9CiAgICBpZiAobWluX3Jvb21zICE9IG51bGwgJiYgbWluX3Jvb21zID4gMCkgeyB3aGVyZSArPSAiIEFORCByb29tcyA+PSA/IjsgcXVlcnlQYXJhbXMucHVzaChtaW5fcm9vbXMpOyB9CiAgICBpZiAoc291cmNlKSB7IHdoZXJlICs9ICIgQU5EIHNvdXJjZSBMSUtFID8iOyBxdWVyeVBhcmFtcy5wdXNoKGAlJHtzb3VyY2V9JWApOyB9CiAgICBpZiAob3BlcmF0aW9uX3R5cGUpIHsgd2hlcmUgKz0gIiBBTkQgb3BlcmF0aW9uX3R5cGUgPSA/IjsgcXVlcnlQYXJhbXMucHVzaChvcGVyYXRpb25fdHlwZSk7IH0KICAgIGlmICh2YWxlbmNpYV96b25lKSB7CiAgICAgIHdoZXJlICs9ICIgQU5EIG11bmljaXBhbGl0eSBMSUtFICclVmFsZW5jaWElJyBBTkQgKGxvY2F0aW9uIExJS0UgPyBPUiB0aXRsZSBMSUtFID8pIjsKICAgICAgcXVlcnlQYXJhbXMucHVzaChgJSR7dmFsZW5jaWFfem9uZX0lYCwgYCUke3ZhbGVuY2lhX3pvbmV9JWApOwogICAgfQoKICAgIC8vIFRvdGFsIHNpbiBmaWx0cm8gZGUgYsO6c3F1ZWRhIChwYXJhIHJlY29yZHNUb3RhbCkKICAgIGNvbnN0IFtbeyByZWNvcmRzVG90YWwgfV1dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyByZWNvcmRzVG90YWwgRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9YCwgcXVlcnlQYXJhbXMKICAgICkpIGFzIGFueTsKCiAgICAvLyBCw7pzcXVlZGEgZ2xvYmFsCiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBbLi4ucXVlcnlQYXJhbXNdOwogICAgaWYgKHNlYXJjaCkgewogICAgICB3aGVyZSArPSAiIEFORCAodGl0bGUgTElLRSA/IE9SIGxvY2F0aW9uIExJS0UgPyBPUiBtdW5pY2lwYWxpdHkgTElLRSA/IE9SIHNvdXJjZSBMSUtFID8pIjsKICAgICAgY29uc3QgcyA9IGAlJHtzZWFyY2h9JWA7CiAgICAgIHNlYXJjaFBhcmFtcy5wdXNoKHMsIHMsIHMsIHMpOwogICAgfQoKICAgIC8vIFRvdGFsIGNvbiBmaWx0cm8gZGUgYsO6c3F1ZWRhIChwYXJhIHJlY29yZHNGaWx0ZXJlZCkKICAgIGNvbnN0IFtbeyByZWNvcmRzRmlsdGVyZWQgfV1dID0gKGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPigKICAgICAgYFNFTEVDVCBDT1VOVCgqKSBBUyByZWNvcmRzRmlsdGVyZWQgRlJPTSBwcm9wZXJ0aWVzICR7d2hlcmV9YCwgc2VhcmNoUGFyYW1zCiAgICApKSBhcyBhbnk7CgogICAgLy8gRGF0b3MgZGUgbGEgcMOhZ2luYQogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KAogICAgICBgU0VMRUNUIHByb3BlcnRpZXMuKiwKICAgICAgICAgICAgICBDT0FMRVNDRSgoU0VMRUNUIHMuaXNfZmF2b3JpdGUgRlJPTSB1c2VyX3Byb3BlcnR5X3N0YXRlIHMgV0hFUkUgcy51c2VyX2lkID0gPyBBTkQgcy5wcm9wZXJ0eV9pZCA9IHByb3BlcnRpZXMuaWQpLCAwKSBBUyBpc19mYXZvcml0ZSwKICAgICAgICAgICAgICAoU0VMRUNUIHMubm90ZXMgRlJPTSB1c2VyX3Byb3BlcnR5X3N0YXRlIHMgV0hFUkUgcy51c2VyX2lkID0gPyBBTkQgcy5wcm9wZXJ0eV9pZCA9IHByb3BlcnRpZXMuaWQpIEFTIG5vdGVzCiAgICAgICAgIEZST00gcHJvcGVydGllcyAke3doZXJlfSBPUkRFUiBCWSAke29yZGVyRmllbGR9ICR7c2FmZURpcn0gTElNSVQgPyBPRkZTRVQgP2AsCiAgICAgIFt1c2VySWQsIHVzZXJJZCwgLi4uc2VhcmNoUGFyYW1zLCBsZW5ndGgsIHN0YXJ0XQogICAgKTsKCiAgICByZXR1cm4gewogICAgICBkcmF3LAogICAgICByZWNvcmRzVG90YWw6IE51bWJlcihyZWNvcmRzVG90YWwpLAogICAgICByZWNvcmRzRmlsdGVyZWQ6IE51bWJlcihyZWNvcmRzRmlsdGVyZWQpLAogICAgICBkYXRhOiByb3dzIGFzIFByb3BlcnR5W10sCiAgICB9OwogIH0sCn07Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\models\\userModel.ts","beforeExisted":true,"beforeHash":"cefd044d0c8194084a9fec9425162cdd4e20b40a1c1aa277532c9e0b01bd5954","beforeContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IGJjcnlwdCBmcm9tICJiY3J5cHRqcyI7CgpleHBvcnQgaW50ZXJmYWNlIFVzZXIgewogIGlkPzogbnVtYmVyOwogIHVzZXJuYW1lOiBzdHJpbmc7CiAgcGFzc3dvcmQ6IHN0cmluZzsKICBlbWFpbDogc3RyaW5nOwogIGNyZWF0ZWRfYXQ/OiBEYXRlOwp9CgpleHBvcnQgY29uc3QgVXNlck1vZGVsID0gewogIGFzeW5jIGZpbmRCeVVzZXJuYW1lKHVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIHVzZXJuYW1lID0gPyIsIFt1c2VybmFtZV0pOwogICAgY29uc3QgYXJyID0gcm93cyBhcyBVc2VyW107CiAgICByZXR1cm4gYXJyLmxlbmd0aCA+IDAgPyBhcnJbMF0gOiBudWxsOwogIH0sCgogIGFzeW5jIGZpbmRCeUlkKGlkOiBudW1iZXIpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7CiAgICBjb25zdCBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIGlkID0gPyIsIFtpZF0pOwogICAgY29uc3QgYXJyID0gcm93cyBhcyBVc2VyW107CiAgICByZXR1cm4gYXJyLmxlbmd0aCA+IDAgPyBhcnJbMF0gOiBudWxsOwogIH0sCgogIGFzeW5jIGNyZWF0ZSh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxVc2VyPiB7CiAgICBjb25zdCBoYXNoID0gYXdhaXQgYmNyeXB0Lmhhc2gocGFzc3dvcmQsIDEwKTsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeSgKICAgICAgIklOU0VSVCBJTlRPIHVzZXJzICh1c2VybmFtZSwgcGFzc3dvcmQsIGVtYWlsKSBWQUxVRVMgKD8sID8sID8pIiwKICAgICAgW3VzZXJuYW1lLCBoYXNoLCBlbWFpbF0KICAgICk7CiAgICBjb25zdCByID0gcmVzdWx0IGFzIGFueTsKICAgIHJldHVybiB7IGlkOiByLmluc2VydElkLCB1c2VybmFtZSwgcGFzc3dvcmQ6IGhhc2gsIGVtYWlsIH07CiAgfSwKCiAgYXN5bmMgdmVyaWZ5UGFzc3dvcmQocGxhaW5UZXh0OiBzdHJpbmcsIGhhc2g6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gewogICAgcmV0dXJuIGJjcnlwdC5jb21wYXJlKHBsYWluVGV4dCwgaGFzaCk7CiAgfQp9Ow0K","afterExisted":true,"afterHash":"da6dc4487b49be62c5f16f02474613c4554d5f9eaa071779db12535c8fdfa57f","afterContent":"aW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IGJjcnlwdCBmcm9tICJiY3J5cHRqcyI7CgpleHBvcnQgaW50ZXJmYWNlIFVzZXIgewogIGlkPzogbnVtYmVyOwogIHVzZXJuYW1lOiBzdHJpbmc7CiAgcGFzc3dvcmQ6IHN0cmluZzsKICBlbWFpbDogc3RyaW5nOwogIHJvbGU/OiAib3BlcmF0b3IiIHwgImlhX2FkbWluIjsKICBjcmVhdGVkX2F0PzogRGF0ZTsKfQoKZXhwb3J0IGNvbnN0IFVzZXJNb2RlbCA9IHsKICBhc3luYyBmaW5kQnlVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKTogUHJvbWlzZTxVc2VyIHwgbnVsbD4gewogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeSgiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSB1c2VybmFtZSA9ID8iLCBbdXNlcm5hbWVdKTsKICAgIGNvbnN0IGFyciA9IHJvd3MgYXMgVXNlcltdOwogICAgcmV0dXJuIGFyci5sZW5ndGggPiAwID8gYXJyWzBdIDogbnVsbDsKICB9LAoKICBhc3luYyBmaW5kQnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTxVc2VyIHwgbnVsbD4gewogICAgY29uc3QgW3Jvd3NdID0gYXdhaXQgcG9vbC5xdWVyeSgiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSBpZCA9ID8iLCBbaWRdKTsKICAgIGNvbnN0IGFyciA9IHJvd3MgYXMgVXNlcltdOwogICAgcmV0dXJuIGFyci5sZW5ndGggPiAwID8gYXJyWzBdIDogbnVsbDsKICB9LAoKICBhc3luYyBjcmVhdGUodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgZW1haWw6IHN0cmluZywgcm9sZTogIm9wZXJhdG9yIiB8ICJpYV9hZG1pbiIgPSAib3BlcmF0b3IiKTogUHJvbWlzZTxVc2VyPiB7CiAgICBjb25zdCBoYXNoID0gYXdhaXQgYmNyeXB0Lmhhc2gocGFzc3dvcmQsIDEwKTsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeSgKICAgICAgIklOU0VSVCBJTlRPIHVzZXJzICh1c2VybmFtZSwgcGFzc3dvcmQsIGVtYWlsLCByb2xlKSBWQUxVRVMgKD8sID8sID8sID8pIiwKICAgICAgW3VzZXJuYW1lLCBoYXNoLCBlbWFpbCwgcm9sZV0KICAgICk7CiAgICBjb25zdCByID0gcmVzdWx0IGFzIGFueTsKICAgIHJldHVybiB7IGlkOiByLmluc2VydElkLCB1c2VybmFtZSwgcGFzc3dvcmQ6IGhhc2gsIGVtYWlsLCByb2xlIH07CiAgfSwKCiAgYXN5bmMgdmVyaWZ5UGFzc3dvcmQocGxhaW5UZXh0OiBzdHJpbmcsIGhhc2g6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gewogICAgcmV0dXJuIGJjcnlwdC5jb21wYXJlKHBsYWluVGV4dCwgaGFzaCk7CiAgfQp9Ow0K","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\aiLearningService.ts","beforeExisted":true,"beforeHash":"5b1d7b9a959c0b45d19e9c26b4908ac4db784d793a4dd44ba6a9a19c8722ec84","beforeContent":"LyoqDQogKiBDYXBhIGRlIGFwcmVuZGl6YWplIG9wZXJhdGl2bzogc2XDsWFsZXMgZGVsIHNjcmFwZXIg4oaSIHByb3B1ZXN0YXMg4oaSIFJBRyDihpIgYWdlbnRlcyBjw7NkaWdvLg0KICogUGVyc2lzdGVuY2lhIGxvY2FsIGVuIGRhdGEvYWktbGVhcm5pbmcvIChzaW4gZGVwZW5kZW5jaWEgZGUgcHJvZCkuDQogKi8NCmltcG9ydCBmcyBmcm9tICJmcy9wcm9taXNlcyI7DQppbXBvcnQgcGF0aCBmcm9tICJwYXRoIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7DQppbXBvcnQgeyBSb3dEYXRhUGFja2V0IH0gZnJvbSAibXlzcWwyIjsNCmltcG9ydCBQcm9wZXJ0eVNlcnZpY2UgZnJvbSAiLi9wcm9wZXJ0eVNlcnZpY2UiOw0KaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOw0KaW1wb3J0IHsgZ2V0U2NoZWR1bGVyU3RhdHVzIH0gZnJvbSAiLi9zY2hlZHVsZXJTZXJ2aWNlIjsNCmltcG9ydCB7IHJlY29tbWVuZFRhc2ssIGJ1aWxkQnJpZGdlRGVlcExpbmsgfSBmcm9tICIuL3N1cGVydmlzb3JBaVNlcnZpY2UiOw0KDQpjb25zdCBEQVRBX0RJUiA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAiZGF0YSIsICJhaS1sZWFybmluZyIpOw0KY29uc3QgRkVFREJBQ0tfRklMRSA9IHBhdGguam9pbihEQVRBX0RJUiwgImZlZWRiYWNrLmpzb24iKTsNCmNvbnN0IFNOQVBTSE9UX0ZJTEUgPSBwYXRoLmpvaW4oREFUQV9ESVIsICJsYXN0LXNuYXBzaG90Lmpzb24iKTsNCg0KZXhwb3J0IGludGVyZmFjZSBBaVByb3Bvc2FsIHsNCiAgaWQ6IHN0cmluZzsNCiAgcHJpb3JpdHk6ICJoaWdoIiB8ICJtZWRpdW0iIHwgImxvdyI7DQogIGFnZW50OiAiY29kZSIgfCAib3BzIiB8ICJyZXNlYXJjaCI7DQogIHRpdGxlOiBzdHJpbmc7DQogIHJlYXNvbjogc3RyaW5nOw0KICB0YXNrOiBzdHJpbmc7DQogIHNpZ25hbHM6IHN0cmluZ1tdOw0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIEZlZWRiYWNrRW50cnkgew0KICBwcm9wb3NhbElkOiBzdHJpbmc7DQogIHJhdGluZzogMSB8IC0xOw0KICBub3RlPzogc3RyaW5nOw0KICBhdDogc3RyaW5nOw0KfQ0KDQphc3luYyBmdW5jdGlvbiBlbnN1cmVEYXRhRGlyKCk6IFByb21pc2U8dm9pZD4gew0KICBhd2FpdCBmcy5ta2RpcihEQVRBX0RJUiwgeyByZWN1cnNpdmU6IHRydWUgfSk7DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIHJlYWRKc29uPFQ+KGZpbGU6IHN0cmluZywgZmFsbGJhY2s6IFQpOiBQcm9taXNlPFQ+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCByYXcgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlLCAidXRmOCIpOw0KICAgIHJldHVybiBKU09OLnBhcnNlKHJhdykgYXMgVDsNCiAgfSBjYXRjaCB7DQogICAgcmV0dXJuIGZhbGxiYWNrOw0KICB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIHdyaXRlSnNvbihmaWxlOiBzdHJpbmcsIGRhdGE6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHsNCiAgYXdhaXQgZW5zdXJlRGF0YURpcigpOw0KICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZSwgSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMiksICJ1dGY4Iik7DQp9DQoNCi8qKiBTZcOxYWxlcyBvcGVyYXRpdmFzOiBwb3J0YWxlcyBvYnNvbGV0b3MsIGJhamEgY29iZXJ0dXJhLCBkdXBsaWNhZG9zLCBzY2hlZHVsZXIuICovDQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdE9wZXJhdGlvbmFsU25hcHNob3QoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gew0KICBjb25zdCBbYW5hbHl0aWNzLCBwb3J0YWxzLCBzdGFsZVJvd3MsIHplcm9Sb3dzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsNCiAgICBQcm9wZXJ0eVNlcnZpY2UuZ2V0QW5hbHl0aWNzKCksDQogICAgUG9ydGFsTW9kZWwuZmluZEFsbCgpLA0KICAgIHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgDQogICAgICBTRUxFQ1Qgc291cmNlLCBDT1VOVCgqKSBBUyBjbnQsIE1BWCh1cGRhdGVkX2F0KSBBUyBsYXN0X3VwZGF0ZSwNCiAgICAgICAgICAgICBUSU1FU1RBTVBESUZGKEhPVVIsIE1BWCh1cGRhdGVkX2F0KSwgTk9XKCkpIEFTIGhvdXJzX3N0YWxlDQogICAgICBGUk9NIHByb3BlcnRpZXMNCiAgICAgIEdST1VQIEJZIHNvdXJjZQ0KICAgICAgSEFWSU5HIGhvdXJzX3N0YWxlID4gNDggT1IgY250IDwgNQ0KICAgICAgT1JERVIgQlkgaG91cnNfc3RhbGUgREVTQw0KICAgIGApLA0KICAgIHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgDQogICAgICBTRUxFQ1QgcC5uYW1lIEFTIHBvcnRhbCwgcC5zY3JhcGVyX2NsYXNzLCBwLmFjdGl2ZQ0KICAgICAgRlJPTSBwb3J0YWxzIHANCiAgICAgIExFRlQgSk9JTiBwcm9wZXJ0aWVzIHByIE9OIHByLnNvdXJjZSA9IHAubmFtZQ0KICAgICAgV0hFUkUgcC5hY3RpdmUgPSAxDQogICAgICBHUk9VUCBCWSBwLmlkLCBwLm5hbWUsIHAuc2NyYXBlcl9jbGFzcywgcC5hY3RpdmUNCiAgICAgIEhBVklORyBDT1VOVChwci5pZCkgPSAwDQogICAgYCksDQogIF0pOw0KDQogIGNvbnN0IHNuYXBzaG90ID0gew0KICAgIGNvbGxlY3RlZF9hdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLA0KICAgIHNjaGVkdWxlcjogZ2V0U2NoZWR1bGVyU3RhdHVzKCksDQogICAgYW5hbHl0aWNzX3N1bW1hcnk6IGFuYWx5dGljcy5zdW1tYXJ5LA0KICAgIHBvcnRhbHNfYWN0aXZlOiBwb3J0YWxzLmZpbHRlcigocCkgPT4gcC5hY3RpdmUpLmxlbmd0aCwNCiAgICBwb3J0YWxzX3RvdGFsOiBwb3J0YWxzLmxlbmd0aCwNCiAgICBzdGFsZV9zb3VyY2VzOiBzdGFsZVJvd3NbMF0sDQogICAgZW1wdHlfYWN0aXZlX3BvcnRhbHM6IHplcm9Sb3dzWzBdLA0KICAgIGJ5X3BvcnRhbDogYW5hbHl0aWNzLmJ5UG9ydGFsLA0KICAgIHByaWNlX2Ryb3BzOiBhbmFseXRpY3MucHJpY2VEcm9wcywNCiAgfTsNCg0KICBhd2FpdCB3cml0ZUpzb24oU05BUFNIT1RfRklMRSwgc25hcHNob3QpOw0KICByZXR1cm4gc25hcHNob3Q7DQp9DQoNCmZ1bmN0aW9uIHByb3Bvc2FsSWQoc2VlZDogc3RyaW5nKTogc3RyaW5nIHsNCiAgcmV0dXJuIHNlZWQucmVwbGFjZSgvW15hLXowLTldKy9naSwgIi0iKS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsIDQ4KTsNCn0NCg0KLyoqIEhldXLDrXN0aWNhcyArIGhpc3RvcmlhbCBkZSBmZWVkYmFjayDihpIgcHJvcHVlc3RhcyBwcmlvcml6YWRhcy4gKi8NCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVByb3Bvc2FscyhzbmFwc2hvdD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTxBaVByb3Bvc2FsW10+IHsNCiAgY29uc3Qgc25hcCA9IHNuYXBzaG90IHx8IChhd2FpdCBjb2xsZWN0T3BlcmF0aW9uYWxTbmFwc2hvdCgpKTsNCiAgY29uc3QgZmVlZGJhY2sgPSBhd2FpdCByZWFkSnNvbjxGZWVkYmFja0VudHJ5W10+KEZFRURCQUNLX0ZJTEUsIFtdKTsNCiAgY29uc3QgcmVqZWN0ZWQgPSBuZXcgU2V0KGZlZWRiYWNrLmZpbHRlcigoZikgPT4gZi5yYXRpbmcgPT09IC0xKS5tYXAoKGYpID0+IGYucHJvcG9zYWxJZCkpOw0KDQogIGNvbnN0IHByb3Bvc2FsczogQWlQcm9wb3NhbFtdID0gW107DQoNCiAgZm9yIChjb25zdCByb3cgb2YgKHNuYXAuc3RhbGVfc291cmNlcyBhcyBSb3dEYXRhUGFja2V0W10pIHx8IFtdKSB7DQogICAgY29uc3QgaG91cnMgPSBOdW1iZXIocm93LmhvdXJzX3N0YWxlKSB8fCAwOw0KICAgIGNvbnN0IGlkID0gcHJvcG9zYWxJZChgc3RhbGUtJHtyb3cuc291cmNlfWApOw0KICAgIGlmIChyZWplY3RlZC5oYXMoaWQpKSBjb250aW51ZTsNCiAgICBwcm9wb3NhbHMucHVzaCh7DQogICAgICBpZCwNCiAgICAgIHByaW9yaXR5OiBob3VycyA+IDEyMCA/ICJoaWdoIiA6ICJtZWRpdW0iLA0KICAgICAgYWdlbnQ6ICJjb2RlIiwNCiAgICAgIHRpdGxlOiBgUG9ydGFsICR7cm93LnNvdXJjZX0gc2luIGFjdHVhbGl6YXIgKCR7aG91cnN9aClgLA0KICAgICAgcmVhc29uOiBgw5psdGltYSBhY3R1YWxpemFjacOzbiBoYWNlICR7aG91cnN9aCBjb24gJHtyb3cuY250fSBhbnVuY2lvcy5gLA0KICAgICAgdGFzazogYFJldmlzYSBzY3JhcGVyIGRlICR7cm93LnNvdXJjZX06IGxvZ3MgUE0yLCB0aW1lb3V0cyBQbGF5d3JpZ2h0LCBzZWxlY3RvcmVzIHJvdG9zLiBQcm9ww7NuIGZpeCBtw61uaW1vIGVuIG1vZG8gcmV2aXNpw7NuLmAsDQogICAgICBzaWduYWxzOiBbYHN0YWxlOiR7cm93LnNvdXJjZX1gLCBgaG91cnM6JHtob3Vyc31gXSwNCiAgICB9KTsNCiAgfQ0KDQogIGZvciAoY29uc3Qgcm93IG9mIChzbmFwLmVtcHR5X2FjdGl2ZV9wb3J0YWxzIGFzIFJvd0RhdGFQYWNrZXRbXSkgfHwgW10pIHsNCiAgICBjb25zdCBpZCA9IHByb3Bvc2FsSWQoYGVtcHR5LSR7cm93LnBvcnRhbH1gKTsNCiAgICBpZiAocmVqZWN0ZWQuaGFzKGlkKSkgY29udGludWU7DQogICAgcHJvcG9zYWxzLnB1c2goew0KICAgICAgaWQsDQogICAgICBwcmlvcml0eTogImhpZ2giLA0KICAgICAgYWdlbnQ6ICJjb2RlIiwNCiAgICAgIHRpdGxlOiBgUG9ydGFsIGFjdGl2byBzaW4gZGF0b3M6ICR7cm93LnBvcnRhbH1gLA0KICAgICAgcmVhc29uOiBgJHtyb3cuc2NyYXBlcl9jbGFzc30gZXN0w6EgYWN0aXZvIHBlcm8gMCBwcm9waWVkYWRlcyBlbiBCRC5gLA0KICAgICAgdGFzazogYERpYWdub3N0aWNhIHBvciBxdcOpICR7cm93LnBvcnRhbH0gKCR7cm93LnNjcmFwZXJfY2xhc3N9KSBubyBpbmdlc3RhIGRhdG9zLiBSZXZpc2EgVVJMIHpvbmEsIGFudGktYmFuIHkgcGFyc2VyLmAsDQogICAgICBzaWduYWxzOiBbYGVtcHR5X3BvcnRhbDoke3Jvdy5wb3J0YWx9YF0sDQogICAgfSk7DQogIH0NCg0KICBjb25zdCBzdW1tYXJ5ID0gc25hcC5hbmFseXRpY3Nfc3VtbWFyeSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHwgdW5kZWZpbmVkOw0KICBjb25zdCBkdXBSYXRlID0gc3VtbWFyeSAmJiBzdW1tYXJ5LnRvdGFsDQogICAgPyBOdW1iZXIoc3VtbWFyeS5kdXBsaWNhdGVzIHx8IDApIC8gTnVtYmVyKHN1bW1hcnkudG90YWwpDQogICAgOiAwOw0KICBpZiAoZHVwUmF0ZSA+IDAuMTUpIHsNCiAgICBjb25zdCBpZCA9ICJkZWR1cC1oaWdoLXJhdGUiOw0KICAgIGlmICghcmVqZWN0ZWQuaGFzKGlkKSkgew0KICAgICAgcHJvcG9zYWxzLnB1c2goew0KICAgICAgICBpZCwNCiAgICAgICAgcHJpb3JpdHk6ICJtZWRpdW0iLA0KICAgICAgICBhZ2VudDogImNvZGUiLA0KICAgICAgICB0aXRsZTogIlRhc2EgZGUgZHVwbGljYWRvcyBlbGV2YWRhIiwNCiAgICAgICAgcmVhc29uOiBgJHtNYXRoLnJvdW5kKGR1cFJhdGUgKiAxMDApfSUgbWFyY2Fkb3MgY29tbyBkdXBsaWNhZG9zICgke3N1bW1hcnk/LmR1cGxpY2F0ZXN9LyR7c3VtbWFyeT8udG90YWx9KS5gLA0KICAgICAgICB0YXNrOiAiQXVkaXRhIGRlZHVwbGljYXRpb25TZXJ2aWNlOiBmYWxzb3MgcG9zaXRpdm9zLCB1bWJyYWxlcyBnZW9ncsOhZmljb3MgeSBub3JtYWxpemFjacOzbiBkZSB0w610dWxvcy4iLA0KICAgICAgICBzaWduYWxzOiBbYGR1cF9yYXRlOiR7ZHVwUmF0ZS50b0ZpeGVkKDIpfWBdLA0KICAgICAgfSk7DQogICAgfQ0KICB9DQoNCiAgY29uc3QgcHJpY2VEcm9wcyA9IHNuYXAucHJpY2VfZHJvcHMgYXMgeyBjb3VudD86IG51bWJlciB9IHwgdW5kZWZpbmVkOw0KICBpZiAocHJpY2VEcm9wcyAmJiBOdW1iZXIocHJpY2VEcm9wcy5jb3VudCkgPiAwKSB7DQogICAgY29uc3QgaWQgPSAicHJpY2UtZHJvcC1hbGVydHMiOw0KICAgIGlmICghcmVqZWN0ZWQuaGFzKGlkKSkgew0KICAgICAgcHJvcG9zYWxzLnB1c2goew0KICAgICAgICBpZCwNCiAgICAgICAgcHJpb3JpdHk6ICJsb3ciLA0KICAgICAgICBhZ2VudDogInJlc2VhcmNoIiwNCiAgICAgICAgdGl0bGU6ICJPcG9ydHVuaWRhZGVzIHBvciBiYWphZGFzIGRlIHByZWNpbyIsDQogICAgICAgIHJlYXNvbjogYCR7cHJpY2VEcm9wcy5jb3VudH0gYmFqYWRhcyBkZXRlY3RhZGFzIGVuIGhpc3RvcmlhbC5gLA0KICAgICAgICB0YXNrOiAiQW5hbGl6YSBwcmljZV9oaXN0b3J5IHkgcHJvcMOzbiBtZWpvcmFzIGVuIHNjb3JpbmcvYWxlcnRhcyBlbWFpbCBwYXJhIGNhcHRhciBvcG9ydHVuaWRhZGVzLiIsDQogICAgICAgIHNpZ25hbHM6IFsicHJpY2VfZHJvcHMiXSwNCiAgICAgIH0pOw0KICAgIH0NCiAgfQ0KDQogIC8vIFJlZnVlcnpvIHBvciBmZWVkYmFjayBwb3NpdGl2byAocmUtcHJpb3JpemFyIHRlbWFzIGFjZXB0YWRvcykNCiAgY29uc3QgbGlrZWQgPSBmZWVkYmFjay5maWx0ZXIoKGYpID0+IGYucmF0aW5nID09PSAxKS5zbGljZSgtNSk7DQogIGZvciAoY29uc3QgbGlrZSBvZiBsaWtlZCkgew0KICAgIGNvbnN0IGV4aXN0aW5nID0gcHJvcG9zYWxzLmZpbmQoKHApID0+IHAuaWQgPT09IGxpa2UucHJvcG9zYWxJZCk7DQogICAgaWYgKGV4aXN0aW5nKSBleGlzdGluZy5wcmlvcml0eSA9ICJoaWdoIjsNCiAgfQ0KDQogIGNvbnN0IG9yZGVyID0geyBoaWdoOiAwLCBtZWRpdW06IDEsIGxvdzogMiB9Ow0KICBwcm9wb3NhbHMuc29ydCgoYSwgYikgPT4gb3JkZXJbYS5wcmlvcml0eV0gLSBvcmRlcltiLnByaW9yaXR5XSk7DQogIHJldHVybiBwcm9wb3NhbHMuc2xpY2UoMCwgOCk7DQp9DQoNCi8qKiBDb21iaW5hIHByb3B1ZXN0YXMgbG9jYWxlcyBjb24gcmVjb21lbmRhY2nDs24gZGVsIHN1cGVydmlzb3IgbXVsdGlhZ2VudC4gKi8NCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsZWFybkFuZFJlY29tbWVuZCgpOiBQcm9taXNlPHsNCiAgc25hcHNob3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+Ow0KICBwcm9wb3NhbHM6IEFpUHJvcG9zYWxbXTsNCiAgc3VwZXJ2aXNvcj86IFJlY29yZDxzdHJpbmcsIHVua25vd24+Ow0KfT4gew0KICBjb25zdCBzbmFwc2hvdCA9IGF3YWl0IGNvbGxlY3RPcGVyYXRpb25hbFNuYXBzaG90KCk7DQogIGNvbnN0IHByb3Bvc2FscyA9IGF3YWl0IGdlbmVyYXRlUHJvcG9zYWxzKHNuYXBzaG90KTsNCg0KICBsZXQgc3VwZXJ2aXNvcjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7DQogIGlmIChwcm9wb3NhbHMubGVuZ3RoID4gMCkgew0KICAgIGNvbnN0IHRvcCA9IHByb3Bvc2Fsc1swXTsNCiAgICBjb25zdCByZWMgPSBhd2FpdCByZWNvbW1lbmRUYXNrKHRvcC50YXNrLCB0b3AuYWdlbnQpOw0KICAgIGlmIChyZWMub2sgJiYgcmVjLmRhdGEpIHN1cGVydmlzb3IgPSByZWMuZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsNCiAgfQ0KDQogIHJldHVybiB7IHNuYXBzaG90LCBwcm9wb3NhbHMsIHN1cGVydmlzb3IgfTsNCn0NCg0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlY29yZEZlZWRiYWNrKA0KICBwcm9wb3NhbElkOiBzdHJpbmcsDQogIHJhdGluZzogMSB8IC0xLA0KICBub3RlPzogc3RyaW5nDQopOiBQcm9taXNlPEZlZWRiYWNrRW50cnlbXT4gew0KICBjb25zdCBsaXN0ID0gYXdhaXQgcmVhZEpzb248RmVlZGJhY2tFbnRyeVtdPihGRUVEQkFDS19GSUxFLCBbXSk7DQogIGxpc3QucHVzaCh7IHByb3Bvc2FsSWQsIHJhdGluZywgbm90ZSwgYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSB9KTsNCiAgYXdhaXQgd3JpdGVKc29uKEZFRURCQUNLX0ZJTEUsIGxpc3Quc2xpY2UoLTIwMCkpOw0KICByZXR1cm4gbGlzdDsNCn0NCg0KLyoqIFByb21wdCBlc3RydWN0dXJhZG8gcGFyYSBhZ2VudGUgY8OzZGlnbyB2w61hIEN1cnNvciBCcmlkZ2UgKG1vZG8gcmV2aXNpw7NuKS4gKi8NCmV4cG9ydCBmdW5jdGlvbiBidWlsZEV2b2x2ZVByb21wdChwcm9wb3NhbDogQWlQcm9wb3NhbCwgc25hcHNob3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHsNCiAgY29uc3Qgc3RhbGUgPSAoKHNuYXBzaG90LnN0YWxlX3NvdXJjZXMgYXMgUm93RGF0YVBhY2tldFtdKSB8fCBbXSkNCiAgICAubWFwKChyKSA9PiBgJHtyLnNvdXJjZX06JHtyLmhvdXJzX3N0YWxlfWhgKQ0KICAgIC5qb2luKCIsICIpOw0KICByZXR1cm4gWw0KICAgICJNT0RPIFJFVklTScOTTiDigJQgQ2FwdGFqYXVzIGV2b2x2ZSAoYWdlbnRlIHB1ZWRlIGVkaXRhciBjw7NkaWdvIHRyYXMgY29uZmlybWFjacOzbikuIiwNCiAgICBgUHJpb3JpZGFkOiAke3Byb3Bvc2FsLnByaW9yaXR5fSDCtyBBZ2VudGUgc3VnZXJpZG86ICR7cHJvcG9zYWwuYWdlbnR9YCwNCiAgICAiIiwNCiAgICBgIyMgT2JqZXRpdm9gLA0KICAgIHByb3Bvc2FsLnRpdGxlLA0KICAgICIiLA0KICAgIGAjIyBDb250ZXh0byBvcGVyYXRpdm9gLA0KICAgIGAtIFBvcnRhbGVzIGFjdGl2b3M6ICR7c25hcHNob3QucG9ydGFsc19hY3RpdmV9LyR7c25hcHNob3QucG9ydGFsc190b3RhbH1gLA0KICAgIHN0YWxlID8gYC0gRnVlbnRlcyBvYnNvbGV0YXM6ICR7c3RhbGV9YCA6ICIiLA0KICAgIGAtIFNlw7FhbGVzOiAke3Byb3Bvc2FsLnNpZ25hbHMuam9pbigiLCAiKX1gLA0KICAgICIiLA0KICAgIGAjIyBUYXJlYWAsDQogICAgcHJvcG9zYWwudGFzaywNCiAgICAiIiwNCiAgICAiRW50cmVnYTogZGlmZiBtw61uaW1vIGVuIFR5cGVTY3JpcHQsIGNvbWFuZG9zIFFBIChucG0gcnVuIGJ1aWxkKSwgcmllc2dvcyBhbnRpLWJhbi4iLA0KICBdDQogICAgLmZpbHRlcihCb29sZWFuKQ0KICAgIC5qb2luKCJcbiIpOw0KfQ0KDQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gZXZvbHZlUHJvcG9zYWwocHJvcG9zYWxJZDogc3RyaW5nKTogUHJvbWlzZTx7DQogIHByb3Bvc2FsOiBBaVByb3Bvc2FsOw0KICBldm9sdmVQcm9tcHQ6IHN0cmluZzsNCiAgYnJpZGdlVXJsOiBzdHJpbmc7DQogIHNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsNCn0+IHsNCiAgY29uc3Qgc25hcHNob3QgPSBhd2FpdCByZWFkSnNvbjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oU05BUFNIT1RfRklMRSwge30pOw0KICBjb25zdCBwcm9wb3NhbHMgPSBhd2FpdCBnZW5lcmF0ZVByb3Bvc2FscygNCiAgICBPYmplY3Qua2V5cyhzbmFwc2hvdCkubGVuZ3RoID8gc25hcHNob3QgOiBhd2FpdCBjb2xsZWN0T3BlcmF0aW9uYWxTbmFwc2hvdCgpDQogICk7DQogIGNvbnN0IHByb3Bvc2FsID0gcHJvcG9zYWxzLmZpbmQoKHApID0+IHAuaWQgPT09IHByb3Bvc2FsSWQpOw0KICBpZiAoIXByb3Bvc2FsKSB7DQogICAgdGhyb3cgbmV3IEVycm9yKGBQcm9wdWVzdGEgbm8gZW5jb250cmFkYTogJHtwcm9wb3NhbElkfWApOw0KICB9DQogIGNvbnN0IGV2b2x2ZVByb21wdCA9IGJ1aWxkRXZvbHZlUHJvbXB0KHByb3Bvc2FsLCBzbmFwc2hvdCk7DQogIHJldHVybiB7DQogICAgcHJvcG9zYWwsDQogICAgZXZvbHZlUHJvbXB0LA0KICAgIGJyaWRnZVVybDogYnVpbGRCcmlkZ2VEZWVwTGluayhldm9sdmVQcm9tcHQpLA0KICAgIHNuYXBzaG90LA0KICB9Ow0KfQ0KDQovKiogSW5nZXN0YSBpbnNpZ2h0cyBvcGVyYXRpdm9zIGFsIFJBRyBkZWwgc3VwZXJ2aXNvciAobWVtb3JpYSBkZWwgcHJveWVjdG8pLiAqLw0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkSW5zaWdodHNEb2N1bWVudCgNCiAgc25hcHNob3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LA0KICBwcm9wb3NhbHM6IEFpUHJvcG9zYWxbXQ0KKTogUHJvbWlzZTxzdHJpbmc+IHsNCiAgY29uc3QgbGluZXMgPSBbDQogICAgYCMgQ2FwdGFqYXVzIOKAlCBpbnNpZ2h0cyBvcGVyYXRpdm9zICR7c25hcHNob3QuY29sbGVjdGVkX2F0IHx8IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gLA0KICAgICIiLA0KICAgICIjIyBSZXN1bWVuIiwNCiAgICBKU09OLnN0cmluZ2lmeShzbmFwc2hvdC5hbmFseXRpY3Nfc3VtbWFyeSwgbnVsbCwgMiksDQogICAgIiIsDQogICAgIiMjIFByb3B1ZXN0YXMgYWN0aXZhcyIsDQogICAgLi4ucHJvcG9zYWxzLm1hcCgNCiAgICAgIChwKSA9PiBgLSBbJHtwLnByaW9yaXR5fV0gJHtwLnRpdGxlfTogJHtwLnJlYXNvbn1gDQogICAgKSwNCiAgICAiIiwNCiAgICAiIyMgUG9ydGFsZXMgb2Jzb2xldG9zIiwNCiAgICBKU09OLnN0cmluZ2lmeShzbmFwc2hvdC5zdGFsZV9zb3VyY2VzLCBudWxsLCAyKSwNCiAgXTsNCiAgcmV0dXJuIGxpbmVzLmpvaW4oIlxuIik7DQp9DQo=","afterExisted":true,"afterHash":"b319aef31823080003e262a4d12b5a419f59d6dd5ca45bce3c10af5c28931920","afterContent":"LyoqDQogKiBDYXBhIGRlIGFwcmVuZGl6YWplIG9wZXJhdGl2bzogc2XDsWFsZXMgZGVsIHNjcmFwZXIg4oaSIHByb3B1ZXN0YXMg4oaSIFJBRyDihpIgYWdlbnRlcyBjw7NkaWdvLg0KICogUGVyc2lzdGVuY2lhIGxvY2FsIGVuIGRhdGEvYWktbGVhcm5pbmcvIChzaW4gZGVwZW5kZW5jaWEgZGUgcHJvZCkuDQogKi8NCmltcG9ydCBmcyBmcm9tICJmcy9wcm9taXNlcyI7DQppbXBvcnQgcGF0aCBmcm9tICJwYXRoIjsNCmltcG9ydCBwb29sIGZyb20gIi4uL2NvbmZpZy9kYiI7DQppbXBvcnQgeyBSb3dEYXRhUGFja2V0IH0gZnJvbSAibXlzcWwyIjsNCmltcG9ydCBQcm9wZXJ0eVNlcnZpY2UgZnJvbSAiLi9wcm9wZXJ0eVNlcnZpY2UiOw0KaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOw0KaW1wb3J0IHsgZ2V0U2NoZWR1bGVyU3RhdHVzIH0gZnJvbSAiLi9zY2hlZHVsZXJTZXJ2aWNlIjsNCmltcG9ydCB7IHJlY29tbWVuZFRhc2ssIGJ1aWxkQnJpZGdlRGVlcExpbmsgfSBmcm9tICIuL3N1cGVydmlzb3JBaVNlcnZpY2UiOw0KDQpjb25zdCBEQVRBX0RJUiA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAiZGF0YSIsICJhaS1sZWFybmluZyIpOw0KY29uc3QgRkVFREJBQ0tfRklMRSA9IHBhdGguam9pbihEQVRBX0RJUiwgImZlZWRiYWNrLmpzb24iKTsNCmNvbnN0IFNOQVBTSE9UX0ZJTEUgPSBwYXRoLmpvaW4oREFUQV9ESVIsICJsYXN0LXNuYXBzaG90Lmpzb24iKTsNCg0KZXhwb3J0IGludGVyZmFjZSBBaVByb3Bvc2FsIHsNCiAgaWQ6IHN0cmluZzsNCiAgcHJpb3JpdHk6ICJoaWdoIiB8ICJtZWRpdW0iIHwgImxvdyI7DQogIGFnZW50OiAiY29kZSIgfCAib3BzIiB8ICJyZXNlYXJjaCI7DQogIHRpdGxlOiBzdHJpbmc7DQogIHJlYXNvbjogc3RyaW5nOw0KICB0YXNrOiBzdHJpbmc7DQogIHNpZ25hbHM6IHN0cmluZ1tdOw0KfQ0KDQpleHBvcnQgaW50ZXJmYWNlIEZlZWRiYWNrRW50cnkgew0KICBwcm9wb3NhbElkOiBzdHJpbmc7DQogIHJhdGluZzogMSB8IC0xOw0KICBub3RlPzogc3RyaW5nOw0KICBhdDogc3RyaW5nOw0KfQ0KDQphc3luYyBmdW5jdGlvbiBlbnN1cmVEYXRhRGlyKCk6IFByb21pc2U8dm9pZD4gew0KICBhd2FpdCBmcy5ta2RpcihEQVRBX0RJUiwgeyByZWN1cnNpdmU6IHRydWUgfSk7DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIHJlYWRKc29uPFQ+KGZpbGU6IHN0cmluZywgZmFsbGJhY2s6IFQpOiBQcm9taXNlPFQ+IHsNCiAgdHJ5IHsNCiAgICBjb25zdCByYXcgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlLCAidXRmOCIpOw0KICAgIHJldHVybiBKU09OLnBhcnNlKHJhdykgYXMgVDsNCiAgfSBjYXRjaCB7DQogICAgcmV0dXJuIGZhbGxiYWNrOw0KICB9DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIHdyaXRlSnNvbihmaWxlOiBzdHJpbmcsIGRhdGE6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHsNCiAgYXdhaXQgZW5zdXJlRGF0YURpcigpOw0KICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZSwgSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMiksICJ1dGY4Iik7DQp9DQoNCi8qKiBTZcOxYWxlcyBvcGVyYXRpdmFzOiBwb3J0YWxlcyBvYnNvbGV0b3MsIGJhamEgY29iZXJ0dXJhLCBkdXBsaWNhZG9zLCBzY2hlZHVsZXIuICovDQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdE9wZXJhdGlvbmFsU25hcHNob3QoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gew0KICBjb25zdCBbYW5hbHl0aWNzLCBwb3J0YWxzLCBzdGFsZVJvd3MsIHplcm9Sb3dzXSA9IGF3YWl0IFByb21pc2UuYWxsKFsNCiAgICBQcm9wZXJ0eVNlcnZpY2UuZ2V0QW5hbHl0aWNzKCksDQogICAgUG9ydGFsTW9kZWwuZmluZEFsbCgpLA0KICAgIHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgDQogICAgICBTRUxFQ1Qgc291cmNlLCBDT1VOVCgqKSBBUyBjbnQsIE1BWChDT0FMRVNDRShsYXN0X3NlZW5fYXQsIHVwZGF0ZWRfYXQpKSBBUyBsYXN0X3VwZGF0ZSwKICAgICAgICAgICAgIFRJTUVTVEFNUERJRkYoSE9VUiwgTUFYKENPQUxFU0NFKGxhc3Rfc2Vlbl9hdCwgdXBkYXRlZF9hdCkpLCBOT1coKSkgQVMgaG91cnNfc3RhbGUKICAgICAgRlJPTSBwcm9wZXJ0aWVzDQogICAgICBHUk9VUCBCWSBzb3VyY2UNCiAgICAgIEhBVklORyBob3Vyc19zdGFsZSA+IDQ4IE9SIGNudCA8IDUNCiAgICAgIE9SREVSIEJZIGhvdXJzX3N0YWxlIERFU0MNCiAgICBgKSwNCiAgICBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYA0KICAgICAgU0VMRUNUIHAubmFtZSBBUyBwb3J0YWwsIHAuc2NyYXBlcl9jbGFzcywgcC5hY3RpdmUNCiAgICAgIEZST00gcG9ydGFscyBwDQogICAgICBMRUZUIEpPSU4gcHJvcGVydGllcyBwciBPTiBwci5zb3VyY2UgPSBwLm5hbWUNCiAgICAgIFdIRVJFIHAuYWN0aXZlID0gMQ0KICAgICAgR1JPVVAgQlkgcC5pZCwgcC5uYW1lLCBwLnNjcmFwZXJfY2xhc3MsIHAuYWN0aXZlDQogICAgICBIQVZJTkcgQ09VTlQocHIuaWQpID0gMA0KICAgIGApLA0KICBdKTsNCg0KICBjb25zdCBzbmFwc2hvdCA9IHsNCiAgICBjb2xsZWN0ZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwNCiAgICBzY2hlZHVsZXI6IGdldFNjaGVkdWxlclN0YXR1cygpLA0KICAgIGFuYWx5dGljc19zdW1tYXJ5OiBhbmFseXRpY3Muc3VtbWFyeSwNCiAgICBwb3J0YWxzX2FjdGl2ZTogcG9ydGFscy5maWx0ZXIoKHApID0+IHAuYWN0aXZlKS5sZW5ndGgsDQogICAgcG9ydGFsc190b3RhbDogcG9ydGFscy5sZW5ndGgsDQogICAgc3RhbGVfc291cmNlczogc3RhbGVSb3dzWzBdLA0KICAgIGVtcHR5X2FjdGl2ZV9wb3J0YWxzOiB6ZXJvUm93c1swXSwNCiAgICBieV9wb3J0YWw6IGFuYWx5dGljcy5ieVBvcnRhbCwNCiAgICBwcmljZV9kcm9wczogYW5hbHl0aWNzLnByaWNlRHJvcHMsDQogIH07DQoNCiAgYXdhaXQgd3JpdGVKc29uKFNOQVBTSE9UX0ZJTEUsIHNuYXBzaG90KTsNCiAgcmV0dXJuIHNuYXBzaG90Ow0KfQ0KDQpmdW5jdGlvbiBwcm9wb3NhbElkKHNlZWQ6IHN0cmluZyk6IHN0cmluZyB7DQogIHJldHVybiBzZWVkLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksICItIikudG9Mb3dlckNhc2UoKS5zbGljZSgwLCA0OCk7DQp9DQoNCi8qKiBIZXVyw61zdGljYXMgKyBoaXN0b3JpYWwgZGUgZmVlZGJhY2sg4oaSIHByb3B1ZXN0YXMgcHJpb3JpemFkYXMuICovDQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVQcm9wb3NhbHMoc25hcHNob3Q/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFByb21pc2U8QWlQcm9wb3NhbFtdPiB7DQogIGNvbnN0IHNuYXAgPSBzbmFwc2hvdCB8fCAoYXdhaXQgY29sbGVjdE9wZXJhdGlvbmFsU25hcHNob3QoKSk7DQogIGNvbnN0IGZlZWRiYWNrID0gYXdhaXQgcmVhZEpzb248RmVlZGJhY2tFbnRyeVtdPihGRUVEQkFDS19GSUxFLCBbXSk7DQogIGNvbnN0IHJlamVjdGVkID0gbmV3IFNldChmZWVkYmFjay5maWx0ZXIoKGYpID0+IGYucmF0aW5nID09PSAtMSkubWFwKChmKSA9PiBmLnByb3Bvc2FsSWQpKTsNCg0KICBjb25zdCBwcm9wb3NhbHM6IEFpUHJvcG9zYWxbXSA9IFtdOw0KDQogIGZvciAoY29uc3Qgcm93IG9mIChzbmFwLnN0YWxlX3NvdXJjZXMgYXMgUm93RGF0YVBhY2tldFtdKSB8fCBbXSkgew0KICAgIGNvbnN0IGhvdXJzID0gTnVtYmVyKHJvdy5ob3Vyc19zdGFsZSkgfHwgMDsNCiAgICBjb25zdCBpZCA9IHByb3Bvc2FsSWQoYHN0YWxlLSR7cm93LnNvdXJjZX1gKTsNCiAgICBpZiAocmVqZWN0ZWQuaGFzKGlkKSkgY29udGludWU7DQogICAgcHJvcG9zYWxzLnB1c2goew0KICAgICAgaWQsDQogICAgICBwcmlvcml0eTogaG91cnMgPiAxMjAgPyAiaGlnaCIgOiAibWVkaXVtIiwNCiAgICAgIGFnZW50OiAiY29kZSIsDQogICAgICB0aXRsZTogYFBvcnRhbCAke3Jvdy5zb3VyY2V9IHNpbiBhY3R1YWxpemFyICgke2hvdXJzfWgpYCwNCiAgICAgIHJlYXNvbjogYMOabHRpbWEgYWN0dWFsaXphY2nDs24gaGFjZSAke2hvdXJzfWggY29uICR7cm93LmNudH0gYW51bmNpb3MuYCwNCiAgICAgIHRhc2s6IGBSZXZpc2Egc2NyYXBlciBkZSAke3Jvdy5zb3VyY2V9OiBsb2dzIFBNMiwgdGltZW91dHMgUGxheXdyaWdodCwgc2VsZWN0b3JlcyByb3Rvcy4gUHJvcMOzbiBmaXggbcOtbmltbyBlbiBtb2RvIHJldmlzacOzbi5gLA0KICAgICAgc2lnbmFsczogW2BzdGFsZToke3Jvdy5zb3VyY2V9YCwgYGhvdXJzOiR7aG91cnN9YF0sDQogICAgfSk7DQogIH0NCg0KICBmb3IgKGNvbnN0IHJvdyBvZiAoc25hcC5lbXB0eV9hY3RpdmVfcG9ydGFscyBhcyBSb3dEYXRhUGFja2V0W10pIHx8IFtdKSB7DQogICAgY29uc3QgaWQgPSBwcm9wb3NhbElkKGBlbXB0eS0ke3Jvdy5wb3J0YWx9YCk7DQogICAgaWYgKHJlamVjdGVkLmhhcyhpZCkpIGNvbnRpbnVlOw0KICAgIHByb3Bvc2Fscy5wdXNoKHsNCiAgICAgIGlkLA0KICAgICAgcHJpb3JpdHk6ICJoaWdoIiwNCiAgICAgIGFnZW50OiAiY29kZSIsDQogICAgICB0aXRsZTogYFBvcnRhbCBhY3Rpdm8gc2luIGRhdG9zOiAke3Jvdy5wb3J0YWx9YCwNCiAgICAgIHJlYXNvbjogYCR7cm93LnNjcmFwZXJfY2xhc3N9IGVzdMOhIGFjdGl2byBwZXJvIDAgcHJvcGllZGFkZXMgZW4gQkQuYCwNCiAgICAgIHRhc2s6IGBEaWFnbm9zdGljYSBwb3IgcXXDqSAke3Jvdy5wb3J0YWx9ICgke3Jvdy5zY3JhcGVyX2NsYXNzfSkgbm8gaW5nZXN0YSBkYXRvcy4gUmV2aXNhIFVSTCB6b25hLCBhbnRpLWJhbiB5IHBhcnNlci5gLA0KICAgICAgc2lnbmFsczogW2BlbXB0eV9wb3J0YWw6JHtyb3cucG9ydGFsfWBdLA0KICAgIH0pOw0KICB9DQoNCiAgY29uc3Qgc3VtbWFyeSA9IHNuYXAuYW5hbHl0aWNzX3N1bW1hcnkgYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPiB8IHVuZGVmaW5lZDsNCiAgY29uc3QgZHVwUmF0ZSA9IHN1bW1hcnkgJiYgc3VtbWFyeS50b3RhbA0KICAgID8gTnVtYmVyKHN1bW1hcnkuZHVwbGljYXRlcyB8fCAwKSAvIE51bWJlcihzdW1tYXJ5LnRvdGFsKQ0KICAgIDogMDsNCiAgaWYgKGR1cFJhdGUgPiAwLjE1KSB7DQogICAgY29uc3QgaWQgPSAiZGVkdXAtaGlnaC1yYXRlIjsNCiAgICBpZiAoIXJlamVjdGVkLmhhcyhpZCkpIHsNCiAgICAgIHByb3Bvc2Fscy5wdXNoKHsNCiAgICAgICAgaWQsDQogICAgICAgIHByaW9yaXR5OiAibWVkaXVtIiwNCiAgICAgICAgYWdlbnQ6ICJjb2RlIiwNCiAgICAgICAgdGl0bGU6ICJUYXNhIGRlIGR1cGxpY2Fkb3MgZWxldmFkYSIsDQogICAgICAgIHJlYXNvbjogYCR7TWF0aC5yb3VuZChkdXBSYXRlICogMTAwKX0lIG1hcmNhZG9zIGNvbW8gZHVwbGljYWRvcyAoJHtzdW1tYXJ5Py5kdXBsaWNhdGVzfS8ke3N1bW1hcnk/LnRvdGFsfSkuYCwNCiAgICAgICAgdGFzazogIkF1ZGl0YSBkZWR1cGxpY2F0aW9uU2VydmljZTogZmFsc29zIHBvc2l0aXZvcywgdW1icmFsZXMgZ2VvZ3LDoWZpY29zIHkgbm9ybWFsaXphY2nDs24gZGUgdMOtdHVsb3MuIiwNCiAgICAgICAgc2lnbmFsczogW2BkdXBfcmF0ZToke2R1cFJhdGUudG9GaXhlZCgyKX1gXSwNCiAgICAgIH0pOw0KICAgIH0NCiAgfQ0KDQogIGNvbnN0IHByaWNlRHJvcHMgPSBzbmFwLnByaWNlX2Ryb3BzIGFzIHsgY291bnQ/OiBudW1iZXIgfSB8IHVuZGVmaW5lZDsNCiAgaWYgKHByaWNlRHJvcHMgJiYgTnVtYmVyKHByaWNlRHJvcHMuY291bnQpID4gMCkgew0KICAgIGNvbnN0IGlkID0gInByaWNlLWRyb3AtYWxlcnRzIjsNCiAgICBpZiAoIXJlamVjdGVkLmhhcyhpZCkpIHsNCiAgICAgIHByb3Bvc2Fscy5wdXNoKHsNCiAgICAgICAgaWQsDQogICAgICAgIHByaW9yaXR5OiAibG93IiwNCiAgICAgICAgYWdlbnQ6ICJyZXNlYXJjaCIsDQogICAgICAgIHRpdGxlOiAiT3BvcnR1bmlkYWRlcyBwb3IgYmFqYWRhcyBkZSBwcmVjaW8iLA0KICAgICAgICByZWFzb246IGAke3ByaWNlRHJvcHMuY291bnR9IGJhamFkYXMgZGV0ZWN0YWRhcyBlbiBoaXN0b3JpYWwuYCwNCiAgICAgICAgdGFzazogIkFuYWxpemEgcHJpY2VfaGlzdG9yeSB5IHByb3DDs24gbWVqb3JhcyBlbiBzY29yaW5nL2FsZXJ0YXMgZW1haWwgcGFyYSBjYXB0YXIgb3BvcnR1bmlkYWRlcy4iLA0KICAgICAgICBzaWduYWxzOiBbInByaWNlX2Ryb3BzIl0sDQogICAgICB9KTsNCiAgICB9DQogIH0NCg0KICAvLyBSZWZ1ZXJ6byBwb3IgZmVlZGJhY2sgcG9zaXRpdm8gKHJlLXByaW9yaXphciB0ZW1hcyBhY2VwdGFkb3MpDQogIGNvbnN0IGxpa2VkID0gZmVlZGJhY2suZmlsdGVyKChmKSA9PiBmLnJhdGluZyA9PT0gMSkuc2xpY2UoLTUpOw0KICBmb3IgKGNvbnN0IGxpa2Ugb2YgbGlrZWQpIHsNCiAgICBjb25zdCBleGlzdGluZyA9IHByb3Bvc2Fscy5maW5kKChwKSA9PiBwLmlkID09PSBsaWtlLnByb3Bvc2FsSWQpOw0KICAgIGlmIChleGlzdGluZykgZXhpc3RpbmcucHJpb3JpdHkgPSAiaGlnaCI7DQogIH0NCg0KICBjb25zdCBvcmRlciA9IHsgaGlnaDogMCwgbWVkaXVtOiAxLCBsb3c6IDIgfTsNCiAgcHJvcG9zYWxzLnNvcnQoKGEsIGIpID0+IG9yZGVyW2EucHJpb3JpdHldIC0gb3JkZXJbYi5wcmlvcml0eV0pOw0KICByZXR1cm4gcHJvcG9zYWxzLnNsaWNlKDAsIDgpOw0KfQ0KDQovKiogQ29tYmluYSBwcm9wdWVzdGFzIGxvY2FsZXMgY29uIHJlY29tZW5kYWNpw7NuIGRlbCBzdXBlcnZpc29yIG11bHRpYWdlbnQuICovDQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gbGVhcm5BbmRSZWNvbW1lbmQoKTogUHJvbWlzZTx7DQogIHNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsNCiAgcHJvcG9zYWxzOiBBaVByb3Bvc2FsW107DQogIHN1cGVydmlzb3I/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsNCn0+IHsNCiAgY29uc3Qgc25hcHNob3QgPSBhd2FpdCBjb2xsZWN0T3BlcmF0aW9uYWxTbmFwc2hvdCgpOw0KICBjb25zdCBwcm9wb3NhbHMgPSBhd2FpdCBnZW5lcmF0ZVByb3Bvc2FscyhzbmFwc2hvdCk7DQoNCiAgbGV0IHN1cGVydmlzb3I6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkOw0KICBpZiAocHJvcG9zYWxzLmxlbmd0aCA+IDApIHsNCiAgICBjb25zdCB0b3AgPSBwcm9wb3NhbHNbMF07DQogICAgY29uc3QgcmVjID0gYXdhaXQgcmVjb21tZW5kVGFzayh0b3AudGFzaywgdG9wLmFnZW50KTsNCiAgICBpZiAocmVjLm9rICYmIHJlYy5kYXRhKSBzdXBlcnZpc29yID0gcmVjLmRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47DQogIH0NCg0KICByZXR1cm4geyBzbmFwc2hvdCwgcHJvcG9zYWxzLCBzdXBlcnZpc29yIH07DQp9DQoNCmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWNvcmRGZWVkYmFjaygNCiAgcHJvcG9zYWxJZDogc3RyaW5nLA0KICByYXRpbmc6IDEgfCAtMSwNCiAgbm90ZT86IHN0cmluZw0KKTogUHJvbWlzZTxGZWVkYmFja0VudHJ5W10+IHsNCiAgY29uc3QgbGlzdCA9IGF3YWl0IHJlYWRKc29uPEZlZWRiYWNrRW50cnlbXT4oRkVFREJBQ0tfRklMRSwgW10pOw0KICBsaXN0LnB1c2goeyBwcm9wb3NhbElkLCByYXRpbmcsIG5vdGUsIGF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSk7DQogIGF3YWl0IHdyaXRlSnNvbihGRUVEQkFDS19GSUxFLCBsaXN0LnNsaWNlKC0yMDApKTsNCiAgcmV0dXJuIGxpc3Q7DQp9DQoNCi8qKiBQcm9tcHQgZXN0cnVjdHVyYWRvIHBhcmEgYWdlbnRlIGPDs2RpZ28gdsOtYSBDdXJzb3IgQnJpZGdlIChtb2RvIHJldmlzacOzbikuICovDQpleHBvcnQgZnVuY3Rpb24gYnVpbGRFdm9sdmVQcm9tcHQocHJvcG9zYWw6IEFpUHJvcG9zYWwsIHNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZyB7DQogIGNvbnN0IHN0YWxlID0gKChzbmFwc2hvdC5zdGFsZV9zb3VyY2VzIGFzIFJvd0RhdGFQYWNrZXRbXSkgfHwgW10pDQogICAgLm1hcCgocikgPT4gYCR7ci5zb3VyY2V9OiR7ci5ob3Vyc19zdGFsZX1oYCkNCiAgICAuam9pbigiLCAiKTsNCiAgcmV0dXJuIFsNCiAgICAiTU9ETyBSRVZJU0nDk04g4oCUIENhcHRhamF1cyBldm9sdmUgKGFnZW50ZSBwdWVkZSBlZGl0YXIgY8OzZGlnbyB0cmFzIGNvbmZpcm1hY2nDs24pLiIsDQogICAgYFByaW9yaWRhZDogJHtwcm9wb3NhbC5wcmlvcml0eX0gwrcgQWdlbnRlIHN1Z2VyaWRvOiAke3Byb3Bvc2FsLmFnZW50fWAsDQogICAgIiIsDQogICAgYCMjIE9iamV0aXZvYCwNCiAgICBwcm9wb3NhbC50aXRsZSwNCiAgICAiIiwNCiAgICBgIyMgQ29udGV4dG8gb3BlcmF0aXZvYCwNCiAgICBgLSBQb3J0YWxlcyBhY3Rpdm9zOiAke3NuYXBzaG90LnBvcnRhbHNfYWN0aXZlfS8ke3NuYXBzaG90LnBvcnRhbHNfdG90YWx9YCwNCiAgICBzdGFsZSA/IGAtIEZ1ZW50ZXMgb2Jzb2xldGFzOiAke3N0YWxlfWAgOiAiIiwNCiAgICBgLSBTZcOxYWxlczogJHtwcm9wb3NhbC5zaWduYWxzLmpvaW4oIiwgIil9YCwNCiAgICAiIiwNCiAgICBgIyMgVGFyZWFgLA0KICAgIHByb3Bvc2FsLnRhc2ssDQogICAgIiIsDQogICAgIkVudHJlZ2E6IGRpZmYgbcOtbmltbyBlbiBUeXBlU2NyaXB0LCBjb21hbmRvcyBRQSAobnBtIHJ1biBidWlsZCksIHJpZXNnb3MgYW50aS1iYW4uIiwNCiAgXQ0KICAgIC5maWx0ZXIoQm9vbGVhbikNCiAgICAuam9pbigiXG4iKTsNCn0NCg0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV2b2x2ZVByb3Bvc2FsKHByb3Bvc2FsSWQ6IHN0cmluZyk6IFByb21pc2U8ew0KICBwcm9wb3NhbDogQWlQcm9wb3NhbDsNCiAgZXZvbHZlUHJvbXB0OiBzdHJpbmc7DQogIGJyaWRnZVVybDogc3RyaW5nOw0KICBzbmFwc2hvdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47DQp9PiB7DQogIGNvbnN0IHNuYXBzaG90ID0gYXdhaXQgcmVhZEpzb248UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFNOQVBTSE9UX0ZJTEUsIHt9KTsNCiAgY29uc3QgcHJvcG9zYWxzID0gYXdhaXQgZ2VuZXJhdGVQcm9wb3NhbHMoDQogICAgT2JqZWN0LmtleXMoc25hcHNob3QpLmxlbmd0aCA/IHNuYXBzaG90IDogYXdhaXQgY29sbGVjdE9wZXJhdGlvbmFsU25hcHNob3QoKQ0KICApOw0KICBjb25zdCBwcm9wb3NhbCA9IHByb3Bvc2Fscy5maW5kKChwKSA9PiBwLmlkID09PSBwcm9wb3NhbElkKTsNCiAgaWYgKCFwcm9wb3NhbCkgew0KICAgIHRocm93IG5ldyBFcnJvcihgUHJvcHVlc3RhIG5vIGVuY29udHJhZGE6ICR7cHJvcG9zYWxJZH1gKTsNCiAgfQ0KICBjb25zdCBldm9sdmVQcm9tcHQgPSBidWlsZEV2b2x2ZVByb21wdChwcm9wb3NhbCwgc25hcHNob3QpOw0KICByZXR1cm4gew0KICAgIHByb3Bvc2FsLA0KICAgIGV2b2x2ZVByb21wdCwNCiAgICBicmlkZ2VVcmw6IGJ1aWxkQnJpZGdlRGVlcExpbmsoZXZvbHZlUHJvbXB0KSwNCiAgICBzbmFwc2hvdCwNCiAgfTsNCn0NCg0KLyoqIEluZ2VzdGEgaW5zaWdodHMgb3BlcmF0aXZvcyBhbCBSQUcgZGVsIHN1cGVydmlzb3IgKG1lbW9yaWEgZGVsIHByb3llY3RvKS4gKi8NCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZEluc2lnaHRzRG9jdW1lbnQoDQogIHNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwNCiAgcHJvcG9zYWxzOiBBaVByb3Bvc2FsW10NCik6IFByb21pc2U8c3RyaW5nPiB7DQogIGNvbnN0IGxpbmVzID0gWw0KICAgIGAjIENhcHRhamF1cyDigJQgaW5zaWdodHMgb3BlcmF0aXZvcyAke3NuYXBzaG90LmNvbGxlY3RlZF9hdCB8fCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCwNCiAgICAiIiwNCiAgICAiIyMgUmVzdW1lbiIsDQogICAgSlNPTi5zdHJpbmdpZnkoc25hcHNob3QuYW5hbHl0aWNzX3N1bW1hcnksIG51bGwsIDIpLA0KICAgICIiLA0KICAgICIjIyBQcm9wdWVzdGFzIGFjdGl2YXMiLA0KICAgIC4uLnByb3Bvc2Fscy5tYXAoDQogICAgICAocCkgPT4gYC0gWyR7cC5wcmlvcml0eX1dICR7cC50aXRsZX06ICR7cC5yZWFzb259YA0KICAgICksDQogICAgIiIsDQogICAgIiMjIFBvcnRhbGVzIG9ic29sZXRvcyIsDQogICAgSlNPTi5zdHJpbmdpZnkoc25hcHNob3Quc3RhbGVfc291cmNlcywgbnVsbCwgMiksDQogIF07DQogIHJldHVybiBsaW5lcy5qb2luKCJcbiIpOw0KfQ0K","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\emailService.ts","beforeExisted":true,"beforeHash":"ff34bafed5c25c9b5404eabbbc60f45f900e175538055ed8fe1d0fc0fe7a14d4","beforeContent":"aW1wb3J0IG5vZGVtYWlsZXIgZnJvbSAibm9kZW1haWxlciI7CmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOwppbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICIuLi90eXBlcy9maWx0ZXIiOwppbXBvcnQgeyBFbWFpbE9wdGlvbnMgfSBmcm9tICIuLi90eXBlcy9lbWFpbCI7CmltcG9ydCB7IEZpbHRlck1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL2ZpbHRlck1vZGVsIjsKaW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHBhdGggZnJvbSAicGF0aCI7CmltcG9ydCBmcyBmcm9tICJmcyI7CgpleHBvcnQgY2xhc3MgRW1haWxTZXJ2aWNlIHsKICBwcml2YXRlIHRyYW5zcG9ydGVyOiBub2RlbWFpbGVyLlRyYW5zcG9ydGVyOwoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHRoaXMudHJhbnNwb3J0ZXIgPSBub2RlbWFpbGVyLmNyZWF0ZVRyYW5zcG9ydCh7CiAgICAgIGhvc3Q6IHByb2Nlc3MuZW52LkVNQUlMX0hPU1QgfHwgInNtdHAuZ21haWwuY29tIiwKICAgICAgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LkVNQUlMX1BPUlQpIHx8IDU4NywKICAgICAgc2VjdXJlOiBwcm9jZXNzLmVudi5FTUFJTF9TRUNVUkUgPT09ICJ0cnVlIiwKICAgICAgYXV0aDogewogICAgICAgIHVzZXI6IHByb2Nlc3MuZW52LkVNQUlMX1VTRVIsCiAgICAgICAgcGFzczogcHJvY2Vzcy5lbnYuRU1BSUxfUEFTUywKICAgICAgfSwKICAgIH0pOwogIH0KCiAgYXN5bmMgc2VuZEVtYWlsKG9wdGlvbnM6IEVtYWlsT3B0aW9ucyk6IFByb21pc2U8dm9pZD4gewogICAgYXdhaXQgdGhpcy50cmFuc3BvcnRlci5zZW5kTWFpbCh7CiAgICAgIGZyb206IHByb2Nlc3MuZW52LkVNQUlMX0ZST00gfHwgIkxsaXJpYSBQcm9wZXJ0aWVzIDxuby1yZXBseUBsbGlyaWEubG9jYWw+IiwKICAgICAgdG86IG9wdGlvbnMudG8sCiAgICAgIHN1YmplY3Q6IG9wdGlvbnMuc3ViamVjdCwKICAgICAgdGV4dDogb3B0aW9ucy50ZXh0LAogICAgICBodG1sOiBvcHRpb25zLmh0bWwsCiAgICB9KTsKICB9CgogIGFzeW5jIHNlbmRBbGVydHMocHJvcGVydGllczogUHJvcGVydHlbXSk6IFByb21pc2U8dm9pZD4gewogICAgY29uc3QgdG8gPSBwcm9jZXNzLmVudi5FTUFJTF9UTyB8fCAiIjsKICAgIGlmICghdG8gfHwgcHJvcGVydGllcy5sZW5ndGggPT09IDApIHJldHVybjsKCiAgICBjb25zdCByb3dzID0gcHJvcGVydGllcy5zbGljZSgwLCAyMCkubWFwKChwKSA9PgogICAgICBgPHRyPgogICAgICAgIDx0ZD48YSBocmVmPSIke3AudXJsfSIgdGFyZ2V0PSJfYmxhbmsiPiR7cC50aXRsZX08L2E+PC90ZD4KICAgICAgICA8dGQ+JHtwLnByaWNlLnRvTG9jYWxlU3RyaW5nKCJlcy1FUyIpfSDigqw8L3RkPgogICAgICAgIDx0ZD4ke3AubXVuaWNpcGFsaXR5IHx8IHAubG9jYXRpb259PC90ZD4KICAgICAgICA8dGQ+JHtwLnByb3BlcnR5X3R5cGV9PC90ZD4KICAgICAgICA8dGQ+JHtwLnJvb21zIHx8ICItIn08L3RkPgogICAgICAgIDx0ZD4ke3Auc2l6ZV9tMiA/IHAuc2l6ZV9tMiArICIgbcKyIiA6ICItIn08L3RkPgogICAgICAgIDx0ZD4ke3Auc291cmNlfTwvdGQ+CiAgICAgIDwvdHI+YAogICAgKS5qb2luKCIiKTsKCiAgICBjb25zdCBodG1sID0gYAogICAgICA8aDI+TnVldmFzIHByb3BpZWRhZGVzIGVuIExsaXJpYSB5IGFscmVkZWRvcmVzPC9oMj4KICAgICAgPHA+U2UgaGFuIGVuY29udHJhZG8gPHN0cm9uZz4ke3Byb3BlcnRpZXMubGVuZ3RofTwvc3Ryb25nPiBwcm9waWVkYWRlcyBxdWUgY29pbmNpZGVuIGNvbiB0dXMgZmlsdHJvcy48L3A+CiAgICAgIDx0YWJsZSBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSI2IiBjZWxsc3BhY2luZz0iMCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4Ij4KICAgICAgICA8dGhlYWQgc3R5bGU9ImJhY2tncm91bmQ6IzBkNmVmZDtjb2xvcjojZmZmIj4KICAgICAgICAgIDx0cj48dGg+VMOtdHVsbzwvdGg+PHRoPlByZWNpbzwvdGg+PHRoPk11bmljaXBpbzwvdGg+PHRoPlRpcG88L3RoPjx0aD5IYWIuPC90aD48dGg+U3VwZXJmaWNpZTwvdGg+PHRoPlBvcnRhbDwvdGg+PC90cj4KICAgICAgICA8L3RoZWFkPgogICAgICAgIDx0Ym9keT4ke3Jvd3N9PC90Ym9keT4KICAgICAgPC90YWJsZT4KICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2NvbG9yOiM4ODg7bWFyZ2luLXRvcDoyMHB4Ij5MbGlyaWEgUHJvcGVydGllcyBTY3JhcGVyIC0gQWxlcnRhIGF1dG9tw6F0aWNhPC9wPgogICAgYDsKCiAgICBhd2FpdCB0aGlzLnNlbmRFbWFpbCh7CiAgICAgIHRvLAogICAgICBzdWJqZWN0OiBgQWxlcnRhOiAke3Byb3BlcnRpZXMubGVuZ3RofSBwcm9waWVkYWRlcyBudWV2YXMgZW4gTGxpcmlhYCwKICAgICAgaHRtbCwKICAgIH0pOwogICAgY29uc29sZS5sb2coYEFsZXJ0YSBlbnZpYWRhIGEgJHt0b30gY29uICR7cHJvcGVydGllcy5sZW5ndGh9IHByb3BpZWRhZGVzYCk7CiAgfQoKICBhc3luYyBzZW5kRmlsdGVyZWRBbGVydHMoKTogUHJvbWlzZTx2b2lkPiB7CiAgICBjb25zdCBmaWx0ZXJzID0gYXdhaXQgRmlsdGVyTW9kZWwuZmluZEVtYWlsQWxlcnRzKCk7CiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7CiAgICAgIGNvbnN0IHByb3BzID0gYXdhaXQgUHJvcGVydHlNb2RlbC5maWx0ZXJBZHZhbmNlZCgKICAgICAgICBmaWx0ZXIubWluX3ByaWNlLCBmaWx0ZXIubWF4X3ByaWNlLCBmaWx0ZXIucHJvcGVydHlfdHlwZSwKICAgICAgICBmaWx0ZXIubXVuaWNpcGFsaXR5LCBmaWx0ZXIubWluX3Jvb21zLCBmaWx0ZXIubWluX3NpemVfbTIKICAgICAgKTsKICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDApIGF3YWl0IHRoaXMuc2VuZEFsZXJ0cyhwcm9wcyk7CiAgICB9CiAgfQp9CgpleHBvcnQgZGVmYXVsdCBuZXcgRW1haWxTZXJ2aWNlKCk7DQo=","afterExisted":true,"afterHash":"c803cab96a02c7f81010ed63b7b04800e2545798f3ae0baf7805ddd4ab3b16c9","afterContent":"aW1wb3J0IG5vZGVtYWlsZXIgZnJvbSAibm9kZW1haWxlciI7CmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAiLi4vdHlwZXMvcHJvcGVydHkiOwppbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICIuLi90eXBlcy9maWx0ZXIiOwppbXBvcnQgeyBFbWFpbE9wdGlvbnMgfSBmcm9tICIuLi90eXBlcy9lbWFpbCI7CmltcG9ydCB7IEZpbHRlck1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL2ZpbHRlck1vZGVsIjsKaW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHBhdGggZnJvbSAicGF0aCI7CmltcG9ydCBmcyBmcm9tICJmcyI7CgpmdW5jdGlvbiBlc2NhcGVIdG1sKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHsKICByZXR1cm4gU3RyaW5nKHZhbHVlID8/ICIiKS5yZXBsYWNlKC9bJjw+IiddL2csIGNoYXIgPT4gKHsKICAgICImIjogIiZhbXA7IiwgIjwiOiAiJmx0OyIsICI+IjogIiZndDsiLCAnIic6ICImcXVvdDsiLCAiJyI6ICImIzM5OyIsCiAgfVtjaGFyXSB8fCBjaGFyKSk7Cn0KCmZ1bmN0aW9uIHNhZmVIdHRwVXJsKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgewogIHRyeSB7CiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHZhbHVlKTsKICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09ICJodHRwOiIgfHwgdXJsLnByb3RvY29sID09PSAiaHR0cHM6IiA/IHVybC50b1N0cmluZygpIDogIiMiOwogIH0gY2F0Y2ggewogICAgcmV0dXJuICIjIjsKICB9Cn0KCmV4cG9ydCBjbGFzcyBFbWFpbFNlcnZpY2UgewogIHByaXZhdGUgdHJhbnNwb3J0ZXI6IG5vZGVtYWlsZXIuVHJhbnNwb3J0ZXI7CgogIGNvbnN0cnVjdG9yKCkgewogICAgdGhpcy50cmFuc3BvcnRlciA9IG5vZGVtYWlsZXIuY3JlYXRlVHJhbnNwb3J0KHsKICAgICAgaG9zdDogcHJvY2Vzcy5lbnYuRU1BSUxfSE9TVCB8fCAic210cC5nbWFpbC5jb20iLAogICAgICBwb3J0OiBOdW1iZXIocHJvY2Vzcy5lbnYuRU1BSUxfUE9SVCkgfHwgNTg3LAogICAgICBzZWN1cmU6IHByb2Nlc3MuZW52LkVNQUlMX1NFQ1VSRSA9PT0gInRydWUiLAogICAgICBhdXRoOiB7CiAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuRU1BSUxfVVNFUiwKICAgICAgICBwYXNzOiBwcm9jZXNzLmVudi5FTUFJTF9QQVNTLAogICAgICB9LAogICAgfSk7CiAgfQoKICBhc3luYyBzZW5kRW1haWwob3B0aW9uczogRW1haWxPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCB0aGlzLnRyYW5zcG9ydGVyLnNlbmRNYWlsKHsKICAgICAgZnJvbTogcHJvY2Vzcy5lbnYuRU1BSUxfRlJPTSB8fCAiTGxpcmlhIFByb3BlcnRpZXMgPG5vLXJlcGx5QGxsaXJpYS5sb2NhbD4iLAogICAgICB0bzogb3B0aW9ucy50bywKICAgICAgc3ViamVjdDogb3B0aW9ucy5zdWJqZWN0LAogICAgICB0ZXh0OiBvcHRpb25zLnRleHQsCiAgICAgIGh0bWw6IG9wdGlvbnMuaHRtbCwKICAgIH0pOwogIH0KCiAgYXN5bmMgc2VuZEFsZXJ0cyhwcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdLCByZWNpcGllbnQ/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGNvbnN0IHRvID0gcmVjaXBpZW50IHx8IHByb2Nlc3MuZW52LkVNQUlMX1RPIHx8ICIiOwogICAgaWYgKCF0byB8fCBwcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKICAgIGNvbnN0IHJvd3MgPSBwcm9wZXJ0aWVzLnNsaWNlKDAsIDIwKS5tYXAoKHApID0+CiAgICAgIGA8dHI+CiAgICAgICAgPHRkPjxhIGhyZWY9IiR7ZXNjYXBlSHRtbChzYWZlSHR0cFVybChwLnVybCkpfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+JHtlc2NhcGVIdG1sKHAudGl0bGUpfTwvYT48L3RkPgogICAgICAgIDx0ZD4ke3AucHJpY2UudG9Mb2NhbGVTdHJpbmcoImVzLUVTIil9IOKCrDwvdGQ+CiAgICAgICAgPHRkPiR7ZXNjYXBlSHRtbChwLm11bmljaXBhbGl0eSB8fCBwLmxvY2F0aW9uKX08L3RkPgogICAgICAgIDx0ZD4ke2VzY2FwZUh0bWwocC5wcm9wZXJ0eV90eXBlKX08L3RkPgogICAgICAgIDx0ZD4ke3Aucm9vbXMgfHwgIi0ifTwvdGQ+CiAgICAgICAgPHRkPiR7cC5zaXplX20yID8gcC5zaXplX20yICsgIiBtwrIiIDogIi0ifTwvdGQ+CiAgICAgICAgPHRkPiR7ZXNjYXBlSHRtbChwLnNvdXJjZSl9PC90ZD4KICAgICAgPC90cj5gCiAgICApLmpvaW4oIiIpOwoKICAgIGNvbnN0IGh0bWwgPSBgCiAgICAgIDxoMj5OdWV2YXMgcHJvcGllZGFkZXMgZW4gTGxpcmlhIHkgYWxyZWRlZG9yZXM8L2gyPgogICAgICA8cD5TZSBoYW4gZW5jb250cmFkbyA8c3Ryb25nPiR7cHJvcGVydGllcy5sZW5ndGh9PC9zdHJvbmc+IHByb3BpZWRhZGVzIHF1ZSBjb2luY2lkZW4gY29uIHR1cyBmaWx0cm9zLjwvcD4KICAgICAgPHRhYmxlIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjYiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHgiPgogICAgICAgIDx0aGVhZCBzdHlsZT0iYmFja2dyb3VuZDojMGQ2ZWZkO2NvbG9yOiNmZmYiPgogICAgICAgICAgPHRyPjx0aD5Uw610dWxvPC90aD48dGg+UHJlY2lvPC90aD48dGg+TXVuaWNpcGlvPC90aD48dGg+VGlwbzwvdGg+PHRoPkhhYi48L3RoPjx0aD5TdXBlcmZpY2llPC90aD48dGg+UG9ydGFsPC90aD48L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PiR7cm93c308L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICA8cCBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6Izg4ODttYXJnaW4tdG9wOjIwcHgiPkxsaXJpYSBQcm9wZXJ0aWVzIFNjcmFwZXIgLSBBbGVydGEgYXV0b23DoXRpY2E8L3A+CiAgICBgOwoKICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsKHsKICAgICAgdG8sCiAgICAgIHN1YmplY3Q6IGBBbGVydGE6ICR7cHJvcGVydGllcy5sZW5ndGh9IHByb3BpZWRhZGVzIG51ZXZhcyBlbiBMbGlyaWFgLAogICAgICBodG1sLAogICAgfSk7CiAgICBjb25zb2xlLmxvZyhgQWxlcnRhIGVudmlhZGEgYSAke3RvfSBjb24gJHtwcm9wZXJ0aWVzLmxlbmd0aH0gcHJvcGllZGFkZXNgKTsKICB9CgogIGFzeW5jIHNlbmRGaWx0ZXJlZEFsZXJ0cygpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGNvbnN0IGZpbHRlcnMgPSBhd2FpdCBGaWx0ZXJNb2RlbC5maW5kRW1haWxBbGVydHMoKTsKICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHsKICAgICAgY29uc3QgcHJvcHMgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmZpbHRlckFkdmFuY2VkKAogICAgICAgIGZpbHRlci5taW5fcHJpY2UsIGZpbHRlci5tYXhfcHJpY2UsIGZpbHRlci5wcm9wZXJ0eV90eXBlLAogICAgICAgIGZpbHRlci5tdW5pY2lwYWxpdHksIGZpbHRlci5taW5fcm9vbXMsIGZpbHRlci5taW5fc2l6ZV9tMiwKICAgICAgICBmaWx0ZXIub3BlcmF0aW9uX3R5cGUsIHVuZGVmaW5lZCwgZmlsdGVyLnBvcnRhbAogICAgICApOwogICAgICBjb25zdCBwZW5kaW5nID0gZmlsdGVyLmlkID8gYXdhaXQgRmlsdGVyTW9kZWwuZXhjbHVkZURlbGl2ZXJlZChmaWx0ZXIuaWQsIHByb3BzKSA6IHByb3BzOwogICAgICBpZiAocGVuZGluZy5sZW5ndGggPiAwKSB7CiAgICAgICAgYXdhaXQgdGhpcy5zZW5kQWxlcnRzKHBlbmRpbmcsIGZpbHRlci5yZWNpcGllbnRfZW1haWwpOwogICAgICAgIGlmIChmaWx0ZXIuaWQpIHsKICAgICAgICAgIGF3YWl0IEZpbHRlck1vZGVsLm1hcmtEZWxpdmVyZWQoZmlsdGVyLmlkLCBwZW5kaW5nLm1hcChwcm9wZXJ0eSA9PiBwcm9wZXJ0eS5pZCEpLmZpbHRlcihCb29sZWFuKSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9CgpleHBvcnQgZGVmYXVsdCBuZXcgRW1haWxTZXJ2aWNlKCk7DQo=","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\services\\propertyService.ts","beforeExisted":true,"beforeHash":"fa0014e4b21f696aed24f6ebb75691ec67fd23e55642ee288da3479060ff70d4","beforeContent":"aW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKaW1wb3J0IHsgYnVzTG9nLCBzY3JhcGVyQnVzIH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKaW1wb3J0IHsKICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwgRm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlciwKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn0gZnJvbSAiLi4vc2NyYXBlcnMvaW5kZXgiOwppbXBvcnQgeyBHZW9jb2RpbmdTZXJ2aWNlIH0gZnJvbSAiLi9nZW9jb2RpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgU2NvcmluZ1NlcnZpY2UgfSBmcm9tICIuL3Njb3JpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgRGVkdXBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICIuL2RlZHVwbGljYXRpb25TZXJ2aWNlIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOwppbXBvcnQgeyBab25lTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUm93RGF0YVBhY2tldCB9IGZyb20gIm15c3FsMiI7CmltcG9ydCB7IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbiB9IGZyb20gIi4uL3NjcmFwZXJzL2NhcGFiaWxpdGllcyI7CgovLyBNYXBhIGRlIG5vbWJyZSBkZSBjbGFzZSDihpIgY29uc3RydWN0b3IgZGUgc2NyYXBlciAoUGxheXdyaWdodCA+IENoZWVyaW8gcGFyYSBwb3J0YWxlcyBKUykKY29uc3QgU0NSQVBFUl9NQVA6IFJlY29yZDxzdHJpbmcsIG5ldyAoKSA9PiBhbnk+ID0gewogIElkZWFsaXN0YVNjcmFwZXI6IElkZWFsaXN0YVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgLy8gYWxpYXMgbGVnYWN5IOKGkiBQbGF5d3JpZ2h0CiAgSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGF2ZSBkaXJlY3RhICh2YWxvciBhY3R1YWwgZW4gQkQpCiAgRm90b2Nhc2FTY3JhcGVyOiBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAvLyBhbGlhcyBsZWdhY3kg4oaSIFBsYXl3cmlnaHQKICBGb3RvY2FzYVBsYXl3cmlnaHRTY3JhcGVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsYXZlIGRpcmVjdGEgKHZhbG9yIGFjdHVhbCBlbiBCRCkKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn07Cgpjb25zdCBnZW9TZXJ2aWNlID0gbmV3IEdlb2NvZGluZ1NlcnZpY2UoKTsKY29uc3Qgc2NvcmluZ1NlcnZpY2UgPSBuZXcgU2NvcmluZ1NlcnZpY2UoKTsKY29uc3QgZGVkdXBsaWNhdGlvblNlcnZpY2UgPSBuZXcgRGVkdXBsaWNhdGlvblNlcnZpY2UoKTsKCmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlcnZpY2UgewogIGFzeW5jIGdldEFsbFByb3BlcnRpZXMoKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7CiAgICByZXR1cm4gUHJvcGVydHlNb2RlbC5maW5kQWxsKCk7CiAgfQoKICBhc3luYyBnZXRGaWx0ZXJlZFByb3BlcnRpZXMoZmlsdGVyOiBQYXJ0aWFsPEZpbHRlcj4pOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIHJldHVybiBQcm9wZXJ0eU1vZGVsLmZpbHRlckFkdmFuY2VkKAogICAgICBmaWx0ZXIubWluX3ByaWNlLCBmaWx0ZXIubWF4X3ByaWNlLCBmaWx0ZXIucHJvcGVydHlfdHlwZSwKICAgICAgZmlsdGVyLm11bmljaXBhbGl0eSwgZmlsdGVyLm1pbl9yb29tcywgZmlsdGVyLm1pbl9zaXplX20yCiAgICApOwogIH0KCiAgYXN5bmMgZ2V0UHJvcGVydHlCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb3BlcnR5IHwgbnVsbD4gewogICAgcmV0dXJuIFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICB9CgogIGFzeW5jIGNyZWF0ZVByb3BlcnR5KHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHk+IHsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHByb3BlcnR5KTsKICAgIHJldHVybiBwcm9wZXJ0eTsKICB9CgogIGFzeW5jIHVwZGF0ZVByb3BlcnR5KGlkOiBzdHJpbmcsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb21pc2U8UHJvcGVydHkgfCBudWxsPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBudWxsOwogICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cHNlcnQoeyAuLi5leGlzdGluZywgLi4ucHJvcGVydHkgfSk7CiAgICByZXR1cm4gcHJvcGVydHk7CiAgfQoKICBhc3luYyBkZWxldGVQcm9wZXJ0eShpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEJ5SWQocGFyc2VJbnQoaWQpKTsKICAgIGlmICghZXhpc3RpbmcpIHJldHVybiBmYWxzZTsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwuZGVsZXRlQnlJZChwYXJzZUludChpZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICBhc3luYyBzY3JhcGVBbGwob3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIC8vIENvbnN0cnVpciBsaXN0YSBkZSBzY3JhcGVycyBhY3Rpdm9zIHNlZ8O6biBsYSBCRCBkZSBwb3J0YWxlcwogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBrbm93blNjcmFwZXJDbGFzc2VzID0gc2NyYXBlckNsYXNzZXMuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKTsKICAgIGNvbnN0IGNvbXBhdGlibGVDbGFzc2VzID0ga25vd25TY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCB1bnN1cHBvcnRlZENsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+ICFzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCBzY3JhcGVycyA9IGNvbXBhdGlibGVDbGFzc2VzCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgVXNhbmRvICR7c2NyYXBlcnMubGVuZ3RofSBwb3J0YWxlcyBhY3Rpdm9zICgke29wZXJhdGlvblR5cGV9KTogJHtjb21wYXRpYmxlQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgaWYgKHVuc3VwcG9ydGVkQ2xhc3Nlcy5sZW5ndGggPiAwKSB7CiAgICAgIGJ1c0xvZygiaW5mbyIsIGBPbWl0aWRvcyBwb3Igbm8gc29wb3J0YXIgJHtvcGVyYXRpb25UeXBlfTogJHt1bnN1cHBvcnRlZENsYXNzZXMuam9pbigiLCAiKX1gKTsKICAgIH0KCiAgICBsZXQgdG90YWwgPSAwOwogICAgbGV0IG5ld19jb3VudCA9IDA7CiAgICBjb25zdCBzYXZlZElkczogbnVtYmVyW10gPSBbXTsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwoKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSB7IG5ld19jb3VudCsrOyBzYXZlZElkcy5wdXNoKHNhdmVkKTsgfQogICAgICAgIH0KCiAgICAgICAgLy8gQXJjaGl2YXIgYW51bmNpb3MgZGVsIHBvcnRhbCBxdWUgeWEgbm8gZXN0w6FuIHB1YmxpY2Fkb3MKICAgICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCAmJiAhc2NyYXBlci5pc1BhcnRpYWxDb3ZlcmFnZSgpKSB7CiAgICAgICAgICBjb25zdCBzcmM6IHN0cmluZyA9IHNjcmFwZXIuc291cmNlID8/IHByb3BzWzBdLnNvdXJjZTsKICAgICAgICAgIGNvbnN0IGFyY2hpdmVkID0gYXdhaXQgUHJvcGVydHlNb2RlbC5hcmNoaXZlU3RhbGVCeVNvdXJjZShzcmMsIG9wZXJhdGlvblR5cGUsIHNjcmFwZVN0YXJ0ZWRBdCk7CiAgICAgICAgICBpZiAoYXJjaGl2ZWQgPiAwKSBidXNMb2coImluZm8iLCBgJHthcmNoaXZlZH0gYW51bmNpbyhzKSBhcmNoaXZhZG9zICh5YSBubyBwdWJsaWNhZG9zKWAsIHBvcnRhbE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgYnVzTG9nKCJzdWNjZXNzIiwgYENvbXBsZXRhZG86ICR7cHJvcHMubGVuZ3RofSBvYnRlbmlkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXMvYWN0dWFsaXphZGFzYCwgcG9ydGFsTmFtZSk7CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJkb25lIiwgdG90YWw6IHByb3BzLmxlbmd0aCwgc2F2ZWQ6IG5ld19jb3VudCB9KTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidXNMb2coInN1Y2Nlc3MiLCBgU2NyYXBpbmcgY29tcGxldGFkbzogJHt0b3RhbH0gcHJvcGllZGFkZXMgcHJvY2VzYWRhcywgJHtuZXdfY291bnR9IGd1YXJkYWRhcy9hY3R1YWxpemFkYXNgKTsKCiAgICAvLyBQb3N0LXByb2Nlc2FkbyBhc8OtbmNyb25vOiBzY29yaW5nICsgZGVkdXBsaWNhY2nDs24KICAgIHRoaXMuX3Bvc3RQcm9jZXNzKCk7CgogICAgcmV0dXJuIHsgdG90YWwsIG5ld19jb3VudCB9OwogIH0KCiAgLyoqIEVqZWN1dGEgZWwgc2NyYXBpbmcgZGUgVU4gw7puaWNvIHBvcnRhbCBwb3Igc3Ugc2NyYXBlcl9jbGFzcyAqLwogIGFzeW5jIHNjcmFwZVBvcnRhbChzY3JhcGVyQ2xhc3M6IHN0cmluZywgb3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IFNjcmFwZXJDdG9yID0gU0NSQVBFUl9NQVBbc2NyYXBlckNsYXNzXTsKICAgIGlmICghU2NyYXBlckN0b3IpIHRocm93IG5ldyBFcnJvcihgU2NyYXBlciBubyBlbmNvbnRyYWRvOiAke3NjcmFwZXJDbGFzc31gKTsKICAgIGlmICghc3VwcG9ydHNTY3JhcGVyT3BlcmF0aW9uKHNjcmFwZXJDbGFzcywgb3BlcmF0aW9uVHlwZSkpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBzY3JhcGVyICR7c2NyYXBlckNsYXNzfSBubyBzb3BvcnRhIGxhIG9wZXJhY2nDs24gJyR7b3BlcmF0aW9uVHlwZX0nYCk7CiAgICB9CiAgICBjb25zdCBzY3JhcGVyID0gbmV3IFNjcmFwZXJDdG9yKCkuc2V0T3BlcmF0aW9uVHlwZShvcGVyYXRpb25UeXBlKTsKICAgIGNvbnN0IHBvcnRhbE5hbWUgPSBzY3JhcGVyQ2xhc3MucmVwbGFjZSgvU2NyYXBlciQvLCAiIikucmVwbGFjZSgvUGxheXdyaWdodCQvLCAiIChQbGF5d3JpZ2h0KSIpOwogICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJzdGFydCIgfSk7CgogICAgbGV0IHRvdGFsID0gMDsKICAgIGxldCBuZXdfY291bnQgPSAwOwoKICAgIHRyeSB7CiAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoKTsKICAgICAgdG90YWwgPSBwcm9wcy5sZW5ndGg7CiAgICAgIGJ1c0xvZygiaW5mbyIsIGBPYnRlbmlkYXMgJHtwcm9wcy5sZW5ndGh9IHByb3BpZWRhZGVzIGRlbCBwb3J0YWxgLCBwb3J0YWxOYW1lKTsKICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BzKSB7CiAgICAgICAgY29uc3Qgc2F2ZWQgPSBhd2FpdCB0aGlzLl9zYXZlUHJvcGVydHkocHJvcCk7CiAgICAgICAgaWYgKHNhdmVkKSBuZXdfY291bnQrKzsKICAgICAgfQogICAgICAvLyBBcmNoaXZhciBhbnVuY2lvcyBkZWwgcG9ydGFsIHF1ZSB5YSBubyBlc3TDoW4gcHVibGljYWRvcwogICAgICBpZiAocHJvcHMubGVuZ3RoID4gMCAmJiAhc2NyYXBlci5pc1BhcnRpYWxDb3ZlcmFnZSgpKSB7CiAgICAgICAgY29uc3Qgc3JjOiBzdHJpbmcgPSBzY3JhcGVyLnNvdXJjZSA/PyBwcm9wc1swXS5zb3VyY2U7CiAgICAgICAgY29uc3QgYXJjaGl2ZWQgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmFyY2hpdmVTdGFsZUJ5U291cmNlKHNyYywgb3BlcmF0aW9uVHlwZSwgc2NyYXBlU3RhcnRlZEF0KTsKICAgICAgICBpZiAoYXJjaGl2ZWQgPiAwKSBidXNMb2coImluZm8iLCBgJHthcmNoaXZlZH0gYW51bmNpbyhzKSBhcmNoaXZhZG9zICh5YSBubyBwdWJsaWNhZG9zKWAsIHBvcnRhbE5hbWUpOwogICAgICB9CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImVycm9yIiwgbXNnOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlIH0pOwogICAgfQoKICAgIGJ1c0xvZygic3VjY2VzcyIsIGBDb21wbGV0YWRvOiAke3RvdGFsfSBvYnRlbmlkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXNgLCBwb3J0YWxOYW1lKTsKICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZG9uZSIsIHRvdGFsLCBzYXZlZDogbmV3X2NvdW50IH0pOwogICAgdGhpcy5fcG9zdFByb2Nlc3MocG9ydGFsTmFtZSk7CiAgICByZXR1cm4geyB0b3RhbCwgbmV3X2NvdW50IH07CiAgfQoKICAvKiogU2NyYXBpbmcgcmVzdHJpbmdpZG8gYSB1bmEgw7puaWNhIHpvbmEgZ2VvZ3LDoWZpY2EgKHRvZG9zIGxvcyBwb3J0YWxlcyBhY3Rpdm9zKSAqLwogIGFzeW5jIHNjcmFwZUJ5Wm9uZSh6b25lU2x1Zzogc3RyaW5nLCBvcGVyYXRpb25UeXBlOiAic2FsZSIgfCAicmVudCIgPSAic2FsZSIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgbmV3X2NvdW50OiBudW1iZXIgfT4gewogICAgY29uc3Qgem9uZSA9IGF3YWl0IFpvbmVNb2RlbC5maW5kQnlTbHVnKHpvbmVTbHVnKTsKICAgIGlmICghem9uZSkgdGhyb3cgbmV3IEVycm9yKGBab25hICcke3pvbmVTbHVnfScgbm8gZW5jb250cmFkYSBlbiBsYSBiYXNlIGRlIGRhdG9zYCk7CgogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBrbm93blNjcmFwZXJDbGFzc2VzID0gc2NyYXBlckNsYXNzZXMuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKTsKICAgIGNvbnN0IGNvbXBhdGlibGVDbGFzc2VzID0ga25vd25TY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCB1bnN1cHBvcnRlZENsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+ICFzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCBzY3JhcGVycyA9IGNvbXBhdGlibGVDbGFzc2VzCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRab25lT3ZlcnJpZGUoW3pvbmVdKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgU2NyYXBpbmcgem9uYSAiJHt6b25lLm5hbWV9IiDigJQgJHtzY3JhcGVycy5sZW5ndGh9IHBvcnRhbGVzYCk7CiAgICBpZiAodW5zdXBwb3J0ZWRDbGFzc2VzLmxlbmd0aCA+IDApIHsKICAgICAgYnVzTG9nKCJpbmZvIiwgYE9taXRpZG9zIHBvciBubyBzb3BvcnRhciAke29wZXJhdGlvblR5cGV9OiAke3Vuc3VwcG9ydGVkQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgfQoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoKTsKICAgICAgICB0b3RhbCArPSBwcm9wcy5sZW5ndGg7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYE9idGVuaWRhcyAke3Byb3BzLmxlbmd0aH0gcHJvcGllZGFkZXNgLCBwb3J0YWxOYW1lKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSBuZXdfY291bnQrKzsKICAgICAgICB9CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJkb25lIiwgdG90YWw6IHByb3BzLmxlbmd0aCwgc2F2ZWQ6IG5ld19jb3VudCB9KTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidXNMb2coInN1Y2Nlc3MiLCBgWm9uYSAiJHt6b25lLm5hbWV9IiBjb21wbGV0YWRhOiAke3RvdGFsfSBwcm9waWVkYWRlcyBwcm9jZXNhZGFzLCAke25ld19jb3VudH0gZ3VhcmRhZGFzYCk7CiAgICB0aGlzLl9wb3N0UHJvY2Vzcyhgem9uYToke3pvbmUubmFtZX1gKTsKICAgIHJldHVybiB7IHRvdGFsLCBuZXdfY291bnQgfTsKICB9CgogIC8qKiBSZS1nZW9jb2RpZmljYSBwcm9waWVkYWRlcyBxdWUgdGllbmVuIGNvb3JkZW5hZGFzIGRlIGNlbnRybyBkZSBtdW5pY2lwaW8gZXhhY3RhcyAqLwogIGFzeW5jIHJlR2VvY29kZUFsbCgpOiBQcm9taXNlPHsgdXBkYXRlZDogbnVtYmVyIH0+IHsKICAgIC8vIFVzYXIgY2VudHJvcyBkZSB6b25hIGRlc2RlIGxhIEJEIGVuIGx1Z2FyIGRlIHZhbG9yZXMgaGFyZGNvZGVhZG9zCiAgICBjb25zdCB6b25lcyA9IGF3YWl0IFpvbmVNb2RlbC5maW5kQWN0aXZlKCk7CiAgICBjb25zdCBjZW50ZXJDb29yZHMgPSB6b25lcy5tYXAoeiA9PiBbei5sYXQsIHoubG5nXSBhcyBbbnVtYmVyLCBudW1iZXJdKTsKICAgIGNvbnN0IGlzQ2VudGVyID0gKGxhdDogbnVtYmVyLCBsbmc6IG51bWJlcikgPT4KICAgICAgY2VudGVyQ29vcmRzLnNvbWUoKFtsYSwgbG5dKSA9PiBNYXRoLmFicyhsYSAtIGxhdCkgPCAwLjAwMDEgJiYgTWF0aC5hYnMobG4gLSBsbmcpIDwgMC4wMDAxKTsKCiAgICBjb25zdCBhbGwgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmZpbmRBbGwoKTsKICAgIGxldCB1cGRhdGVkID0gMDsKICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGwpIHsKICAgICAgdHJ5IHsKICAgICAgICBpZiAoIXByb3AubGF0IHx8ICFwcm9wLmxuZyB8fCBpc0NlbnRlcihwcm9wLmxhdCwgcHJvcC5sbmcpKSB7CiAgICAgICAgICBjb25zdCBnZW9RdWVyeSA9IFtwcm9wLmxvY2F0aW9uLCBwcm9wLm11bmljaXBhbGl0eSwgIlZhbGVuY2lhIiwgIkVzcGHDsWEiXQogICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKS5qb2luKCIsICIpOwogICAgICAgICAgbGV0IGdlbzogeyBsYXQ6IG51bWJlcjsgbG5nOiBudW1iZXIgfSB8IG51bGwgPSBudWxsOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZXRDb29yZGluYXRlcyhnZW9RdWVyeSk7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgaWYgKHByb3AubXVuaWNpcGFsaXR5KSB7CiAgICAgICAgICAgICAgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZW9jb2RlTXVuaWNpcGFsaXR5KHByb3AubXVuaWNpcGFsaXR5KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGdlbykgewogICAgICAgICAgICBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydCh7IC4uLnByb3AsIGxhdDogZ2VvLmxhdCwgbG5nOiBnZW8ubG5nIH0pOwogICAgICAgICAgICB1cGRhdGVkKys7CiAgICAgICAgICB9CiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMTEwMCkpOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoX2UpIHsgLyogc2tpcCAqLyB9CiAgICB9CiAgICByZXR1cm4geyB1cGRhdGVkIH07CiAgfQoKICAvLyDilIDilIDilIAgSGVscGVycyBwcml2YWRvcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKCiAgLyoqIEdlb2NvZGlmaWNhIHNpIGZhbHRhLCBjYWxjdWxhIHByZWNpby9twrIsIGd1YXJkYSBlbiBCRCB5IHJlZ2lzdHJhIGhpc3RvcmlhbC4KICAgKiAgRGV2dWVsdmUgZWwgSUQgZ3VhcmRhZG8gbyBudWxsIHNpIGh1Ym8gZXJyb3IgKGR1cGxpY2FkbyB1IG90cm8pLiAqLwogIHByaXZhdGUgYXN5bmMgX3NhdmVQcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IFByb21pc2U8bnVtYmVyIHwgbnVsbD4gewogICAgdHJ5IHsKICAgICAgaWYgKCFwcm9wLmxhdCAmJiAhcHJvcC5sbmcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgY29uc3QgZ2VvUXVlcnkgPSAoW3Byb3AubG9jYXRpb24sIHByb3AubXVuaWNpcGFsaXR5LCAiVmFsZW5jaWEiLCAiRXNwYcOxYSJdIGFzIHN0cmluZ1tdKQogICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKS5qb2luKCIsICIpOwogICAgICAgICAgY29uc3QgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZXRDb29yZGluYXRlcyhnZW9RdWVyeSk7CiAgICAgICAgICBwcm9wLmxhdCA9IGdlby5sYXQ7CiAgICAgICAgICBwcm9wLmxuZyA9IGdlby5sbmc7CiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICBpZiAocHJvcC5tdW5pY2lwYWxpdHkpIHsKICAgICAgICAgICAgY29uc3QgZ2VvID0gYXdhaXQgZ2VvU2VydmljZS5nZW9jb2RlTXVuaWNpcGFsaXR5KHByb3AubXVuaWNpcGFsaXR5KTsKICAgICAgICAgICAgaWYgKGdlbykgeyBwcm9wLmxhdCA9IGdlby5sYXQ7IHByb3AubG5nID0gZ2VvLmxuZzsgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBpZiAocHJvcC5wcmljZSA+IDAgJiYgKHByb3Auc2l6ZV9tMiB8fCAwKSA+IDApIHsKICAgICAgICAocHJvcCBhcyBhbnkpLnByaWNlX3Blcl9tMiA9IE1hdGgucm91bmQocHJvcC5wcmljZSAvIHByb3Auc2l6ZV9tMiEpOwogICAgICB9CiAgICAgIGNvbnN0IHNhdmVkSWQgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydChwcm9wKTsKICAgICAgaWYgKHNhdmVkSWQgJiYgcHJvcC5wcmljZSA+IDApIHsKICAgICAgICBhd2FpdCBQcmljZUhpc3RvcnlNb2RlbC5yZWNvcmRJZkNoYW5nZWQoc2F2ZWRJZCwgcHJvcC5wcmljZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHNhdmVkSWQgPz8gbnVsbDsKICAgIH0gY2F0Y2ggewogICAgICByZXR1cm4gbnVsbDsgLy8gc2tpcCBkdXBsaWNhdGVzIC8gY29uc3RyYWludCBlcnJvcnMKICAgIH0KICB9CgogIC8qKiBMYW56YSBzY29yaW5nICsgZGVkdXBsaWNhY2nDs24gZGUgZm9ybWEgYXPDrW5jcm9uYSBzaW4gYmxvcXVlYXIgbGEgcmVzcHVlc3RhICovCiAgcHJpdmF0ZSBfcG9zdFByb2Nlc3MobGFiZWwgPSAiIik6IHZvaWQgewogICAgc2V0SW1tZWRpYXRlKGFzeW5jICgpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBidXNMb2coImluZm8iLCAiQ2FsY3VsYW5kbyBzY29yZXMuLi4iLCBsYWJlbCk7CiAgICAgICAgYXdhaXQgc2NvcmluZ1NlcnZpY2Uuc2NvcmVBbGwoKTsKICAgICAgICBidXNMb2coImluZm8iLCAiRWplY3V0YW5kbyBkZWR1cGxpY2FjacOzbi4uLiIsIGxhYmVsKTsKICAgICAgICBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5yZXNldER1cGxpY2F0ZXMoKTsKICAgICAgICBhd2FpdCBkZWR1cGxpY2F0aW9uU2VydmljZS5ydW5EZWR1cGxpY2F0aW9uKCk7CiAgICAgICAgYnVzTG9nKCJzdWNjZXNzIiwgIlBvc3QtcHJvY2VzYWRvIGNvbXBsZXRhZG8g4pyFIiwgbGFiZWwpOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBidXNMb2coImVycm9yIiwgYFtQb3N0LXNjcmFwaW5nXSBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIGxhYmVsKTsKICAgICAgfQogICAgfSk7CiAgfQoKICAvKiogRGF0b3MgZGUgYW5hbHl0aWNzIHBhcmEgZWwgZGFzaGJvYXJkICovCiAgYXN5bmMgZ2V0QW5hbHl0aWNzKCk6IFByb21pc2U8YW55PiB7CiAgICBjb25zdCBbYnlQb3J0YWxdID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIHNvdXJjZSwgQ09VTlQoKikgQVMgY291bnQsIEFWRyhwcmljZSkgQVMgYXZnX3ByaWNlLCBBVkcocHJpY2VfcGVyX20yKSBBUyBhdmdfcG0yCiAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBpc19kdXBsaWNhdGUgPSAwIE9SIGlzX2R1cGxpY2F0ZSBJUyBOVUxMCiAgICAgIEdST1VQIEJZIHNvdXJjZSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbYnlNdW5pXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBtdW5pY2lwYWxpdHksIENPVU5UKCopIEFTIGNvdW50LCBBVkcocHJpY2UpIEFTIGF2Z19wcmljZSwKICAgICAgICAgICAgIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIsIEFWRyhzY29yZSkgQVMgYXZnX3Njb3JlCiAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBpc19kdXBsaWNhdGUgPSAwIE9SIGlzX2R1cGxpY2F0ZSBJUyBOVUxMCiAgICAgIEdST1VQIEJZIG11bmljaXBhbGl0eSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbYnlUeXBlXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBwcm9wZXJ0eV90eXBlLCBDT1VOVCgqKSBBUyBjb3VudCwgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UKICAgICAgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlzX2R1cGxpY2F0ZSA9IDAgT1IgaXNfZHVwbGljYXRlIElTIE5VTEwKICAgICAgR1JPVVAgQlkgcHJvcGVydHlfdHlwZSBPUkRFUiBCWSBjb3VudCBERVNDCiAgICBgKTsKCiAgICBjb25zdCBbc3VtbWFyeV0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYAogICAgICBTRUxFQ1QgQ09VTlQoKikgQVMgdG90YWwsCiAgICAgICAgICAgICBDT1VOVChDQVNFIFdIRU4gaXNfZHVwbGljYXRlID0gMSBUSEVOIDEgRU5EKSBBUyBkdXBsaWNhdGVzLAogICAgICAgICAgICAgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UsIEFWRyhwcmljZV9wZXJfbTIpIEFTIGF2Z19wbTIsCiAgICAgICAgICAgICBBVkcoc2NvcmUpIEFTIGF2Z19zY29yZSwKICAgICAgICAgICAgIE1JTihwcmljZSkgQVMgbWluX3ByaWNlLCBNQVgocHJpY2UpIEFTIG1heF9wcmljZSwKICAgICAgICAgICAgIChTRUxFQ1QgQ09VTlQoKikgRlJPTSBwcmljZV9oaXN0b3J5KSBBUyBwcmljZV9yZWNvcmRzCiAgICAgIEZST00gcHJvcGVydGllcwogICAgYCk7CgogICAgY29uc3QgcHJpY2VEcm9wcyA9IGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLmdldFByaWNlRHJvcFN0YXRzKCk7CiAgICBjb25zdCBwcmljZU92ZXJUaW1lID0gYXdhaXQgUHJpY2VIaXN0b3J5TW9kZWwuZ2V0T3ZlcmFsbFRyZW5kKDkwKTsKCiAgICByZXR1cm4gewogICAgICBzdW1tYXJ5OiBzdW1tYXJ5WzBdLAogICAgICBieVBvcnRhbCwgYnlNdW5pLCBieVR5cGUsCiAgICAgIHByaWNlRHJvcHMsIHByaWNlT3ZlclRpbWUsCiAgICB9OwogIH0KfQoKZXhwb3J0IGRlZmF1bHQgbmV3IFByb3BlcnR5U2VydmljZSgpOwo=","afterExisted":true,"afterHash":"0cb26f93bdbc9b1cb5b8271230bf94f644a943ce8ca838fc157cf085ca71697a","afterContent":"aW1wb3J0IHsgUHJvcGVydHlNb2RlbCB9IGZyb20gIi4uL21vZGVscy9wcm9wZXJ0eU1vZGVsIjsKaW1wb3J0IHsgUHJpY2VIaXN0b3J5TW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcHJpY2VIaXN0b3J5TW9kZWwiOwppbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gIi4uL3R5cGVzL3Byb3BlcnR5IjsKaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAiLi4vdHlwZXMvZmlsdGVyIjsKaW1wb3J0IHsgYnVzTG9nLCBzY3JhcGVyQnVzIH0gZnJvbSAiLi4vdXRpbHMvc2NyYXBlckV2ZW50QnVzIjsKaW1wb3J0IHsKICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwgRm90b2Nhc2FQbGF5d3JpZ2h0U2NyYXBlciwKICBIYWJpdGFjbGlhU2NyYXBlciwgUGlzb3NTY3JhcGVyLCBUcm92YXRTY3JhcGVyLAogIEt5ZXJvU2NyYXBlciwgVGhpbmtTcGFpblNjcmFwZXIsCiAgTWlsYW51bmNpb3NTY3JhcGVyLCBZYWVuY29udHJlU2NyYXBlciwgQ2FzYXNhcG9TY3JhcGVyLCBWaWJib1NjcmFwZXIsCiAgR2xvYmFsaXphU2NyYXBlciwgTnVyb2FTY3JhcGVyLCBFbmdlbFZvbGtlcnNTY3JhcGVyLCBUZWNub2Nhc2FTY3JhcGVyLAogIEVyYVNwYWluU2NyYXBlciwgUmVtYXhTY3JhcGVyLCBJbm1vYmlsaWFyaWFTY3JhcGVyLCBTcGFpbkhvdXNlc1NjcmFwZXIsCiAgSG9scHJvcFNjcmFwZXIsCn0gZnJvbSAiLi4vc2NyYXBlcnMvaW5kZXgiOwppbXBvcnQgeyBHZW9jb2RpbmdTZXJ2aWNlIH0gZnJvbSAiLi9nZW9jb2RpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgU2NvcmluZ1NlcnZpY2UgfSBmcm9tICIuL3Njb3JpbmdTZXJ2aWNlIjsKaW1wb3J0IHsgRGVkdXBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICIuL2RlZHVwbGljYXRpb25TZXJ2aWNlIjsKaW1wb3J0IHsgUG9ydGFsTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvcG9ydGFsTW9kZWwiOwppbXBvcnQgeyBab25lTW9kZWwgfSBmcm9tICIuLi9tb2RlbHMvem9uZU1vZGVsIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgUm93RGF0YVBhY2tldCB9IGZyb20gIm15c3FsMiI7CmltcG9ydCB7IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbiB9IGZyb20gIi4uL3NjcmFwZXJzL2NhcGFiaWxpdGllcyI7CmltcG9ydCB7IFNjcmFwaW5nUG9ydGFsUnVuTW9kZWwsIFBvcnRhbFJ1blN0YXR1cyB9IGZyb20gIi4uL21vZGVscy9zY3JhcGluZ1BvcnRhbFJ1bk1vZGVsIjsKaW1wb3J0IHsgc2NyYXBlUnVuQ29vcmRpbmF0b3IgfSBmcm9tICIuL3NjcmFwZVJ1bkNvb3JkaW5hdG9yIjsKCi8vIE1hcGEgZGUgbm9tYnJlIGRlIGNsYXNlIOKGkiBjb25zdHJ1Y3RvciBkZSBzY3JhcGVyIChQbGF5d3JpZ2h0ID4gQ2hlZXJpbyBwYXJhIHBvcnRhbGVzIEpTKQpjb25zdCBTQ1JBUEVSX01BUDogUmVjb3JkPHN0cmluZywgbmV3ICgpID0+IGFueT4gPSB7CiAgSWRlYWxpc3RhU2NyYXBlcjogSWRlYWxpc3RhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAvLyBhbGlhcyBsZWdhY3kg4oaSIFBsYXl3cmlnaHQKICBJZGVhbGlzdGFQbGF5d3JpZ2h0U2NyYXBlciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsYXZlIGRpcmVjdGEgKHZhbG9yIGFjdHVhbCBlbiBCRCkKICBGb3RvY2FzYVNjcmFwZXI6IEZvdG9jYXNhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAgIC8vIGFsaWFzIGxlZ2FjeSDihpIgUGxheXdyaWdodAogIEZvdG9jYXNhUGxheXdyaWdodFNjcmFwZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xhdmUgZGlyZWN0YSAodmFsb3IgYWN0dWFsIGVuIEJEKQogIEhhYml0YWNsaWFTY3JhcGVyLCBQaXNvc1NjcmFwZXIsIFRyb3ZhdFNjcmFwZXIsCiAgS3llcm9TY3JhcGVyLCBUaGlua1NwYWluU2NyYXBlciwKICBNaWxhbnVuY2lvc1NjcmFwZXIsIFlhZW5jb250cmVTY3JhcGVyLCBDYXNhc2Fwb1NjcmFwZXIsIFZpYmJvU2NyYXBlciwKICBHbG9iYWxpemFTY3JhcGVyLCBOdXJvYVNjcmFwZXIsIEVuZ2VsVm9sa2Vyc1NjcmFwZXIsIFRlY25vY2FzYVNjcmFwZXIsCiAgRXJhU3BhaW5TY3JhcGVyLCBSZW1heFNjcmFwZXIsIElubW9iaWxpYXJpYVNjcmFwZXIsIFNwYWluSG91c2VzU2NyYXBlciwKICBIb2xwcm9wU2NyYXBlciwKfTsKCmNvbnN0IGdlb1NlcnZpY2UgPSBuZXcgR2VvY29kaW5nU2VydmljZSgpOwpjb25zdCBzY29yaW5nU2VydmljZSA9IG5ldyBTY29yaW5nU2VydmljZSgpOwpjb25zdCBkZWR1cGxpY2F0aW9uU2VydmljZSA9IG5ldyBEZWR1cGxpY2F0aW9uU2VydmljZSgpOwoKZXhwb3J0IGNsYXNzIFByb3BlcnR5U2VydmljZSB7CiAgYXN5bmMgZ2V0QWxsUHJvcGVydGllcygpOiBQcm9taXNlPFByb3BlcnR5W10+IHsKICAgIHJldHVybiBQcm9wZXJ0eU1vZGVsLmZpbmRBbGwoKTsKICB9CgogIGFzeW5jIGdldEZpbHRlcmVkUHJvcGVydGllcyhmaWx0ZXI6IFBhcnRpYWw8RmlsdGVyPik6IFByb21pc2U8UHJvcGVydHlbXT4gewogICAgcmV0dXJuIFByb3BlcnR5TW9kZWwuZmlsdGVyQWR2YW5jZWQoCiAgICAgIGZpbHRlci5taW5fcHJpY2UsIGZpbHRlci5tYXhfcHJpY2UsIGZpbHRlci5wcm9wZXJ0eV90eXBlLAogICAgICBmaWx0ZXIubXVuaWNpcGFsaXR5LCBmaWx0ZXIubWluX3Jvb21zLCBmaWx0ZXIubWluX3NpemVfbTIKICAgICk7CiAgfQoKICBhc3luYyBnZXRQcm9wZXJ0eUJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8UHJvcGVydHkgfCBudWxsPiB7CiAgICByZXR1cm4gUHJvcGVydHlNb2RlbC5maW5kQnlJZChwYXJzZUludChpZCkpOwogIH0KCiAgYXN5bmMgY3JlYXRlUHJvcGVydHkocHJvcGVydHk6IFByb3BlcnR5KTogUHJvbWlzZTxQcm9wZXJ0eT4gewogICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cHNlcnQocHJvcGVydHkpOwogICAgcmV0dXJuIHByb3BlcnR5OwogIH0KCiAgYXN5bmMgdXBkYXRlUHJvcGVydHkoaWQ6IHN0cmluZywgcHJvcGVydHk6IFByb3BlcnR5KTogUHJvbWlzZTxQcm9wZXJ0eSB8IG51bGw+IHsKICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgUHJvcGVydHlNb2RlbC5maW5kQnlJZChwYXJzZUludChpZCkpOwogICAgaWYgKCFleGlzdGluZykgcmV0dXJuIG51bGw7CiAgICBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydCh7IC4uLmV4aXN0aW5nLCAuLi5wcm9wZXJ0eSB9KTsKICAgIHJldHVybiBwcm9wZXJ0eTsKICB9CgogIGFzeW5jIGRlbGV0ZVByb3BlcnR5KGlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHsKICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgUHJvcGVydHlNb2RlbC5maW5kQnlJZChwYXJzZUludChpZCkpOwogICAgaWYgKCFleGlzdGluZykgcmV0dXJuIGZhbHNlOwogICAgYXdhaXQgUHJvcGVydHlNb2RlbC5kZWxldGVCeUlkKHBhcnNlSW50KGlkKSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGFzeW5jIHNjcmFwZUFsbChvcGVyYXRpb25UeXBlOiAic2FsZSIgfCAicmVudCIgPSAic2FsZSIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgbmV3X2NvdW50OiBudW1iZXIgfT4gewogICAgLy8gQ29uc3RydWlyIGxpc3RhIGRlIHNjcmFwZXJzIGFjdGl2b3Mgc2Vnw7puIGxhIEJEIGRlIHBvcnRhbGVzCiAgICBsZXQgc2NyYXBlckNsYXNzZXM6IHN0cmluZ1tdID0gW107CiAgICB0cnkgewogICAgICBjb25zdCBwb3J0YWxzID0gYXdhaXQgUG9ydGFsTW9kZWwuZmluZEFjdGl2ZSgpOwogICAgICBzY3JhcGVyQ2xhc3NlcyA9IHBvcnRhbHMubWFwKHAgPT4gcC5zY3JhcGVyX2NsYXNzKTsKICAgIH0gY2F0Y2ggKF9lKSB7CiAgICAgIHNjcmFwZXJDbGFzc2VzID0gT2JqZWN0LmtleXMoU0NSQVBFUl9NQVApOwogICAgfQoKICAgIGNvbnN0IGtub3duU2NyYXBlckNsYXNzZXMgPSBzY3JhcGVyQ2xhc3Nlcy5maWx0ZXIoY2xzID0+IFNDUkFQRVJfTUFQW2Nsc10pOwogICAgY29uc3QgY29tcGF0aWJsZUNsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+IHN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihjbHMsIG9wZXJhdGlvblR5cGUpKTsKICAgIGNvbnN0IHVuc3VwcG9ydGVkQ2xhc3NlcyA9IGtub3duU2NyYXBlckNsYXNzZXMKICAgICAgLmZpbHRlcihjbHMgPT4gIXN1cHBvcnRzU2NyYXBlck9wZXJhdGlvbihjbHMsIG9wZXJhdGlvblR5cGUpKTsKICAgIGNvbnN0IHNjcmFwZXJzID0gY29tcGF0aWJsZUNsYXNzZXMKICAgICAgLm1hcChjbHMgPT4gKG5ldyBTQ1JBUEVSX01BUFtjbHNdKCkpLnNldE9wZXJhdGlvblR5cGUob3BlcmF0aW9uVHlwZSkpOwoKICAgIGJ1c0xvZygiaW5mbyIsIGBVc2FuZG8gJHtzY3JhcGVycy5sZW5ndGh9IHBvcnRhbGVzIGFjdGl2b3MgKCR7b3BlcmF0aW9uVHlwZX0pOiAke2NvbXBhdGlibGVDbGFzc2VzLmpvaW4oIiwgIil9YCk7CiAgICBpZiAodW5zdXBwb3J0ZWRDbGFzc2VzLmxlbmd0aCA+IDApIHsKICAgICAgYnVzTG9nKCJpbmZvIiwgYE9taXRpZG9zIHBvciBubyBzb3BvcnRhciAke29wZXJhdGlvblR5cGV9OiAke3Vuc3VwcG9ydGVkQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgfQoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKICAgIGNvbnN0IHNhdmVkSWRzOiBudW1iZXJbXSA9IFtdOwoKICAgIGZvciAoY29uc3Qgc2NyYXBlciBvZiBzY3JhcGVycykgewogICAgICBjb25zdCBwb3J0YWxOYW1lOiBzdHJpbmcgPSBzY3JhcGVyLmNvbnN0cnVjdG9yPy5uYW1lID8/ICJTY3JhcGVyIjsKICAgICAgY29uc3QgcnVuSWQgPSBhd2FpdCB0aGlzLl9zdGFydFBvcnRhbFJ1bihzY3JhcGVyLCBvcGVyYXRpb25UeXBlKTsKICAgICAgbGV0IHBvcnRhbE5ldyA9IDA7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHNjcmFwZVN0YXJ0ZWRBdCA9IG5ldyBEYXRlKCk7CiAgICAgICAgY29uc3QgcHJvcHM6IFByb3BlcnR5W10gPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSgpOwogICAgICAgIHRvdGFsICs9IHByb3BzLmxlbmd0aDsKICAgICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlc2AsIHBvcnRhbE5hbWUpOwoKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkKSB7CiAgICAgICAgICAgIGlmIChzYXZlZC5pc05ldykgeyBuZXdfY291bnQrKzsgcG9ydGFsTmV3Kys7IH0KICAgICAgICAgICAgc2F2ZWRJZHMucHVzaChzYXZlZC5pZCk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBBcmNoaXZhciBhbnVuY2lvcyBkZWwgcG9ydGFsIHF1ZSB5YSBubyBlc3TDoW4gcHVibGljYWRvcwogICAgICAgIGlmIChwcm9wcy5sZW5ndGggPiAwICYmICFzY3JhcGVyLmlzUGFydGlhbENvdmVyYWdlKCkpIHsKICAgICAgICAgIGNvbnN0IHNyYzogc3RyaW5nID0gc2NyYXBlci5zb3VyY2UgPz8gcHJvcHNbMF0uc291cmNlOwogICAgICAgICAgY29uc3QgYXJjaGl2ZWQgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmFyY2hpdmVTdGFsZUJ5U291cmNlKHNyYywgb3BlcmF0aW9uVHlwZSwgc2NyYXBlU3RhcnRlZEF0KTsKICAgICAgICAgIGlmIChhcmNoaXZlZCA+IDApIGJ1c0xvZygiaW5mbyIsIGAke2FyY2hpdmVkfSBhbnVuY2lvKHMpIGFyY2hpdmFkb3MgKHlhIG5vIHB1YmxpY2Fkb3MpYCwgcG9ydGFsTmFtZSk7CiAgICAgICAgfQoKICAgICAgICBhd2FpdCB0aGlzLl9maW5pc2hQb3J0YWxSdW4ocnVuSWQsIHByb3BzLmxlbmd0aCA+IDAgPyAic3VjY2VzcyIgOiAiZW1wdHkiLCBwcm9wcy5sZW5ndGgsIHBvcnRhbE5ldywgc2NyYXBlcik7CiAgICAgICAgYnVzTG9nKCJzdWNjZXNzIiwgYENvbXBsZXRhZG86ICR7cHJvcHMubGVuZ3RofSBvYnRlbmlkYXMsICR7cG9ydGFsTmV3fSBudWV2YXNgLCBwb3J0YWxOYW1lKTsKICAgICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImRvbmUiLCB0b3RhbDogcHJvcHMubGVuZ3RoLCBzYXZlZDogcG9ydGFsTmV3IH0pOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBhd2FpdCB0aGlzLl9maW5pc2hQb3J0YWxSdW4ocnVuSWQsICJlcnJvciIsIDAsIHBvcnRhbE5ldywgc2NyYXBlciwgKGVyciBhcyBFcnJvcikubWVzc2FnZSk7CiAgICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZXJyb3IiLCBtc2c6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidXNMb2coInN1Y2Nlc3MiLCBgU2NyYXBpbmcgY29tcGxldGFkbzogJHt0b3RhbH0gcHJvcGllZGFkZXMgcHJvY2VzYWRhcywgJHtuZXdfY291bnR9IGd1YXJkYWRhcy9hY3R1YWxpemFkYXNgKTsKCiAgICAvLyBQb3N0LXByb2Nlc2FkbyBhc8OtbmNyb25vOiBzY29yaW5nICsgZGVkdXBsaWNhY2nDs24KICAgIHRoaXMuX3Bvc3RQcm9jZXNzKCk7CgogICAgcmV0dXJuIHsgdG90YWwsIG5ld19jb3VudCB9OwogIH0KCiAgLyoqIEVqZWN1dGEgZWwgc2NyYXBpbmcgZGUgVU4gw7puaWNvIHBvcnRhbCBwb3Igc3Ugc2NyYXBlcl9jbGFzcyAqLwogIGFzeW5jIHNjcmFwZVBvcnRhbChzY3JhcGVyQ2xhc3M6IHN0cmluZywgb3BlcmF0aW9uVHlwZTogInNhbGUiIHwgInJlbnQiID0gInNhbGUiKTogUHJvbWlzZTx7IHRvdGFsOiBudW1iZXI7IG5ld19jb3VudDogbnVtYmVyIH0+IHsKICAgIGNvbnN0IFNjcmFwZXJDdG9yID0gU0NSQVBFUl9NQVBbc2NyYXBlckNsYXNzXTsKICAgIGlmICghU2NyYXBlckN0b3IpIHRocm93IG5ldyBFcnJvcihgU2NyYXBlciBubyBlbmNvbnRyYWRvOiAke3NjcmFwZXJDbGFzc31gKTsKICAgIGlmICghc3VwcG9ydHNTY3JhcGVyT3BlcmF0aW9uKHNjcmFwZXJDbGFzcywgb3BlcmF0aW9uVHlwZSkpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBzY3JhcGVyICR7c2NyYXBlckNsYXNzfSBubyBzb3BvcnRhIGxhIG9wZXJhY2nDs24gJyR7b3BlcmF0aW9uVHlwZX0nYCk7CiAgICB9CiAgICBjb25zdCBzY3JhcGVyID0gbmV3IFNjcmFwZXJDdG9yKCkuc2V0T3BlcmF0aW9uVHlwZShvcGVyYXRpb25UeXBlKTsKICAgIGNvbnN0IHBvcnRhbE5hbWUgPSBzY3JhcGVyQ2xhc3MucmVwbGFjZSgvU2NyYXBlciQvLCAiIikucmVwbGFjZSgvUGxheXdyaWdodCQvLCAiIChQbGF5d3JpZ2h0KSIpOwogICAgY29uc3QgcnVuSWQgPSBhd2FpdCB0aGlzLl9zdGFydFBvcnRhbFJ1bihzY3JhcGVyLCBvcGVyYXRpb25UeXBlKTsKICAgIGJ1c0xvZygiaW5mbyIsIGBJbmljaWFuZG8gc2NyYXBpbmcuLi5gLCBwb3J0YWxOYW1lKTsKICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKCiAgICB0cnkgewogICAgICBjb25zdCBzY3JhcGVTdGFydGVkQXQgPSBuZXcgRGF0ZSgpOwogICAgICBjb25zdCBwcm9wczogUHJvcGVydHlbXSA9IGF3YWl0IHNjcmFwZXIuc2NyYXBlKCk7CiAgICAgIHRvdGFsID0gcHJvcHMubGVuZ3RoOwogICAgICBidXNMb2coImluZm8iLCBgT2J0ZW5pZGFzICR7cHJvcHMubGVuZ3RofSBwcm9waWVkYWRlcyBkZWwgcG9ydGFsYCwgcG9ydGFsTmFtZSk7CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykgewogICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgIGlmIChzYXZlZD8uaXNOZXcpIG5ld19jb3VudCsrOwogICAgICB9CiAgICAgIC8vIEFyY2hpdmFyIGFudW5jaW9zIGRlbCBwb3J0YWwgcXVlIHlhIG5vIGVzdMOhbiBwdWJsaWNhZG9zCiAgICAgIGlmIChwcm9wcy5sZW5ndGggPiAwICYmICFzY3JhcGVyLmlzUGFydGlhbENvdmVyYWdlKCkpIHsKICAgICAgICBjb25zdCBzcmM6IHN0cmluZyA9IHNjcmFwZXIuc291cmNlID8/IHByb3BzWzBdLnNvdXJjZTsKICAgICAgICBjb25zdCBhcmNoaXZlZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuYXJjaGl2ZVN0YWxlQnlTb3VyY2Uoc3JjLCBvcGVyYXRpb25UeXBlLCBzY3JhcGVTdGFydGVkQXQpOwogICAgICAgIGlmIChhcmNoaXZlZCA+IDApIGJ1c0xvZygiaW5mbyIsIGAke2FyY2hpdmVkfSBhbnVuY2lvKHMpIGFyY2hpdmFkb3MgKHlhIG5vIHB1YmxpY2Fkb3MpYCwgcG9ydGFsTmFtZSk7CiAgICAgIH0KICAgICAgYXdhaXQgdGhpcy5fZmluaXNoUG9ydGFsUnVuKHJ1bklkLCBwcm9wcy5sZW5ndGggPiAwID8gInN1Y2Nlc3MiIDogImVtcHR5IiwgdG90YWwsIG5ld19jb3VudCwgc2NyYXBlcik7CiAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgYXdhaXQgdGhpcy5fZmluaXNoUG9ydGFsUnVuKHJ1bklkLCAiZXJyb3IiLCB0b3RhbCwgbmV3X2NvdW50LCBzY3JhcGVyLCAoZXJyIGFzIEVycm9yKS5tZXNzYWdlKTsKICAgICAgYnVzTG9nKCJlcnJvciIsIGBFcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsIHBvcnRhbE5hbWUpOwogICAgICBzY3JhcGVyQnVzLnByb2dyZXNzKHsgcG9ydGFsOiBwb3J0YWxOYW1lLCBwaGFzZTogImVycm9yIiwgbXNnOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlIH0pOwogICAgfQoKICAgIGJ1c0xvZygic3VjY2VzcyIsIGBDb21wbGV0YWRvOiAke3RvdGFsfSBvYnRlbmlkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXNgLCBwb3J0YWxOYW1lKTsKICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZG9uZSIsIHRvdGFsLCBzYXZlZDogbmV3X2NvdW50IH0pOwogICAgdGhpcy5fcG9zdFByb2Nlc3MocG9ydGFsTmFtZSk7CiAgICByZXR1cm4geyB0b3RhbCwgbmV3X2NvdW50IH07CiAgfQoKICAvKiogU2NyYXBpbmcgcmVzdHJpbmdpZG8gYSB1bmEgw7puaWNhIHpvbmEgZ2VvZ3LDoWZpY2EgKHRvZG9zIGxvcyBwb3J0YWxlcyBhY3Rpdm9zKSAqLwogIGFzeW5jIHNjcmFwZUJ5Wm9uZSh6b25lU2x1Zzogc3RyaW5nLCBvcGVyYXRpb25UeXBlOiAic2FsZSIgfCAicmVudCIgPSAic2FsZSIpOiBQcm9taXNlPHsgdG90YWw6IG51bWJlcjsgbmV3X2NvdW50OiBudW1iZXIgfT4gewogICAgY29uc3Qgem9uZSA9IGF3YWl0IFpvbmVNb2RlbC5maW5kQnlTbHVnKHpvbmVTbHVnKTsKICAgIGlmICghem9uZSkgdGhyb3cgbmV3IEVycm9yKGBab25hICcke3pvbmVTbHVnfScgbm8gZW5jb250cmFkYSBlbiBsYSBiYXNlIGRlIGRhdG9zYCk7CgogICAgbGV0IHNjcmFwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdOwogICAgdHJ5IHsKICAgICAgY29uc3QgcG9ydGFscyA9IGF3YWl0IFBvcnRhbE1vZGVsLmZpbmRBY3RpdmUoKTsKICAgICAgc2NyYXBlckNsYXNzZXMgPSBwb3J0YWxzLm1hcChwID0+IHAuc2NyYXBlcl9jbGFzcyk7CiAgICB9IGNhdGNoIChfZSkgewogICAgICBzY3JhcGVyQ2xhc3NlcyA9IE9iamVjdC5rZXlzKFNDUkFQRVJfTUFQKTsKICAgIH0KCiAgICBjb25zdCBrbm93blNjcmFwZXJDbGFzc2VzID0gc2NyYXBlckNsYXNzZXMuZmlsdGVyKGNscyA9PiBTQ1JBUEVSX01BUFtjbHNdKTsKICAgIGNvbnN0IGNvbXBhdGlibGVDbGFzc2VzID0ga25vd25TY3JhcGVyQ2xhc3NlcwogICAgICAuZmlsdGVyKGNscyA9PiBzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCB1bnN1cHBvcnRlZENsYXNzZXMgPSBrbm93blNjcmFwZXJDbGFzc2VzCiAgICAgIC5maWx0ZXIoY2xzID0+ICFzdXBwb3J0c1NjcmFwZXJPcGVyYXRpb24oY2xzLCBvcGVyYXRpb25UeXBlKSk7CiAgICBjb25zdCBzY3JhcGVycyA9IGNvbXBhdGlibGVDbGFzc2VzCiAgICAgIC5tYXAoY2xzID0+IChuZXcgU0NSQVBFUl9NQVBbY2xzXSgpKS5zZXRab25lT3ZlcnJpZGUoW3pvbmVdKS5zZXRPcGVyYXRpb25UeXBlKG9wZXJhdGlvblR5cGUpKTsKCiAgICBidXNMb2coImluZm8iLCBgU2NyYXBpbmcgem9uYSAiJHt6b25lLm5hbWV9IiDigJQgJHtzY3JhcGVycy5sZW5ndGh9IHBvcnRhbGVzYCk7CiAgICBpZiAodW5zdXBwb3J0ZWRDbGFzc2VzLmxlbmd0aCA+IDApIHsKICAgICAgYnVzTG9nKCJpbmZvIiwgYE9taXRpZG9zIHBvciBubyBzb3BvcnRhciAke29wZXJhdGlvblR5cGV9OiAke3Vuc3VwcG9ydGVkQ2xhc3Nlcy5qb2luKCIsICIpfWApOwogICAgfQoKICAgIGxldCB0b3RhbCA9IDA7CiAgICBsZXQgbmV3X2NvdW50ID0gMDsKCiAgICBmb3IgKGNvbnN0IHNjcmFwZXIgb2Ygc2NyYXBlcnMpIHsKICAgICAgY29uc3QgcG9ydGFsTmFtZTogc3RyaW5nID0gc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyAiU2NyYXBlciI7CiAgICAgIGNvbnN0IHJ1bklkID0gYXdhaXQgdGhpcy5fc3RhcnRQb3J0YWxSdW4oc2NyYXBlciwgb3BlcmF0aW9uVHlwZSwgem9uZS5zbHVnKTsKICAgICAgbGV0IHBvcnRhbE5ldyA9IDA7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYEluaWNpYW5kbyBzY3JhcGluZy4uLmAsIHBvcnRhbE5hbWUpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAic3RhcnQiIH0pOwogICAgICAgIGNvbnN0IHByb3BzOiBQcm9wZXJ0eVtdID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoKTsKICAgICAgICB0b3RhbCArPSBwcm9wcy5sZW5ndGg7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgYE9idGVuaWRhcyAke3Byb3BzLmxlbmd0aH0gcHJvcGllZGFkZXNgLCBwb3J0YWxOYW1lKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHsKICAgICAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5fc2F2ZVByb3BlcnR5KHByb3ApOwogICAgICAgICAgaWYgKHNhdmVkPy5pc05ldykgeyBuZXdfY291bnQrKzsgcG9ydGFsTmV3Kys7IH0KICAgICAgICB9CiAgICAgICAgYXdhaXQgdGhpcy5fZmluaXNoUG9ydGFsUnVuKHJ1bklkLCBwcm9wcy5sZW5ndGggPiAwID8gInN1Y2Nlc3MiIDogImVtcHR5IiwgcHJvcHMubGVuZ3RoLCBwb3J0YWxOZXcsIHNjcmFwZXIpOwogICAgICAgIHNjcmFwZXJCdXMucHJvZ3Jlc3MoeyBwb3J0YWw6IHBvcnRhbE5hbWUsIHBoYXNlOiAiZG9uZSIsIHRvdGFsOiBwcm9wcy5sZW5ndGgsIHNhdmVkOiBwb3J0YWxOZXcgfSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGF3YWl0IHRoaXMuX2ZpbmlzaFBvcnRhbFJ1bihydW5JZCwgImVycm9yIiwgMCwgcG9ydGFsTmV3LCBzY3JhcGVyLCAoZXJyIGFzIEVycm9yKS5tZXNzYWdlKTsKICAgICAgICBidXNMb2coImVycm9yIiwgYEVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCwgcG9ydGFsTmFtZSk7CiAgICAgICAgc2NyYXBlckJ1cy5wcm9ncmVzcyh7IHBvcnRhbDogcG9ydGFsTmFtZSwgcGhhc2U6ICJlcnJvciIsIG1zZzogKGVyciBhcyBFcnJvcikubWVzc2FnZSB9KTsKICAgICAgfQogICAgfQoKICAgIGJ1c0xvZygic3VjY2VzcyIsIGBab25hICIke3pvbmUubmFtZX0iIGNvbXBsZXRhZGE6ICR7dG90YWx9IHByb3BpZWRhZGVzIHByb2Nlc2FkYXMsICR7bmV3X2NvdW50fSBndWFyZGFkYXNgKTsKICAgIHRoaXMuX3Bvc3RQcm9jZXNzKGB6b25hOiR7em9uZS5uYW1lfWApOwogICAgcmV0dXJuIHsgdG90YWwsIG5ld19jb3VudCB9OwogIH0KCiAgLyoqIFJlLWdlb2NvZGlmaWNhIHByb3BpZWRhZGVzIHF1ZSB0aWVuZW4gY29vcmRlbmFkYXMgZGUgY2VudHJvIGRlIG11bmljaXBpbyBleGFjdGFzICovCiAgYXN5bmMgcmVHZW9jb2RlQWxsKCk6IFByb21pc2U8eyB1cGRhdGVkOiBudW1iZXIgfT4gewogICAgLy8gVXNhciBjZW50cm9zIGRlIHpvbmEgZGVzZGUgbGEgQkQgZW4gbHVnYXIgZGUgdmFsb3JlcyBoYXJkY29kZWFkb3MKICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgWm9uZU1vZGVsLmZpbmRBY3RpdmUoKTsKICAgIGNvbnN0IGNlbnRlckNvb3JkcyA9IHpvbmVzLm1hcCh6ID0+IFt6LmxhdCwgei5sbmddIGFzIFtudW1iZXIsIG51bWJlcl0pOwogICAgY29uc3QgaXNDZW50ZXIgPSAobGF0OiBudW1iZXIsIGxuZzogbnVtYmVyKSA9PgogICAgICBjZW50ZXJDb29yZHMuc29tZSgoW2xhLCBsbl0pID0+IE1hdGguYWJzKGxhIC0gbGF0KSA8IDAuMDAwMSAmJiBNYXRoLmFicyhsbiAtIGxuZykgPCAwLjAwMDEpOwoKICAgIGNvbnN0IGFsbCA9IGF3YWl0IFByb3BlcnR5TW9kZWwuZmluZEFsbCgpOwogICAgbGV0IHVwZGF0ZWQgPSAwOwogICAgZm9yIChjb25zdCBwcm9wIG9mIGFsbCkgewogICAgICB0cnkgewogICAgICAgIGlmICghcHJvcC5sYXQgfHwgIXByb3AubG5nIHx8IGlzQ2VudGVyKHByb3AubGF0LCBwcm9wLmxuZykpIHsKICAgICAgICAgIGNvbnN0IGdlb1F1ZXJ5ID0gW3Byb3AubG9jYXRpb24sIHByb3AubXVuaWNpcGFsaXR5LCAiVmFsZW5jaWEiLCAiRXNwYcOxYSJdCiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpLmpvaW4oIiwgIik7CiAgICAgICAgICBsZXQgZ2VvOiB7IGxhdDogbnVtYmVyOyBsbmc6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdldENvb3JkaW5hdGVzKGdlb1F1ZXJ5KTsKICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICBpZiAocHJvcC5tdW5pY2lwYWxpdHkpIHsKICAgICAgICAgICAgICBnZW8gPSBhd2FpdCBnZW9TZXJ2aWNlLmdlb2NvZGVNdW5pY2lwYWxpdHkocHJvcC5tdW5pY2lwYWxpdHkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZ2VvKSB7CiAgICAgICAgICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0KHsgLi4ucHJvcCwgbGF0OiBnZW8ubGF0LCBsbmc6IGdlby5sbmcgfSk7CiAgICAgICAgICAgIHVwZGF0ZWQrKzsKICAgICAgICAgIH0KICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxMTAwKSk7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChfZSkgeyAvKiBza2lwICovIH0KICAgIH0KICAgIHJldHVybiB7IHVwZGF0ZWQgfTsKICB9CgogIC8vIOKUgOKUgOKUgCBIZWxwZXJzIHByaXZhZG9zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAoKICBwcml2YXRlIGFzeW5jIF9zdGFydFBvcnRhbFJ1bihzY3JhcGVyOiBhbnksIG9wZXJhdGlvbjogInNhbGUiIHwgInJlbnQiLCB6b25lU2NvcGU/OiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4gewogICAgdHJ5IHsKICAgICAgY29uc3QgY29vcmRpbmF0b3JNb2RlID0gc2NyYXBlUnVuQ29vcmRpbmF0b3Iuc3RhdHVzKCkubW9kZTsKICAgICAgcmV0dXJuIGF3YWl0IFNjcmFwaW5nUG9ydGFsUnVuTW9kZWwuc3RhcnQoewogICAgICAgIHBvcnRhbDogc2NyYXBlci5zb3VyY2UgfHwgc2NyYXBlci5jb25zdHJ1Y3Rvcj8ubmFtZSB8fCAiU2NyYXBlciIsCiAgICAgICAgc2NyYXBlckNsYXNzOiBzY3JhcGVyLmNvbnN0cnVjdG9yPy5uYW1lIHx8ICJTY3JhcGVyIiwKICAgICAgICBvcGVyYXRpb24sCiAgICAgICAgdHJpZ2dlck1vZGU6IGNvb3JkaW5hdG9yTW9kZSA9PT0gInNjaGVkdWxlZCIgPyAic2NoZWR1bGVkIiA6ICJtYW51YWwiLAogICAgICAgIHpvbmVTY29wZTogem9uZVNjb3BlIHx8IG51bGwsCiAgICAgIH0pOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgYnVzTG9nKCJ3YXJuIiwgYE5vIHNlIHB1ZG8gcmVnaXN0cmFyIGVsIGluaWNpbyBkZSBlamVjdWNpw7NuOiAkeyhlcnJvciBhcyBFcnJvcikubWVzc2FnZX1gKTsKICAgICAgcmV0dXJuIDA7CiAgICB9CiAgfQoKICBwcml2YXRlIGFzeW5jIF9maW5pc2hQb3J0YWxSdW4oCiAgICBpZDogbnVtYmVyLAogICAgc3RhdHVzOiBFeGNsdWRlPFBvcnRhbFJ1blN0YXR1cywgInJ1bm5pbmciPiwKICAgIHRvdGFsRm91bmQ6IG51bWJlciwKICAgIG5ld1NhdmVkOiBudW1iZXIsCiAgICBzY3JhcGVyOiBhbnksCiAgICBlcnJvcj86IHN0cmluZwogICk6IFByb21pc2U8dm9pZD4gewogICAgdHJ5IHsKICAgICAgYXdhaXQgU2NyYXBpbmdQb3J0YWxSdW5Nb2RlbC5maW5pc2goaWQsIHsKICAgICAgICBzdGF0dXMsCiAgICAgICAgdG90YWxGb3VuZCwKICAgICAgICBuZXdTYXZlZCwKICAgICAgICBwYXJ0aWFsQ292ZXJhZ2U6IEJvb2xlYW4oc2NyYXBlci5pc1BhcnRpYWxDb3ZlcmFnZT8uKCkpLAogICAgICAgIGVycm9yOiBlcnJvciB8fCBudWxsLAogICAgICB9KTsKICAgIH0gY2F0Y2ggKHJ1bkVycm9yKSB7CiAgICAgIGJ1c0xvZygid2FybiIsIGBObyBzZSBwdWRvIGNlcnJhciBlbCByZWdpc3RybyBkZSBlamVjdWNpw7NuOiAkeyhydW5FcnJvciBhcyBFcnJvcikubWVzc2FnZX1gKTsKICAgIH0KICB9CgogIC8qKiBHZW9jb2RpZmljYSBzaSBmYWx0YSwgY2FsY3VsYSBwcmVjaW8vbcKyLCBndWFyZGEgZW4gQkQgeSByZWdpc3RyYSBoaXN0b3JpYWwuCiAgICogIERldnVlbHZlIGVsIElEIGd1YXJkYWRvIG8gbnVsbCBzaSBodWJvIGVycm9yIChkdXBsaWNhZG8gdSBvdHJvKS4gKi8KICBwcml2YXRlIGFzeW5jIF9zYXZlUHJvcGVydHkocHJvcDogUHJvcGVydHkpOiBQcm9taXNlPHsgaWQ6IG51bWJlcjsgaXNOZXc6IGJvb2xlYW4gfSB8IG51bGw+IHsKICAgIHRyeSB7CiAgICAgIGlmICghcHJvcC5sYXQgJiYgIXByb3AubG5nKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGNvbnN0IGdlb1F1ZXJ5ID0gKFtwcm9wLmxvY2F0aW9uLCBwcm9wLm11bmljaXBhbGl0eSwgIlZhbGVuY2lhIiwgIkVzcGHDsWEiXSBhcyBzdHJpbmdbXSkKICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKS5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSkuam9pbigiLCAiKTsKICAgICAgICAgIGNvbnN0IGdlbyA9IGF3YWl0IGdlb1NlcnZpY2UuZ2V0Q29vcmRpbmF0ZXMoZ2VvUXVlcnkpOwogICAgICAgICAgcHJvcC5sYXQgPSBnZW8ubGF0OwogICAgICAgICAgcHJvcC5sbmcgPSBnZW8ubG5nOwogICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgaWYgKHByb3AubXVuaWNpcGFsaXR5KSB7CiAgICAgICAgICAgIGNvbnN0IGdlbyA9IGF3YWl0IGdlb1NlcnZpY2UuZ2VvY29kZU11bmljaXBhbGl0eShwcm9wLm11bmljaXBhbGl0eSk7CiAgICAgICAgICAgIGlmIChnZW8pIHsgcHJvcC5sYXQgPSBnZW8ubGF0OyBwcm9wLmxuZyA9IGdlby5sbmc7IH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHByb3AucHJpY2UgPiAwICYmIChwcm9wLnNpemVfbTIgfHwgMCkgPiAwKSB7CiAgICAgICAgKHByb3AgYXMgYW55KS5wcmljZV9wZXJfbTIgPSBNYXRoLnJvdW5kKHByb3AucHJpY2UgLyBwcm9wLnNpemVfbTIhKTsKICAgICAgfQogICAgICBjb25zdCBzYXZlZCA9IGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0V2l0aFN0YXR1cyhwcm9wKTsKICAgICAgaWYgKHNhdmVkLmlkICYmIHByb3AucHJpY2UgPiAwKSB7CiAgICAgICAgYXdhaXQgUHJpY2VIaXN0b3J5TW9kZWwucmVjb3JkSWZDaGFuZ2VkKHNhdmVkLmlkLCBwcm9wLnByaWNlKTsKICAgICAgfQogICAgICByZXR1cm4gc2F2ZWQuaWQgPyBzYXZlZCA6IG51bGw7CiAgICB9IGNhdGNoIHsKICAgICAgcmV0dXJuIG51bGw7IC8vIHNraXAgZHVwbGljYXRlcyAvIGNvbnN0cmFpbnQgZXJyb3JzCiAgICB9CiAgfQoKICAvKiogTGFuemEgc2NvcmluZyArIGRlZHVwbGljYWNpw7NuIGRlIGZvcm1hIGFzw61uY3JvbmEgc2luIGJsb3F1ZWFyIGxhIHJlc3B1ZXN0YSAqLwogIHByaXZhdGUgX3Bvc3RQcm9jZXNzKGxhYmVsID0gIiIpOiB2b2lkIHsKICAgIHNldEltbWVkaWF0ZShhc3luYyAoKSA9PiB7CiAgICAgIHRyeSB7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgIkNhbGN1bGFuZG8gc2NvcmVzLi4uIiwgbGFiZWwpOwogICAgICAgIGF3YWl0IHNjb3JpbmdTZXJ2aWNlLnNjb3JlQWxsKCk7CiAgICAgICAgYnVzTG9nKCJpbmZvIiwgIkVqZWN1dGFuZG8gZGVkdXBsaWNhY2nDs24uLi4iLCBsYWJlbCk7CiAgICAgICAgYXdhaXQgZGVkdXBsaWNhdGlvblNlcnZpY2UucmVzZXREdXBsaWNhdGVzKCk7CiAgICAgICAgYXdhaXQgZGVkdXBsaWNhdGlvblNlcnZpY2UucnVuRGVkdXBsaWNhdGlvbigpOwogICAgICAgIGJ1c0xvZygic3VjY2VzcyIsICJQb3N0LXByb2Nlc2FkbyBjb21wbGV0YWRvIOKchSIsIGxhYmVsKTsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgYnVzTG9nKCJlcnJvciIsIGBbUG9zdC1zY3JhcGluZ10gRXJyb3I6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLCBsYWJlbCk7CiAgICAgIH0KICAgIH0pOwogIH0KCiAgLyoqIERhdG9zIGRlIGFuYWx5dGljcyBwYXJhIGVsIGRhc2hib2FyZCAqLwogIGFzeW5jIGdldEFuYWx5dGljcygpOiBQcm9taXNlPGFueT4gewogICAgY29uc3QgW2J5UG9ydGFsXSA9IGF3YWl0IHBvb2wucXVlcnk8Um93RGF0YVBhY2tldFtdPihgCiAgICAgIFNFTEVDVCBzb3VyY2UsIENPVU5UKCopIEFTIGNvdW50LCBBVkcocHJpY2UpIEFTIGF2Z19wcmljZSwgQVZHKHByaWNlX3Blcl9tMikgQVMgYXZnX3BtMgogICAgICBGUk9NIHByb3BlcnRpZXMgV0hFUkUgaXNfZHVwbGljYXRlID0gMCBPUiBpc19kdXBsaWNhdGUgSVMgTlVMTAogICAgICBHUk9VUCBCWSBzb3VyY2UgT1JERVIgQlkgY291bnQgREVTQwogICAgYCk7CgogICAgY29uc3QgW2J5TXVuaV0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYAogICAgICBTRUxFQ1QgbXVuaWNpcGFsaXR5LCBDT1VOVCgqKSBBUyBjb3VudCwgQVZHKHByaWNlKSBBUyBhdmdfcHJpY2UsCiAgICAgICAgICAgICBBVkcocHJpY2VfcGVyX20yKSBBUyBhdmdfcG0yLCBBVkcoc2NvcmUpIEFTIGF2Z19zY29yZQogICAgICBGUk9NIHByb3BlcnRpZXMgV0hFUkUgaXNfZHVwbGljYXRlID0gMCBPUiBpc19kdXBsaWNhdGUgSVMgTlVMTAogICAgICBHUk9VUCBCWSBtdW5pY2lwYWxpdHkgT1JERVIgQlkgY291bnQgREVTQwogICAgYCk7CgogICAgY29uc3QgW2J5VHlwZV0gPSBhd2FpdCBwb29sLnF1ZXJ5PFJvd0RhdGFQYWNrZXRbXT4oYAogICAgICBTRUxFQ1QgcHJvcGVydHlfdHlwZSwgQ09VTlQoKikgQVMgY291bnQsIEFWRyhwcmljZSkgQVMgYXZnX3ByaWNlCiAgICAgIEZST00gcHJvcGVydGllcyBXSEVSRSBpc19kdXBsaWNhdGUgPSAwIE9SIGlzX2R1cGxpY2F0ZSBJUyBOVUxMCiAgICAgIEdST1VQIEJZIHByb3BlcnR5X3R5cGUgT1JERVIgQlkgY291bnQgREVTQwogICAgYCk7CgogICAgY29uc3QgW3N1bW1hcnldID0gYXdhaXQgcG9vbC5xdWVyeTxSb3dEYXRhUGFja2V0W10+KGAKICAgICAgU0VMRUNUIENPVU5UKCopIEFTIHRvdGFsLAogICAgICAgICAgICAgQ09VTlQoQ0FTRSBXSEVOIGlzX2R1cGxpY2F0ZSA9IDEgVEhFTiAxIEVORCkgQVMgZHVwbGljYXRlcywKICAgICAgICAgICAgIEFWRyhwcmljZSkgQVMgYXZnX3ByaWNlLCBBVkcocHJpY2VfcGVyX20yKSBBUyBhdmdfcG0yLAogICAgICAgICAgICAgQVZHKHNjb3JlKSBBUyBhdmdfc2NvcmUsCiAgICAgICAgICAgICBNSU4ocHJpY2UpIEFTIG1pbl9wcmljZSwgTUFYKHByaWNlKSBBUyBtYXhfcHJpY2UsCiAgICAgICAgICAgICAoU0VMRUNUIENPVU5UKCopIEZST00gcHJpY2VfaGlzdG9yeSkgQVMgcHJpY2VfcmVjb3JkcwogICAgICBGUk9NIHByb3BlcnRpZXMKICAgIGApOwoKICAgIGNvbnN0IHByaWNlRHJvcHMgPSBhd2FpdCBQcmljZUhpc3RvcnlNb2RlbC5nZXRQcmljZURyb3BTdGF0cygpOwogICAgY29uc3QgcHJpY2VPdmVyVGltZSA9IGF3YWl0IFByaWNlSGlzdG9yeU1vZGVsLmdldE92ZXJhbGxUcmVuZCg5MCk7CgogICAgcmV0dXJuIHsKICAgICAgc3VtbWFyeTogc3VtbWFyeVswXSwKICAgICAgYnlQb3J0YWwsIGJ5TXVuaSwgYnlUeXBlLAogICAgICBwcmljZURyb3BzLCBwcmljZU92ZXJUaW1lLAogICAgfTsKICB9Cn0KCmV4cG9ydCBkZWZhdWx0IG5ldyBQcm9wZXJ0eVNlcnZpY2UoKTsK","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\types\\filter.ts","beforeExisted":true,"beforeHash":"b65acb0357b2ef80daa39a7a81bddbad8e7d104b4a92789c240d8f32bf118731","beforeContent":"ZXhwb3J0IGludGVyZmFjZSBGaWx0ZXIgewogIGlkPzogbnVtYmVyOwogIG5hbWU/OiBzdHJpbmc7CiAgbWluX3ByaWNlPzogbnVtYmVyOwogIG1heF9wcmljZT86IG51bWJlcjsKICBwcm9wZXJ0eV90eXBlPzogc3RyaW5nOwogIG11bmljaXBhbGl0eT86IHN0cmluZzsKICBtaW5fcm9vbXM/OiBudW1iZXI7CiAgbWluX3NpemVfbTI/OiBudW1iZXI7CiAgcG9ydGFsPzogc3RyaW5nOwogIGVtYWlsX2FsZXJ0czogYm9vbGVhbjsKICBjcmVhdGVkX2F0PzogRGF0ZTsKfQo=","afterExisted":true,"afterHash":"5eaf74034e53a01bd4324c1f6e685472463bd0350115f309eba5aab20ff8f733","afterContent":"ZXhwb3J0IGludGVyZmFjZSBGaWx0ZXIgewogIGlkPzogbnVtYmVyOwogIHVzZXJfaWQ/OiBudW1iZXI7CiAgcmVjaXBpZW50X2VtYWlsPzogc3RyaW5nOwogIG5hbWU/OiBzdHJpbmc7CiAgbWluX3ByaWNlPzogbnVtYmVyOwogIG1heF9wcmljZT86IG51bWJlcjsKICBwcm9wZXJ0eV90eXBlPzogc3RyaW5nOwogIG9wZXJhdGlvbl90eXBlPzogInNhbGUiIHwgInJlbnQiOwogIG11bmljaXBhbGl0eT86IHN0cmluZzsKICBtaW5fcm9vbXM/OiBudW1iZXI7CiAgbWluX3NpemVfbTI/OiBudW1iZXI7CiAgcG9ydGFsPzogc3RyaW5nOwogIGVtYWlsX2FsZXJ0czogYm9vbGVhbjsKICBjcmVhdGVkX2F0PzogRGF0ZTsKfQo=","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\types\\property.ts","beforeExisted":true,"beforeHash":"f2bca065c9e2cecec7b431b37f093b0476e4b0516fc994419a2886949180154b","beforeContent":"ZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eSB7CiAgaWQ/OiBudW1iZXI7CiAgdGl0bGU6IHN0cmluZzsKICBwcmljZTogbnVtYmVyOwogIGxvY2F0aW9uOiBzdHJpbmc7CiAgbXVuaWNpcGFsaXR5Pzogc3RyaW5nOwogIHByb3BlcnR5X3R5cGU6IHN0cmluZzsKICBvcGVyYXRpb25fdHlwZT86ICJzYWxlIiB8ICJyZW50IjsKICByb29tcz86IG51bWJlcjsKICBiYXRocm9vbXM/OiBudW1iZXI7CiAgc2l6ZV9tMj86IG51bWJlcjsKICBkZXNjcmlwdGlvbj86IHN0cmluZzsKICBpbWFnZV91cmw/OiBzdHJpbmc7CiAgdXJsOiBzdHJpbmc7CiAgc291cmNlOiBzdHJpbmc7CiAgbGF0PzogbnVtYmVyOwogIGxuZz86IG51bWJlcjsKICAvLyBDb2x1bW5hcyBhw7FhZGlkYXMgZW4gdmVyc2nDs24gMgogIHByaWNlX3Blcl9tMj86IG51bWJlcjsKICBzY29yZT86IG51bWJlcjsKICBpc19kdXBsaWNhdGU/OiBib29sZWFuIHwgbnVtYmVyOwogIGR1cGxpY2F0ZV9vZj86IG51bWJlcjsKICAvLyBDb2x1bW5hcyBhw7FhZGlkYXMgZW4gdmVyc2nDs24gMwogIGlzX2Zhdm9yaXRlPzogYm9vbGVhbiB8IG51bWJlcjsKICBub3Rlcz86IHN0cmluZzsKICBjcmVhdGVkX2F0PzogRGF0ZTsKICB1cGRhdGVkX2F0PzogRGF0ZTsKfQo=","afterExisted":true,"afterHash":"3e38eb7d4376693d56c027bee5451b43f6128bf7d0ed4757fb94749c88130823","afterContent":"ZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eSB7CiAgaWQ/OiBudW1iZXI7CiAgdGl0bGU6IHN0cmluZzsKICBwcmljZTogbnVtYmVyOwogIGxvY2F0aW9uOiBzdHJpbmc7CiAgbXVuaWNpcGFsaXR5Pzogc3RyaW5nOwogIHByb3BlcnR5X3R5cGU6IHN0cmluZzsKICBvcGVyYXRpb25fdHlwZT86ICJzYWxlIiB8ICJyZW50IjsKICByb29tcz86IG51bWJlcjsKICBiYXRocm9vbXM/OiBudW1iZXI7CiAgc2l6ZV9tMj86IG51bWJlcjsKICBkZXNjcmlwdGlvbj86IHN0cmluZzsKICBpbWFnZV91cmw/OiBzdHJpbmc7CiAgdXJsOiBzdHJpbmc7CiAgc291cmNlOiBzdHJpbmc7CiAgbGF0PzogbnVtYmVyOwogIGxuZz86IG51bWJlcjsKICAvLyBDb2x1bW5hcyBhw7FhZGlkYXMgZW4gdmVyc2nDs24gMgogIHByaWNlX3Blcl9tMj86IG51bWJlcjsKICBzY29yZT86IG51bWJlcjsKICBpc19kdXBsaWNhdGU/OiBib29sZWFuIHwgbnVtYmVyOwogIGR1cGxpY2F0ZV9vZj86IG51bWJlcjsKICAvLyBDb2x1bW5hcyBhw7FhZGlkYXMgZW4gdmVyc2nDs24gMwogIGlzX2Zhdm9yaXRlPzogYm9vbGVhbiB8IG51bWJlcjsKICBub3Rlcz86IHN0cmluZzsKICBjcmVhdGVkX2F0PzogRGF0ZTsKICB1cGRhdGVkX2F0PzogRGF0ZTsKICBsYXN0X3NlZW5fYXQ/OiBEYXRlOwp9Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\views\\dashboard\\filters.ejs","beforeExisted":true,"beforeHash":"e489adf04dab6c0251312227234df4eb483cbda6a23caab133ed183c1c03a0fe","beforeContent":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCB2aWV3cG9ydC1maXQ9Y292ZXIiPgogIDxtZXRhIG5hbWU9Im1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtdGl0bGUiIGNvbnRlbnQ9Ikxsw61yaWFQcm9wcyI+CiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPgogIDxtZXRhIG5hbWU9ImNvbG9yLXNjaGVtZSIgY29udGVudD0ibGlnaHQiPgogIDxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9uZT1ubywgZGF0ZT1ubywgZW1haWw9bm8sIGFkZHJlc3M9bm8iPgogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4KICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Ii9pY29ucy9hcHBsZS10b3VjaC1pY29uLnBuZyI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbnMvaWNvbi5zdmciIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgogIDx0aXRsZT5GaWx0cm9zIC0gTGxpcmlhIFByb3BlcnRpZXM8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXAtaWNvbnNAMS4xMS4yL2ZvbnQvYm9vdHN0cmFwLWljb25zLm1pbi5jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2Nzcy9tYWluLmNzcyI+CjwvaGVhZD4KPGJvZHkgY2xhc3M9Imhhcy1ib3R0b20tbmF2Ij4KPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctcHJpbWFyeSBzdGlja3ktdG9wIj4KICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgcHgtMyI+CiAgICA8YSBjbGFzcz0ibmF2YmFyLWJyYW5kIGZ3LWJvbGQiIGhyZWY9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS1ob3VzZS1oZWFydC1maWxsIG1lLTIiPjwvaT5MbGlyaWEgUHJvcGVydGllczwvYT4KICAgIDxkaXYgY2xhc3M9ImQtZmxleCBnYXAtMiI+CiAgICAgIDxhIGhyZWY9Ii9kYXNoYm9hcmQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktdGFibGUgbWUtMSI+PC9pPkxpc3RhPC9hPgogICAgICA8YSBocmVmPSIvZGFzaGJvYXJkL21hcCIgY2xhc3M9ImJ0biBidG4tb3V0bGluZS1saWdodCBidG4tc20iPjxpIGNsYXNzPSJiaSBiaS1tYXAtZmlsbCI+PC9pPjwvYT4KICAgICAgPGEgaHJlZj0iL2Rhc2hib2FyZC96b25lcyIgY2xhc3M9ImJ0biBidG4tb3V0bGluZS1saWdodCBidG4tc20iPjxpIGNsYXNzPSJiaSBiaS1nZW8tYWx0IG1lLTEiPjwvaT5ab25hczwvYT4KICAgICAgPGEgaHJlZj0iL2Rhc2hib2FyZC9wb3J0YWxzIiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbSI+PGkgY2xhc3M9ImJpIGJpLXBsdWctZmlsbCBtZS0xIj48L2k+UG9ydGFsZXM8L2E+CiAgICAgIDxhIGhyZWY9Ii9sb2dvdXQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktYm94LWFycm93LXJpZ2h0Ij48L2k+PC9hPgogICAgPC9kaXY+CiAgPC9kaXY+CjwvbmF2Pgo8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgcHgtMiBweC1tZC0zIHB5LTMiIHN0eWxlPSJtYXgtd2lkdGg6OTAwcHgiPgogIDxoNSBjbGFzcz0iZnctYm9sZCBtYi0zIj48aSBjbGFzcz0iYmkgYmktZnVubmVsLWZpbGwgbWUtMiB0ZXh0LXByaW1hcnkiPjwvaT5HZXN0acOzbiBkZSBGaWx0cm9zIHkgQWxlcnRhczwvaDU+CgogIDwhLS0gQ3JlYXIgbnVldm8gZmlsdHJvIC0tPgogIDxkaXYgY2xhc3M9ImNhcmQgcm91bmRlZC00IGJvcmRlci0wIHNoYWRvdy1zbSBtYi00Ij4KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLXRvcC00IHB5LTIgcHgtMyBmdy1zZW1pYm9sZCI+CiAgICAgIDxpIGNsYXNzPSJiaSBiaS1wbHVzLWNpcmNsZSBtZS0yIj48L2k+TnVldm8gRmlsdHJvCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSBwLTMiPgogICAgICA8Zm9ybSBpZD0iZmlsdGVyRm9ybSI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93IGctMyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgY29sLW1kLTYiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgc21hbGwgZnctc2VtaWJvbGQiPk5vbWJyZSBkZWwgZmlsdHJvPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IG5hbWU9Im5hbWUiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iRWo6IENhc2FzIGJhcmF0YXMgTGxpcmlhIj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTMiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgc21hbGwgZnctc2VtaWJvbGQiPlByZWNpbyBtaW4gKOKCrCk8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgbmFtZT0ibWluX3ByaWNlIiB0eXBlPSJudW1iZXIiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iMCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5QcmVjaW8gbWF4ICjigqwpPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IG5hbWU9Im1heF9wcmljZSIgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZm9ybS1jb250cm9sIHJvdW5kZWQtMyIgcGxhY2Vob2xkZXI9IjMwMDAwMCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5UaXBvIHByb3BpZWRhZDwvbGFiZWw+CiAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0icHJvcGVydHlfdHlwZSIgY2xhc3M9ImZvcm0tc2VsZWN0IHJvdW5kZWQtMyI+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5DdWFscXVpZXJhPC9vcHRpb24+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iY2FzYSI+Q2FzYTwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InBpc28iPlBpc288L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJjaGFsZXQiPkNoYWxldDwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InRlcnJlbm8iPlRlcnJlbm88L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJsb2NhbCI+TG9jYWw8L29wdGlvbj4KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5NdW5pY2lwaW88L2xhYmVsPgogICAgICAgICAgICA8c2VsZWN0IG5hbWU9Im11bmljaXBhbGl0eSIgY2xhc3M9ImZvcm0tc2VsZWN0IHJvdW5kZWQtMyI+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5Ub2Rvczwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24+TGxpcmlhPC9vcHRpb24+PG9wdGlvbj5NYXJpbmVzPC9vcHRpb24+PG9wdGlvbj5PbG9jYXU8L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uPk5hcXVlcmE8L29wdGlvbj48b3B0aW9uPkJldGVyYTwvb3B0aW9uPjxvcHRpb24+VmlsbGFtYXJjaGFudGU8L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uPkJlbmFndWFzaWw8L29wdGlvbj48b3B0aW9uPlBvYmxhIGRlIFZhbGxib25hPC9vcHRpb24+CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtNiBjb2wtbWQtMyI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBzbWFsbCBmdy1zZW1pYm9sZCI+SGFiaXRhY2lvbmVzIG1pbjwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJtaW5fcm9vbXMiIHR5cGU9Im51bWJlciIgY2xhc3M9ImZvcm0tY29udHJvbCByb3VuZGVkLTMiIHBsYWNlaG9sZGVyPSIwIj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTMiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgc21hbGwgZnctc2VtaWJvbGQiPlN1cGVyZmljaWUgbWluIChtwrIpPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IG5hbWU9Im1pbl9zaXplX20yIiB0eXBlPSJudW1iZXIiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iMCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5Qb3J0YWw8L2xhYmVsPgogICAgICAgICAgICA8c2VsZWN0IG5hbWU9InBvcnRhbCIgY2xhc3M9ImZvcm0tc2VsZWN0IHJvdW5kZWQtMyI+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5Ub2Rvczwvb3B0aW9uPgogICAgICAgICAgICAgIDwlIHBvcnRhbHMuZm9yRWFjaChmdW5jdGlvbihwKSB7ICU+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iPCU9IHAubmFtZS50b0xvd2VyQ2FzZSgpICU+Ij48JT0gcC5uYW1lICU+PC9vcHRpb24+CiAgICAgICAgICAgICAgPCUgfSk7ICU+CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZvcm0tY2hlY2staW5wdXQiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJlbWFpbF9hbGVydHMiIGlkPSJlbWFpbEFsZXJ0cyIgdmFsdWU9IjEiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1jaGVjay1sYWJlbCBmdy1zZW1pYm9sZCIgZm9yPSJlbWFpbEFsZXJ0cyI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktYmVsbC1maWxsIG1lLTEgdGV4dC13YXJuaW5nIj48L2k+RW52aWFyIGFsZXJ0YXMgcG9yIGVtYWlsIGN1YW5kbyBoYXlhIG51ZXZhcyBwcm9waWVkYWRlcwogICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLTMgcHgtNCIgb25jbGljaz0ic2F2ZUZpbHRlcigpIj4KICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktc2F2ZSBtZS0yIj48L2k+R3VhcmRhciBGaWx0cm8KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9mb3JtPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDwhLS0gTGlzdGEgZGUgZmlsdHJvcyBndWFyZGFkb3MgLS0+CiAgPGRpdiBjbGFzcz0iY2FyZCByb3VuZGVkLTQgYm9yZGVyLTAgc2hhZG93LXNtIj4KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLWxpZ2h0IHJvdW5kZWQtdG9wLTQgcHktMiBweC0zIGZ3LXNlbWlib2xkIj4KICAgICAgPGkgY2xhc3M9ImJpIGJpLWxpc3QtdWwgbWUtMiI+PC9pPkZpbHRyb3MgR3VhcmRhZG9zICg8c3BhbiBpZD0iZmlsdGVyQ291bnQiPjwlPSBmaWx0ZXJzLmxlbmd0aCAlPjwvc3Bhbj4pCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSBwLTAiIGlkPSJmaWx0ZXJMaXN0Ij4KICAgICAgPCUgaWYgKGZpbHRlcnMubGVuZ3RoID09PSAwKSB7ICU+CiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC1tdXRlZCBweS00Ij4KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS1pbmJveCBmcy0yIGQtYmxvY2sgbWItMiI+PC9pPk5vIGhheSBmaWx0cm9zIGd1YXJkYWRvcyB0b2RhdsOtYQogICAgICAgIDwvZGl2PgogICAgICA8JSB9IGVsc2UgeyAlPgogICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtZ3JvdXAgbGlzdC1ncm91cC1mbHVzaCByb3VuZGVkLTQiIGlkPSJmaWx0ZXJJdGVtcyI+CiAgICAgICAgICA8JSBmaWx0ZXJzLmZvckVhY2goZnVuY3Rpb24oZikgeyAlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlzdC1ncm91cC1pdGVtIiBpZD0iZmlsdGVyLTwlPSBmLmlkICU+Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0Ij4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnctc2VtaWJvbGQiPjwlPSBmLm5hbWUgfHwgIkZpbHRybyAjIiArIGYuaWQgJT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIHRleHQtbXV0ZWQgbXQtMSI+CiAgICAgICAgICAgICAgICAgIDwlIGlmIChmLm1pbl9wcmljZSB8fCBmLm1heF9wcmljZSkgeyAlPjxzcGFuIGNsYXNzPSJiYWRnZSBiZy1saWdodCB0ZXh0LWRhcmsgYm9yZGVyIG1lLTEiPuKCrCA8JT0gZi5taW5fcHJpY2UgfHwgMCAlPiAtIDwlPSBmLm1heF9wcmljZSB8fCAi4oieIiAlPjwvc3Bhbj48JSB9ICU+CiAgICAgICAgICAgICAgICAgIDwlIGlmIChmLnByb3BlcnR5X3R5cGUpIHsgJT48c3BhbiBjbGFzcz0iYmFkZ2UgYmctaW5mbyB0ZXh0LWRhcmsgbWUtMSI+PCU9IGYucHJvcGVydHlfdHlwZSAlPjwvc3Bhbj48JSB9ICU+CiAgICAgICAgICAgICAgICAgIDwlIGlmIChmLm11bmljaXBhbGl0eSkgeyAlPjxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zZWNvbmRhcnkgbWUtMSI+PCU9IGYubXVuaWNpcGFsaXR5ICU+PC9zcGFuPjwlIH0gJT4KICAgICAgICAgICAgICAgICAgPCUgaWYgKGYubWluX3Jvb21zKSB7ICU+PHNwYW4gY2xhc3M9ImJhZGdlIGJnLWxpZ2h0IHRleHQtZGFyayBib3JkZXIgbWUtMSI+PCU9IGYubWluX3Jvb21zICU+KyBoYWIuPC9zcGFuPjwlIH0gJT4KICAgICAgICAgICAgICAgICAgPCUgaWYgKGYucG9ydGFsKSB7ICU+PHNwYW4gY2xhc3M9ImJhZGdlIGJnLXByaW1hcnkgbWUtMSI+PGkgY2xhc3M9ImJpIGJpLXBsdWctZmlsbCBtZS0xIj48L2k+PCU9IGYucG9ydGFsICU+PC9zcGFuPjwlIH0gJT4KICAgICAgICAgICAgICAgICAgPCUgaWYgKGYuZW1haWxfYWxlcnRzKSB7ICU+PHNwYW4gY2xhc3M9ImJhZGdlIGJnLXdhcm5pbmcgdGV4dC1kYXJrIj48aSBjbGFzcz0iYmkgYmktYmVsbC1maWxsIG1lLTEiPjwvaT5FbWFpbCBhY3Rpdm88L3NwYW4+PCUgfSAlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZC1mbGV4IGdhcC0xIGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1zdGFydCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvZGFzaGJvYXJkPzwlPSBgcG1pbj0ke2YubWluX3ByaWNlfHwnJ30mcG1heD0ke2YubWF4X3ByaWNlfHwnJ30mbXVuaT0ke2VuY29kZVVSSUNvbXBvbmVudChmLm11bmljaXBhbGl0eXx8JycpfSZ0aXBvPSR7Zi5wcm9wZXJ0eV90eXBlfHwnJ30mcm9vbXM9JHtmLm1pbl9yb29tc3x8Jyd9JnBvcnRhbD0ke2VuY29kZVVSSUNvbXBvbmVudChmLnBvcnRhbHx8JycpfWAgJT4iIAogICAgICAgICAgICAgICAgICAgY2xhc3M9ImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSByb3VuZGVkLTMiIHRpdGxlPSJDYXJnYXIgZW4gdGFibGEiPgogICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktdGFibGUgbWUtMSI+PC9pPlRhYmxhCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvZGFzaGJvYXJkL21hcD88JT0gYHBtaW49JHtmLm1pbl9wcmljZXx8Jyd9JnBtYXg9JHtmLm1heF9wcmljZXx8Jyd9JnRpcG89JHtmLnByb3BlcnR5X3R5cGV8fCcnfSZwb3J0YWw9JHtlbmNvZGVVUklDb21wb25lbnQoZi5wb3J0YWx8fCcnKX1gICU+IiAKICAgICAgICAgICAgICAgICAgIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtc3VjY2VzcyBidG4tc20gcm91bmRlZC0zIiB0aXRsZT0iQ2FyZ2FyIGVuIG1hcGEiPgogICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktbWFwLWZpbGwgbWUtMSI+PC9pPk1hcGEKICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tb3V0bGluZS1kYW5nZXIgYnRuLXNtIHJvdW5kZWQtMyIgb25jbGljaz0iZGVsZXRlRmlsdGVyKCc8JT0gZi5pZCAlPicpIj4KICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImJpIGJpLXRyYXNoIj48L2k+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwlIH0pOyAlPgogICAgICAgIDwvZGl2PgogICAgICA8JSB9ICU+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9qcy9ib290c3RyYXAuYnVuZGxlLm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CmFzeW5jIGZ1bmN0aW9uIHNhdmVGaWx0ZXIoKSB7CiAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWx0ZXJGb3JtIik7CiAgY29uc3QgZGF0YSA9IHt9OwogIG5ldyBGb3JtRGF0YShmb3JtKS5mb3JFYWNoKCh2LCBrKSA9PiB7IGRhdGFba10gPSB2OyB9KTsKICBkYXRhLmVtYWlsX2FsZXJ0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbWFpbEFsZXJ0cyIpLmNoZWNrZWQgPyAiMSIgOiAiMCI7CiAgY29uc3QgciA9IGF3YWl0IGZldGNoKCIvYXBpL2ZpbHRlcnMiLCB7CiAgICBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKQogIH0pOwogIGNvbnN0IGQgPSBhd2FpdCByLmpzb24oKTsKICBpZiAoZC5zdWNjZXNzKSB7IGFsZXJ0KCJGaWx0cm8gZ3VhcmRhZG8iKTsgbG9jYXRpb24ucmVsb2FkKCk7IH0KICBlbHNlIGFsZXJ0KCJFcnJvcjogIiArIChkLmVycm9yIHx8ICJkZXNjb25vY2lkbyIpKTsKfQphc3luYyBmdW5jdGlvbiBkZWxldGVGaWx0ZXIoaWQpIHsKICBpZiAoIWNvbmZpcm0oIsK/RWxpbWluYXIgZXN0ZSBmaWx0cm8/IikpIHJldHVybjsKICBjb25zdCByID0gYXdhaXQgZmV0Y2goIi9hcGkvZmlsdGVycy8iICsgaWQsIHsgbWV0aG9kOiAiREVMRVRFIiB9KTsKICBjb25zdCBkID0gYXdhaXQgci5qc29uKCk7CiAgaWYgKGQuc3VjY2VzcykgewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbHRlci0iICsgaWQpLnJlbW92ZSgpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbHRlckNvdW50IikudGV4dENvbnRlbnQgPSBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsdGVyQ291bnQiKS50ZXh0Q29udGVudCkgLSAxOwogIH0KfQo8L3NjcmlwdD4KCjwhLS0gQm90dG9tIFRhYiBCYXIgLS0+CjxuYXYgY2xhc3M9ImJvdHRvbS10YWItYmFyIGQtbWQtbm9uZSIgcm9sZT0ibmF2aWdhdGlvbiIgYXJpYS1sYWJlbD0iTmF2ZWdhY2nDs24gcHJpbmNpcGFsIj4KICA8YSBocmVmPSIvZGFzaGJvYXJkIiAgICAgICAgICBjbGFzcz0idGFiLWl0ZW0iIGRhdGEtcGF0aD0iL2Rhc2hib2FyZCI+PGkgY2xhc3M9ImJpIGJpLWhvdXNlLWZpbGwiPjwvaT48c3Bhbj5JbmljaW88L3NwYW4+PC9hPgogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvbWFwIiAgICAgIGNsYXNzPSJ0YWItaXRlbSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkL21hcCI+PGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIj48L2k+PHNwYW4+TWFwYTwvc3Bhbj48L2E+CiAgPGEgaHJlZj0iL2Rhc2hib2FyZC9maWx0ZXJzIiAgY2xhc3M9InRhYi1pdGVtIGFjdGl2ZSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkL2ZpbHRlcnMiPjxpIGNsYXNzPSJiaSBiaS1mdW5uZWwtZmlsbCI+PC9pPjxzcGFuPkZpbHRyb3M8L3NwYW4+PC9hPgogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvYW5hbHl0aWNzIiBjbGFzcz0idGFiLWl0ZW0iIGRhdGEtcGF0aD0iL2Rhc2hib2FyZC9hbmFseXRpY3MiPjxpIGNsYXNzPSJiaSBiaS1iYXItY2hhcnQtZmlsbCI+PC9pPjxzcGFuPlN0YXRzPC9zcGFuPjwvYT4KICA8YnV0dG9uIGNsYXNzPSJ0YWItaXRlbSB0YWItc2NhbiIgb25jbGljaz0ic2NyYXBlTm93KCkiIGFyaWEtbGFiZWw9IkVzY2FuZWFyIHByb3BpZWRhZGVzIj48aSBjbGFzcz0iYmkgYmktYXJyb3ctcmVwZWF0Ij48L2k+PHNwYW4+RXNjYW5lYXI8L3NwYW4+PC9idXR0b24+CjwvbmF2Pgo8c2NyaXB0PgppZiAoInNlcnZpY2VXb3JrZXIiIGluIG5hdmlnYXRvcikgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9zdy5qcyIsIHsgc2NvcGU6ICIvIiB9KTsKYXN5bmMgZnVuY3Rpb24gc2NyYXBlTm93KCkgewogIGNvbnN0IGJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50YWItc2NhbiIpOwogIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gdHJ1ZTsgfQogIHRyeSB7CiAgICBjb25zdCByID0gYXdhaXQgZmV0Y2goIi9hcGkvc2NyYXBlci9zY3JhcGUiLCB7IG1ldGhvZDogIlBPU1QiIH0pOwogICAgY29uc3QgZCA9IGF3YWl0IHIuanNvbigpOwogICAgaWYgKHIuc3RhdHVzID09PSAyMDIgfHwgZC5zdWNjZXNzKSB7IGlmIChidG4pIGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImJpIGJpLWNoZWNrLWNpcmNsZSI+PC9pPjxzcGFuPuKckzwvc3Bhbj4nOyB9CiAgICBlbHNlIGFsZXJ0KCJFcnJvcjogIiArIChkLmVycm9yIHx8ICJkZXNjb25vY2lkbyIpKTsKICB9IGNhdGNoKGUpIHsgYWxlcnQoIkVycm9yIGRlIHJlZCIpOyB9CiAgaWYgKGJ0bikgeyBzZXRUaW1lb3V0KCgpID0+IHsgYnRuLmRpc2FibGVkID0gZmFsc2U7IGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImJpIGJpLWFycm93LXJlcGVhdCI+PC9pPjxzcGFuPkVzY2FuZWFyPC9zcGFuPic7IH0sIDMwMDApOyB9Cn0KPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=","afterExisted":true,"afterHash":"9c40e502081f6a26fd236ca1c920d5d8799c899bd565ff3915267b988fe35fd0","afterContent":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCB2aWV3cG9ydC1maXQ9Y292ZXIiPgogIDxtZXRhIG5hbWU9Im1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtdGl0bGUiIGNvbnRlbnQ9Ikxsw61yaWFQcm9wcyI+CiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPgogIDxtZXRhIG5hbWU9ImNvbG9yLXNjaGVtZSIgY29udGVudD0ibGlnaHQiPgogIDxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9uZT1ubywgZGF0ZT1ubywgZW1haWw9bm8sIGFkZHJlc3M9bm8iPgogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4KICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Ii9pY29ucy9hcHBsZS10b3VjaC1pY29uLnBuZyI+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvaWNvbnMvaWNvbi5zdmciIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgogIDx0aXRsZT5GaWx0cm9zIC0gTGxpcmlhIFByb3BlcnRpZXM8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXAtaWNvbnNAMS4xMS4yL2ZvbnQvYm9vdHN0cmFwLWljb25zLm1pbi5jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2Nzcy9tYWluLmNzcyI+CjwvaGVhZD4KPGJvZHkgY2xhc3M9Imhhcy1ib3R0b20tbmF2Ij4KPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctcHJpbWFyeSBzdGlja3ktdG9wIj4KICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgcHgtMyI+CiAgICA8YSBjbGFzcz0ibmF2YmFyLWJyYW5kIGZ3LWJvbGQiIGhyZWY9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS1ob3VzZS1oZWFydC1maWxsIG1lLTIiPjwvaT5MbGlyaWEgUHJvcGVydGllczwvYT4KICAgIDxkaXYgY2xhc3M9ImQtZmxleCBnYXAtMiI+CiAgICAgIDxhIGhyZWY9Ii9kYXNoYm9hcmQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktdGFibGUgbWUtMSI+PC9pPkxpc3RhPC9hPgogICAgICA8YSBocmVmPSIvZGFzaGJvYXJkL21hcCIgY2xhc3M9ImJ0biBidG4tb3V0bGluZS1saWdodCBidG4tc20iPjxpIGNsYXNzPSJiaSBiaS1tYXAtZmlsbCI+PC9pPjwvYT4KICAgICAgPGEgaHJlZj0iL2Rhc2hib2FyZC96b25lcyIgY2xhc3M9ImJ0biBidG4tb3V0bGluZS1saWdodCBidG4tc20iPjxpIGNsYXNzPSJiaSBiaS1nZW8tYWx0IG1lLTEiPjwvaT5ab25hczwvYT4KICAgICAgPGEgaHJlZj0iL2Rhc2hib2FyZC9wb3J0YWxzIiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLWxpZ2h0IGJ0bi1zbSI+PGkgY2xhc3M9ImJpIGJpLXBsdWctZmlsbCBtZS0xIj48L2k+UG9ydGFsZXM8L2E+CiAgICAgIDxhIGhyZWY9Ii9sb2dvdXQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktYm94LWFycm93LXJpZ2h0Ij48L2k+PC9hPgogICAgPC9kaXY+CiAgPC9kaXY+CjwvbmF2Pgo8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgcHgtMiBweC1tZC0zIHB5LTMiIHN0eWxlPSJtYXgtd2lkdGg6OTAwcHgiPgogIDxoNSBjbGFzcz0iZnctYm9sZCBtYi0zIj48aSBjbGFzcz0iYmkgYmktZnVubmVsLWZpbGwgbWUtMiB0ZXh0LXByaW1hcnkiPjwvaT5HZXN0acOzbiBkZSBGaWx0cm9zIHkgQWxlcnRhczwvaDU+CgogIDwhLS0gQ3JlYXIgbnVldm8gZmlsdHJvIC0tPgogIDxkaXYgY2xhc3M9ImNhcmQgcm91bmRlZC00IGJvcmRlci0wIHNoYWRvdy1zbSBtYi00Ij4KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLXRvcC00IHB5LTIgcHgtMyBmdy1zZW1pYm9sZCI+CiAgICAgIDxpIGNsYXNzPSJiaSBiaS1wbHVzLWNpcmNsZSBtZS0yIj48L2k+TnVldm8gRmlsdHJvCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSBwLTMiPgogICAgICA8Zm9ybSBpZD0iZmlsdGVyRm9ybSI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93IGctMyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgY29sLW1kLTYiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgc21hbGwgZnctc2VtaWJvbGQiPk5vbWJyZSBkZWwgZmlsdHJvPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IG5hbWU9Im5hbWUiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iRWo6IENhc2FzIGJhcmF0YXMgTGxpcmlhIj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTMiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgc21hbGwgZnctc2VtaWJvbGQiPlByZWNpbyBtaW4gKOKCrCk8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgbmFtZT0ibWluX3ByaWNlIiB0eXBlPSJudW1iZXIiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iMCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5QcmVjaW8gbWF4ICjigqwpPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IG5hbWU9Im1heF9wcmljZSIgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZm9ybS1jb250cm9sIHJvdW5kZWQtMyIgcGxhY2Vob2xkZXI9IjMwMDAwMCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5UaXBvIHByb3BpZWRhZDwvbGFiZWw+CiAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0icHJvcGVydHlfdHlwZSIgY2xhc3M9ImZvcm0tc2VsZWN0IHJvdW5kZWQtMyI+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5DdWFscXVpZXJhPC9vcHRpb24+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iY2FzYSI+Q2FzYTwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InBpc28iPlBpc288L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJjaGFsZXQiPkNoYWxldDwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InRlcnJlbm8iPlRlcnJlbm88L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJsb2NhbCI+TG9jYWw8L29wdGlvbj4KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5PcGVyYWNpw7NuPC9sYWJlbD4KICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJvcGVyYXRpb25fdHlwZSIgY2xhc3M9ImZvcm0tc2VsZWN0IHJvdW5kZWQtMyI+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5WZW50YSB5IGFscXVpbGVyPC9vcHRpb24+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic2FsZSI+VmVudGE8L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJyZW50Ij5BbHF1aWxlcjwvb3B0aW9uPgogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTMiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgc21hbGwgZnctc2VtaWJvbGQiPk11bmljaXBpbzwvbGFiZWw+CiAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0ibXVuaWNpcGFsaXR5IiBjbGFzcz0iZm9ybS1zZWxlY3Qgcm91bmRlZC0zIj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlRvZG9zPC9vcHRpb24+CiAgICAgICAgICAgICAgPCUgem9uZXMuZm9yRWFjaChmdW5jdGlvbih6b25lKSB7ICU+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iPCU9IHpvbmUubmFtZSAlPiI+PCU9IHpvbmUubmFtZSAlPjwlIGlmICh6b25lLmNvdmVyYWdlX3NlZ21lbnQpIHsgJT4gwrcgPCU9IHpvbmUuY292ZXJhZ2Vfc2VnbWVudCAlPjwlIH0gJT48L29wdGlvbj4KICAgICAgICAgICAgICA8JSB9KTsgJT4KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIHNtYWxsIGZ3LXNlbWlib2xkIj5IYWJpdGFjaW9uZXMgbWluPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IG5hbWU9Im1pbl9yb29tcyIgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZm9ybS1jb250cm9sIHJvdW5kZWQtMyIgcGxhY2Vob2xkZXI9IjAiPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtNiBjb2wtbWQtMyI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBzbWFsbCBmdy1zZW1pYm9sZCI+U3VwZXJmaWNpZSBtaW4gKG3Csik8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgbmFtZT0ibWluX3NpemVfbTIiIHR5cGU9Im51bWJlciIgY2xhc3M9ImZvcm0tY29udHJvbCByb3VuZGVkLTMiIHBsYWNlaG9sZGVyPSIwIj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTMiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgc21hbGwgZnctc2VtaWJvbGQiPlBvcnRhbDwvbGFiZWw+CiAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0icG9ydGFsIiBjbGFzcz0iZm9ybS1zZWxlY3Qgcm91bmRlZC0zIj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlRvZG9zPC9vcHRpb24+CiAgICAgICAgICAgICAgPCUgcG9ydGFscy5mb3JFYWNoKGZ1bmN0aW9uKHApIHsgJT4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI8JT0gcC5uYW1lICU+Ij48JT0gcC5uYW1lICU+PC9vcHRpb24+CiAgICAgICAgICAgICAgPCUgfSk7ICU+CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIj4KICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZvcm0tY2hlY2staW5wdXQiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJlbWFpbF9hbGVydHMiIGlkPSJlbWFpbEFsZXJ0cyIgdmFsdWU9IjEiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1jaGVjay1sYWJlbCBmdy1zZW1pYm9sZCIgZm9yPSJlbWFpbEFsZXJ0cyI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktYmVsbC1maWxsIG1lLTEgdGV4dC13YXJuaW5nIj48L2k+RW52aWFyIGFsZXJ0YXMgcG9yIGVtYWlsIGN1YW5kbyBoYXlhIG51ZXZhcyBwcm9waWVkYWRlcwogICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLTMgcHgtNCIgb25jbGljaz0ic2F2ZUZpbHRlcigpIj4KICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktc2F2ZSBtZS0yIj48L2k+R3VhcmRhciBGaWx0cm8KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9mb3JtPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDwhLS0gTGlzdGEgZGUgZmlsdHJvcyBndWFyZGFkb3MgLS0+CiAgPGRpdiBjbGFzcz0iY2FyZCByb3VuZGVkLTQgYm9yZGVyLTAgc2hhZG93LXNtIj4KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLWxpZ2h0IHJvdW5kZWQtdG9wLTQgcHktMiBweC0zIGZ3LXNlbWlib2xkIj4KICAgICAgPGkgY2xhc3M9ImJpIGJpLWxpc3QtdWwgbWUtMiI+PC9pPkZpbHRyb3MgR3VhcmRhZG9zICg8c3BhbiBpZD0iZmlsdGVyQ291bnQiPjwlPSBmaWx0ZXJzLmxlbmd0aCAlPjwvc3Bhbj4pCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSBwLTAiIGlkPSJmaWx0ZXJMaXN0Ij4KICAgICAgPCUgaWYgKGZpbHRlcnMubGVuZ3RoID09PSAwKSB7ICU+CiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC1tdXRlZCBweS00Ij4KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS1pbmJveCBmcy0yIGQtYmxvY2sgbWItMiI+PC9pPk5vIGhheSBmaWx0cm9zIGd1YXJkYWRvcyB0b2RhdsOtYQogICAgICAgIDwvZGl2PgogICAgICA8JSB9IGVsc2UgeyAlPgogICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtZ3JvdXAgbGlzdC1ncm91cC1mbHVzaCByb3VuZGVkLTQiIGlkPSJmaWx0ZXJJdGVtcyI+CiAgICAgICAgICA8JSBmaWx0ZXJzLmZvckVhY2goZnVuY3Rpb24oZikgeyAlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlzdC1ncm91cC1pdGVtIiBpZD0iZmlsdGVyLTwlPSBmLmlkICU+Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0Ij4KICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnctc2VtaWJvbGQiPjwlPSBmLm5hbWUgfHwgIkZpbHRybyAjIiArIGYuaWQgJT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIHRleHQtbXV0ZWQgbXQtMSI+CiAgICAgICAgICAgICAgICAgIDwlIGlmIChmLm1pbl9wcmljZSB8fCBmLm1heF9wcmljZSkgeyAlPjxzcGFuIGNsYXNzPSJiYWRnZSBiZy1saWdodCB0ZXh0LWRhcmsgYm9yZGVyIG1lLTEiPuKCrCA8JT0gZi5taW5fcHJpY2UgfHwgMCAlPiAtIDwlPSBmLm1heF9wcmljZSB8fCAi4oieIiAlPjwvc3Bhbj48JSB9ICU+CiAgICAgICAgICAgICAgICAgIDwlIGlmIChmLnByb3BlcnR5X3R5cGUpIHsgJT48c3BhbiBjbGFzcz0iYmFkZ2UgYmctaW5mbyB0ZXh0LWRhcmsgbWUtMSI+PCU9IGYucHJvcGVydHlfdHlwZSAlPjwvc3Bhbj48JSB9ICU+CiAgICAgICAgICAgICAgICAgIDwlIGlmIChmLm9wZXJhdGlvbl90eXBlKSB7ICU+PHNwYW4gY2xhc3M9ImJhZGdlIGJnLWRhcmsgbWUtMSI+PCU9IGYub3BlcmF0aW9uX3R5cGUgPT09ICdyZW50JyA/ICdBbHF1aWxlcicgOiAnVmVudGEnICU+PC9zcGFuPjwlIH0gJT4KICAgICAgICAgICAgICAgICAgPCUgaWYgKGYubXVuaWNpcGFsaXR5KSB7ICU+PHNwYW4gY2xhc3M9ImJhZGdlIGJnLXNlY29uZGFyeSBtZS0xIj48JT0gZi5tdW5pY2lwYWxpdHkgJT48L3NwYW4+PCUgfSAlPgogICAgICAgICAgICAgICAgICA8JSBpZiAoZi5taW5fcm9vbXMpIHsgJT48c3BhbiBjbGFzcz0iYmFkZ2UgYmctbGlnaHQgdGV4dC1kYXJrIGJvcmRlciBtZS0xIj48JT0gZi5taW5fcm9vbXMgJT4rIGhhYi48L3NwYW4+PCUgfSAlPgogICAgICAgICAgICAgICAgICA8JSBpZiAoZi5wb3J0YWwpIHsgJT48c3BhbiBjbGFzcz0iYmFkZ2UgYmctcHJpbWFyeSBtZS0xIj48aSBjbGFzcz0iYmkgYmktcGx1Zy1maWxsIG1lLTEiPjwvaT48JT0gZi5wb3J0YWwgJT48L3NwYW4+PCUgfSAlPgogICAgICAgICAgICAgICAgICA8JSBpZiAoZi5lbWFpbF9hbGVydHMpIHsgJT48c3BhbiBjbGFzcz0iYmFkZ2UgYmctd2FybmluZyB0ZXh0LWRhcmsiPjxpIGNsYXNzPSJiaSBiaS1iZWxsLWZpbGwgbWUtMSI+PC9pPkVtYWlsIGFjdGl2bzwvc3Bhbj48JSB9ICU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkLWZsZXggZ2FwLTEgZmxleC13cmFwIGFsaWduLWl0ZW1zLXN0YXJ0Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9kYXNoYm9hcmQ/PCU9IGBvcD0ke2Yub3BlcmF0aW9uX3R5cGV8fCdzYWxlJ30mcG1pbj0ke2YubWluX3ByaWNlfHwnJ30mcG1heD0ke2YubWF4X3ByaWNlfHwnJ30mbXVuaT0ke2VuY29kZVVSSUNvbXBvbmVudChmLm11bmljaXBhbGl0eXx8JycpfSZ0aXBvPSR7Zi5wcm9wZXJ0eV90eXBlfHwnJ30mcm9vbXM9JHtmLm1pbl9yb29tc3x8Jyd9JnBvcnRhbD0ke2VuY29kZVVSSUNvbXBvbmVudChmLnBvcnRhbHx8JycpfWAgJT4iIAogICAgICAgICAgICAgICAgICAgY2xhc3M9ImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSByb3VuZGVkLTMiIHRpdGxlPSJDYXJnYXIgZW4gdGFibGEiPgogICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktdGFibGUgbWUtMSI+PC9pPlRhYmxhCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvZGFzaGJvYXJkL21hcD88JT0gYG9wPSR7Zi5vcGVyYXRpb25fdHlwZXx8J3NhbGUnfSZwbWluPSR7Zi5taW5fcHJpY2V8fCcnfSZwbWF4PSR7Zi5tYXhfcHJpY2V8fCcnfSZ0aXBvPSR7Zi5wcm9wZXJ0eV90eXBlfHwnJ30mcG9ydGFsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGYucG9ydGFsfHwnJyl9YCAlPiIgCiAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXN1Y2Nlc3MgYnRuLXNtIHJvdW5kZWQtMyIgdGl0bGU9IkNhcmdhciBlbiBtYXBhIj4KICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIG1lLTEiPjwvaT5NYXBhCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtZGFuZ2VyIGJ0bi1zbSByb3VuZGVkLTMiIG9uY2xpY2s9ImRlbGV0ZUZpbHRlcignPCU9IGYuaWQgJT4nKSI+CiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaCI+PC9pPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8JSB9KTsgJT4KICAgICAgICA8L2Rpdj4KICAgICAgPCUgfSAlPgogICAgPC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMy4yL2Rpc3QvanMvYm9vdHN0cmFwLmJ1bmRsZS5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0Pgphc3luYyBmdW5jdGlvbiBzYXZlRmlsdGVyKCkgewogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsdGVyRm9ybSIpOwogIGNvbnN0IGRhdGEgPSB7fTsKICBuZXcgRm9ybURhdGEoZm9ybSkuZm9yRWFjaCgodiwgaykgPT4geyBkYXRhW2tdID0gdjsgfSk7CiAgZGF0YS5lbWFpbF9hbGVydHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW1haWxBbGVydHMiKS5jaGVja2VkID8gIjEiIDogIjAiOwogIGNvbnN0IHIgPSBhd2FpdCBmZXRjaCgiL2FwaS9maWx0ZXJzIiwgewogICAgbWV0aG9kOiAiUE9TVCIsIGhlYWRlcnM6IHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9LAogICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSkKICB9KTsKICBjb25zdCBkID0gYXdhaXQgci5qc29uKCk7CiAgaWYgKGQuc3VjY2VzcykgeyBhbGVydCgiRmlsdHJvIGd1YXJkYWRvIik7IGxvY2F0aW9uLnJlbG9hZCgpOyB9CiAgZWxzZSBhbGVydCgiRXJyb3I6ICIgKyAoZC5lcnJvciB8fCAiZGVzY29ub2NpZG8iKSk7Cn0KYXN5bmMgZnVuY3Rpb24gZGVsZXRlRmlsdGVyKGlkKSB7CiAgaWYgKCFjb25maXJtKCLCv0VsaW1pbmFyIGVzdGUgZmlsdHJvPyIpKSByZXR1cm47CiAgY29uc3QgciA9IGF3YWl0IGZldGNoKCIvYXBpL2ZpbHRlcnMvIiArIGlkLCB7IG1ldGhvZDogIkRFTEVURSIgfSk7CiAgY29uc3QgZCA9IGF3YWl0IHIuanNvbigpOwogIGlmIChkLnN1Y2Nlc3MpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWx0ZXItIiArIGlkKS5yZW1vdmUoKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWx0ZXJDb3VudCIpLnRleHRDb250ZW50ID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbHRlckNvdW50IikudGV4dENvbnRlbnQpIC0gMTsKICB9Cn0KPC9zY3JpcHQ+Cgo8IS0tIEJvdHRvbSBUYWIgQmFyIC0tPgo8bmF2IGNsYXNzPSJib3R0b20tdGFiLWJhciBkLW1kLW5vbmUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9Ik5hdmVnYWNpw7NuIHByaW5jaXBhbCI+CiAgPGEgaHJlZj0iL2Rhc2hib2FyZCIgICAgICAgICAgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS1ob3VzZS1maWxsIj48L2k+PHNwYW4+SW5pY2lvPC9zcGFuPjwvYT4KICA8YSBocmVmPSIvZGFzaGJvYXJkL21hcCIgICAgICBjbGFzcz0idGFiLWl0ZW0iIGRhdGEtcGF0aD0iL2Rhc2hib2FyZC9tYXAiPjxpIGNsYXNzPSJiaSBiaS1tYXAtZmlsbCI+PC9pPjxzcGFuPk1hcGE8L3NwYW4+PC9hPgogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvZmlsdGVycyIgIGNsYXNzPSJ0YWItaXRlbSBhY3RpdmUiIGRhdGEtcGF0aD0iL2Rhc2hib2FyZC9maWx0ZXJzIj48aSBjbGFzcz0iYmkgYmktZnVubmVsLWZpbGwiPjwvaT48c3Bhbj5GaWx0cm9zPC9zcGFuPjwvYT4KICA8YSBocmVmPSIvZGFzaGJvYXJkL2FuYWx5dGljcyIgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQvYW5hbHl0aWNzIj48aSBjbGFzcz0iYmkgYmktYmFyLWNoYXJ0LWZpbGwiPjwvaT48c3Bhbj5TdGF0czwvc3Bhbj48L2E+CiAgPGJ1dHRvbiBjbGFzcz0idGFiLWl0ZW0gdGFiLXNjYW4iIG9uY2xpY2s9InNjcmFwZU5vdygpIiBhcmlhLWxhYmVsPSJFc2NhbmVhciBwcm9waWVkYWRlcyI+PGkgY2xhc3M9ImJpIGJpLWFycm93LXJlcGVhdCI+PC9pPjxzcGFuPkVzY2FuZWFyPC9zcGFuPjwvYnV0dG9uPgo8L25hdj4KPHNjcmlwdD4KaWYgKCJzZXJ2aWNlV29ya2VyIiBpbiBuYXZpZ2F0b3IpIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvc3cuanMiLCB7IHNjb3BlOiAiLyIgfSk7CmFzeW5jIGZ1bmN0aW9uIHNjcmFwZU5vdygpIHsKICBjb25zdCBidG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudGFiLXNjYW4iKTsKICBpZiAoYnRuKSB7IGJ0bi5kaXNhYmxlZCA9IHRydWU7IH0KICB0cnkgewogICAgY29uc3QgciA9IGF3YWl0IGZldGNoKCIvYXBpL3NjcmFwZXIvc2NyYXBlIiwgeyBtZXRob2Q6ICJQT1NUIiB9KTsKICAgIGNvbnN0IGQgPSBhd2FpdCByLmpzb24oKTsKICAgIGlmIChyLnN0YXR1cyA9PT0gMjAyIHx8IGQuc3VjY2VzcykgeyBpZiAoYnRuKSBidG4uaW5uZXJIVE1MID0gJzxpIGNsYXNzPSJiaSBiaS1jaGVjay1jaXJjbGUiPjwvaT48c3Bhbj7inJM8L3NwYW4+JzsgfQogICAgZWxzZSBhbGVydCgiRXJyb3I6ICIgKyAoZC5lcnJvciB8fCAiZGVzY29ub2NpZG8iKSk7CiAgfSBjYXRjaChlKSB7IGFsZXJ0KCJFcnJvciBkZSByZWQiKTsgfQogIGlmIChidG4pIHsgc2V0VGltZW91dCgoKSA9PiB7IGJ0bi5kaXNhYmxlZCA9IGZhbHNlOyBidG4uaW5uZXJIVE1MID0gJzxpIGNsYXNzPSJiaSBiaS1hcnJvdy1yZXBlYXQiPjwvaT48c3Bhbj5Fc2NhbmVhcjwvc3Bhbj4nOyB9LCAzMDAwKTsgfQp9Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\views\\dashboard\\portals.ejs","beforeExisted":true,"beforeHash":"116f96fdd15ad3cc3d597aea58ffd6938937aace02910e662d4800e76b77dd73","beforeContent":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlcyI+DQo8aGVhZD4NCiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgdmlld3BvcnQtZml0PWNvdmVyIj4NCiAgPG1ldGEgbmFtZT0ibW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZSIgY29udGVudD0iYmxhY2stdHJhbnNsdWNlbnQiPg0KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iTGzDrXJpYVByb3BzIj4NCiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPg0KICA8bWV0YSBuYW1lPSJjb2xvci1zY2hlbWUiIGNvbnRlbnQ9ImxpZ2h0Ij4NCiAgPG1ldGEgbmFtZT0iZm9ybWF0LWRldGVjdGlvbiIgY29udGVudD0idGVsZXBob25lPW5vLCBkYXRlPW5vLCBlbWFpbD1ubywgYWRkcmVzcz1ubyI+DQogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4NCiAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi5wbmciPg0KICA8bGluayByZWw9Imljb24iIGhyZWY9Ii9pY29ucy9pY29uLnN2ZyIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCI+DQogIDx0aXRsZT5Qb3J0YWxlcyAtIExsaXJpYSBQcm9wZXJ0aWVzPC90aXRsZT4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXAtaWNvbnNAMS4xMS4yL2ZvbnQvYm9vdHN0cmFwLWljb25zLm1pbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvbWFpbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvZGFzaGJvYXJkLmNzcyI+DQo8L2hlYWQ+DQo8Ym9keSBjbGFzcz0iaGFzLWJvdHRvbS1uYXYiPg0KPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctcHJpbWFyeSBzdGlja3ktdG9wIj4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIHB4LTMiPg0KICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQgZnctYm9sZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIiBocmVmPSIvZGFzaGJvYXJkIj4NCiAgICAgIDxpIGNsYXNzPSJiaSBiaS1ob3VzZS1oZWFydC1maWxsIGZzLTUiPjwvaT4NCiAgICAgIDxzcGFuIGNsYXNzPSJkLW5vbmUgZC1zbS1pbmxpbmUiPkxsaXJpYSBQcm9wZXJ0aWVzPC9zcGFuPg0KICAgIDwvYT4NCiAgICA8YnV0dG9uIGNsYXNzPSJuYXZiYXItdG9nZ2xlciIgdHlwZT0iYnV0dG9uIiBkYXRhLWJzLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtYnMtdGFyZ2V0PSIjbWFpbk5hdiI+DQogICAgICA8c3BhbiBjbGFzcz0ibmF2YmFyLXRvZ2dsZXItaWNvbiI+PC9zcGFuPg0KICAgIDwvYnV0dG9uPg0KICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSIgaWQ9Im1haW5OYXYiPg0KICAgICAgPHVsIGNsYXNzPSJuYXZiYXItbmF2IG1lLWF1dG8iPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsiIGhyZWY9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS10YWJsZSBtZS0xIj48L2k+UHJvcGllZGFkZXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL21hcCI+PGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIG1lLTEiPjwvaT5NYXBhPC9hPjwvbGk+DQogICAgICAgIDxsaSBjbGFzcz0ibmF2LWl0ZW0iPjxhIGNsYXNzPSJuYXYtbGluayIgaHJlZj0iL2Rhc2hib2FyZC96b25lcyI+PGkgY2xhc3M9ImJpIGJpLWdlby1hbHQtZmlsbCBtZS0xIj48L2k+Wm9uYXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL2ZpbHRlcnMiPjxpIGNsYXNzPSJiaSBiaS1mdW5uZWwtZmlsbCBtZS0xIj48L2k+RmlsdHJvczwvYT48L2xpPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsgYWN0aXZlIiBocmVmPSIvZGFzaGJvYXJkL3BvcnRhbHMiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMSI+PC9pPlBvcnRhbGVzPC9hPjwvbGk+DQogICAgICA8L3VsPg0KICAgICAgPGRpdiBjbGFzcz0iZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgIDxhIGhyZWY9Ii9sb2dvdXQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktYm94LWFycm93LXJpZ2h0Ij48L2k+PC9hPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9uYXY+DQoNCjxtYWluIGNsYXNzPSJjb250YWluZXIgcHktNCIgc3R5bGU9Im1heC13aWR0aDo5MDBweCI+DQogIDxkaXYgY2xhc3M9ImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgbWItNCI+DQogICAgPGg0IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMiB0ZXh0LXByaW1hcnkiPjwvaT5HZXN0acOzbiBkZSBQb3J0YWxlczwvaDQ+DQogICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3MiIGlkPSJhY3RpdmVDb3VudCI+4oCUPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj5hY3Rpdm9zPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IiBpZD0iZGF0YUNvdW50Ij7igJQ8L3NwYW4+DQogICAgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPmNvbiBkYXRvczwvc3Bhbj4NCiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1zbSBtcy1hdXRvIHJvdW5kZWQtMyIgb25jbGljaz0ibG9hZFBvcnRhbHMoKSI+DQogICAgICA8aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5SZWNhcmdhcg0KICAgIDwvYnV0dG9uPg0KICA8L2Rpdj4NCg0KICA8IS0tIExpc3RhIGRlIHBvcnRhbGVzIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20gbWItNCI+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciBhbGlnbi1taWRkbGUgbWItMCIgaWQ9InBvcnRhbHNUYWJsZSI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1kYXJrIj4NCiAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJwcy0zIj5Qb3J0YWw8L3RoPg0KICAgICAgICAgICAgICA8dGg+Q2xhc2Ugc2NyYXBlcjwvdGg+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPlByb3BpZWRhZGVzPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+RXN0YWRvPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+QWNjaW9uZXM8L3RoPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgIDx0Ym9keSBpZD0icG9ydGFsc0JvZHkiPg0KICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI1IiBjbGFzcz0idGV4dC1jZW50ZXIgcHktNCB0ZXh0LW11dGVkIj4NCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG1lLTIiPjwvc3Bhbj5DYXJnYW5kby4uLg0KICAgICAgICAgICAgPC90ZD48L3RyPg0KICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQoNCiAgPCEtLSBTYWx1ZCBkZSBzY3JhcGVycyAtLT4NCiAgPGRpdiBjbGFzcz0iY2FyZCByb3VuZGVkLTQgYm9yZGVyLTAgc2hhZG93LXNtIG1iLTQiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLXdoaXRlIGJvcmRlci0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIiPg0KICAgICAgPGg2IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1oZWFydC1wdWxzZS1maWxsIHRleHQtZGFuZ2VyIG1lLTIiPjwvaT5TYWx1ZCBkZSBzY3JhcGVycyBwb3IgcG9ydGFsL29wZXJhY2nDs248L2g2Pg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tc20gcm91bmRlZC0zIiBvbmNsaWNrPSJsb2FkU2NyYXBlckhlYWx0aCgpIj48aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5BY3R1YWxpemFyPC9idXR0b24+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1zbSBhbGlnbi1taWRkbGUgbWItMCI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1saWdodCI+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0icHMtMyI+UG9ydGFsPC90aD4NCiAgICAgICAgICAgICAgPHRoPlZlbnRhICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkFscXVpbGVyICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkRpYWduw7NzdGljbzwvdGg+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDwvdGhlYWQ+DQogICAgICAgICAgPHRib2R5IGlkPSJoZWFsdGhCb2R5Ij4NCiAgICAgICAgICAgIDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+Q2FyZ2FuZG8gc2FsdWQuLi48L3RkPjwvdHI+DQogICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCg0KICA8IS0tIFBhbmVsIGRlIExvZ3MgZW4gVGllbXBvIFJlYWwgLS0+DQogIDxkaXYgY2xhc3M9ImNhcmQgcm91bmRlZC00IGJvcmRlci0wIHNoYWRvdy1zbSBtYi00IiBpZD0ibG9nc0NhcmQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLWRhcmsgdGV4dC13aGl0ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtdG9wLTQgcHktMiI+DQogICAgICA8c3BhbiBpZD0ibG9nU3RhdHVzRG90IiBjbGFzcz0icm91bmRlZC1jaXJjbGUgZC1pbmxpbmUtYmxvY2siIHN0eWxlPSJ3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6IzZjNzU3ZDtmbGV4LXNocmluazowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MiPjwvc3Bhbj4NCiAgICAgIDxzcGFuIGNsYXNzPSJmdy1zZW1pYm9sZCBzbWFsbCBmbGV4LWdyb3ctMSI+PGkgY2xhc3M9ImJpIGJpLXRlcm1pbmFsLWZpbGwgbWUtMSI+PC9pPkxvZ3MgZGUgU2NyYXBpbmcgZW4gVGllbXBvIFJlYWw8L3NwYW4+CiAgICAgIDxzcGFuIGlkPSJsb2dSdW5Nb2RlIiBjbGFzcz0iYmFkZ2UgYmctc2Vjb25kYXJ5Ij5JbmFjdGl2bzwvc3Bhbj4KICAgICAgPHNwYW4gaWQ9ImxvZ1BvcnRhbEJhZGdlIiBjbGFzcz0iYmFkZ2UgYmctcHJpbWFyeSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9zcGFuPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSByb3VuZGVkLTMgcHktMCBweC0yIiBvbmNsaWNrPSJjbGVhckxvZ3MoKSIgdGl0bGU9IkxpbXBpYXIgbG9ncyI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaDMiPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgcm91bmRlZC0zIHB5LTAgcHgtMiIgb25jbGljaz0idG9nZ2xlTG9nUGFuZWwoKSIgdGl0bGU9Ik1pbmltaXphciI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS1kYXNoLWxnIiBpZD0ibG9nc1RvZ2dsZUljb24iPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImxvZ3NCb2R5IiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGlkPSJsb2dzQ29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OjI4MHB4O292ZXJmbG93LXk6YXV0bztmb250LWZhbWlseTonQ291cmllciBOZXcnLG1vbm9zcGFjZTtmb250LXNpemU6MC43OHJlbTtiYWNrZ3JvdW5kOiMwZDExMTc7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXJhZGl1czowIDAgMXJlbSAxcmVtIj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1tdXRlZCIgaWQ9ImxvZ3NQbGFjZWhvbGRlciI+Q29uZWN0YW5kbyBhbCBzdHJlYW0gZGUgbG9ncy4uLjwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQogIDwhLS0gRm9ybXVsYXJpbyBwYXJhIGHDsWFkaXIgcG9ydGFsIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20iPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQogICAgICA8aDYgY2xhc3M9ImZ3LWJvbGQgbWItMyI+PGkgY2xhc3M9ImJpIGJpLXBsdXMtY2lyY2xlLWZpbGwgbWUtMiB0ZXh0LXN1Y2Nlc3MiPjwvaT5Bw7FhZGlyIFBvcnRhbCBQZXJzb25hbGl6YWRvPC9oNj4NCiAgICAgIDxmb3JtIGlkPSJhZGRQb3J0YWxGb3JtIiBjbGFzcz0icm93IGctMiIgb25zdWJtaXQ9ImFkZFBvcnRhbChldmVudCkiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgY29sLW1kLTQiPg0KICAgICAgICAgIDxpbnB1dCBpZD0icE5hbWUiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iTm9tYnJlIChlajogRm90b2Nhc2EpIiByZXF1aXJlZD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBjb2wtbWQtNCI+DQogICAgICAgICAgPGlucHV0IGlkPSJwQ2xhc3MiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iQ2xhc2Ugc2NyYXBlciAoZWo6IEZvdG9jYXNhU2NyYXBlcikiIHJlcXVpcmVkPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxzZWxlY3QgaWQ9InBBY3RpdmUiIGNsYXNzPSJmb3JtLXNlbGVjdCByb3VuZGVkLTMiPg0KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+QWN0aXZvPC9vcHRpb24+DQogICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5JbmFjdGl2bzwvb3B0aW9uPg0KICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIHctMTAwIHJvdW5kZWQtMyI+DQogICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktcGx1cy1sZyBtZS0xIj48L2k+QcOxYWRpcg0KICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZm9ybT4NCiAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXQtMyBtYi0wIHNtYWxsIHB5LTIiPg0KICAgICAgICA8aSBjbGFzcz0iYmkgYmktaW5mby1jaXJjbGUgbWUtMSI+PC9pPg0KICAgICAgICBMYSBjbGFzZSBzY3JhcGVyIGRlYmUgY29pbmNpZGlyIGV4YWN0YW1lbnRlIGNvbiBlbCBub21icmUgZXhwb3J0YWRvIGVuIDxjb2RlPnNyYy9zY3JhcGVycy9pbmRleC50czwvY29kZT4uPGJyPg0KICAgICAgICBMYSBkaXNwb25pYmlsaWRhZCByZWFsIHkgbGFzIG9wZXJhY2lvbmVzIGFkbWl0aWRhcyBzZSBtdWVzdHJhbiBlbiBsYSB0YWJsYSBkZSBzYWx1ZDsgcmVnaXN0cmFyIHVuYSBjbGFzZSBubyBnYXJhbnRpemEgcXVlIHN1IHBvcnRhbCBlc3TDqSBvcGVyYXRpdm8uCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjwvbWFpbj4NCg0KPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMy4yL2Rpc3QvanMvYm9vdHN0cmFwLmJ1bmRsZS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdD4NCmNvbnN0IElDT05fTUFQID0gew0KICBpZGVhbGlzdGE6ICJiaS1idWlsZGluZyIsDQogIGZvdG9jYXNhOiAiYmktY2FtZXJhLWZpbGwiLA0KICBoYWJpdGFjbGlhOiAiYmktaG91c2UtZG9vci1maWxsIiwNCiAgInBpc29zLWNvbSI6ICJiaS1saXN0LXVsIiwNCiAgdHJvdml0OiAiYmktc2VhcmNoIiwNCiAga3llcm86ICJiaS1nbG9iZTIiLA0KICB0aGlua3NwYWluOiAiYmktZmxhZy1maWxsIiwNCiAgZ2xvYmFsaXphOiAiYmktZ2VvLWZpbGwiLA0KICB0ZWNub2Nhc2E6ICJiaS1zaG9wIiwNCiAgcmVtYXg6ICJiaS1zdGFyLWZpbGwiLA0KICBtaWxhbnVuY2lvczogImJpLW1lZ2FwaG9uZS1maWxsIiwNCiAgbnVyb2E6ICJiaS1sYXllcnMtZmlsbCIsDQogIHNwYWluaG91c2VzOiAiYmktaG91c2VzLWZpbGwiLA0KICBob2xwcm9wOiAiYmkta2V5LWZpbGwiLA0KICB5YWVuY29udHJlOiAiYmktcGluLW1hcC1maWxsIiwNCiAgY2FzYXNhcG86ICJiaS1idWlsZGluZy1maWxsIiwNCiAgZW5nZWx2b2xrZXJzOiAiYmktZ2VtIiwNCiAgImVyYS1zcGFpbiI6ICJiaS1hd2FyZC1maWxsIiwNCiAgdmliYm86ICJiaS1jaGF0LXNxdWFyZS1kb3RzLWZpbGwiLA0KICBpbm1vYmlsaWFyaWE6ICJiaS1zaWduLXR1cm4tcmlnaHQtZmlsbCINCn07DQoNCmZ1bmN0aW9uIGdldEljb24oc2x1Zykgew0KICByZXR1cm4gSUNPTl9NQVBbc2x1Z10gfHwgImJpLXBsdWctZmlsbCI7DQp9DQoNCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8gU1NFIOKAlCBMb2dzIGVuIHRpZW1wbyByZWFsDQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmxldCBzc2VTb3VyY2UgPSBudWxsOw0KbGV0IGxvZ3NWaXNpYmxlID0gZmFsc2U7DQpsZXQgbG9nQ291bnQgPSAwOw0KDQpjb25zdCBMRVZFTF9TVFlMRSA9IHsNCiAgaW5mbzogICAgeyBjb2xvcjogIiM4YmI5ZmUiLCBpY29uOiAiYmktaW5mby1jaXJjbGUtZmlsbCIgfSwNCiAgc3VjY2VzczogeyBjb2xvcjogIiM1NmQzNjQiLCBpY29uOiAiYmktY2hlY2stY2lyY2xlLWZpbGwiIH0sDQogIHdhcm46ICAgIHsgY29sb3I6ICIjZTNiMzQxIiwgaWNvbjogImJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWZpbGwiIH0sDQogIGVycm9yOiAgIHsgY29sb3I6ICIjZjg1MTQ5IiwgaWNvbjogImJpLXgtY2lyY2xlLWZpbGwiIH0sDQogIGRlYnVnOiAgIHsgY29sb3I6ICIjOGQ5NmEwIiwgaWNvbjogImJpLWJ1Zy1maWxsIiB9LA0KfTsNCg0KZnVuY3Rpb24gaW5pdFNTRSgpIHsNCiAgaWYgKHNzZVNvdXJjZSkgcmV0dXJuOw0KICBzc2VTb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoIi9hcGkvc2NyYXBlci9sb2dzL3N0cmVhbSIpOw0KDQogIHNzZVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJsb2ciLCAoZSkgPT4gew0KICAgIGNvbnN0IGV2ID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGFwcGVuZExvZyhldik7DQogIH0pOw0KDQogIHNzZVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsIChlKSA9PiB7DQogICAgY29uc3QgZXYgPSBKU09OLnBhcnNlKGUuZGF0YSk7DQogICAgaGFuZGxlUHJvZ3Jlc3MoZXYpOw0KICB9KTsNCg0KICBzc2VTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcigic3RhdHVzIiwgKGUpID0+IHsNCiAgICBjb25zdCBldiA9IEpTT04ucGFyc2UoZS5kYXRhKTsNCiAgICB1cGRhdGVTdGF0dXNEb3QoZXYucnVubmluZywgZXYubW9kZSk7CiAgICBpZiAoZXYucnVubmluZykgc2hvd0xvZ1BhbmVsKCk7DQogIH0pOw0KDQogIHNzZVNvdXJjZS5vbmVycm9yID0gKCkgPT4gew0KICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgaWYgKHNzZVNvdXJjZSkgeyBzc2VTb3VyY2UuY2xvc2UoKTsgc3NlU291cmNlID0gbnVsbDsgfQ0KICAgICAgaW5pdFNTRSgpOw0KICAgIH0sIDUwMDApOw0KICB9Ow0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVTdGF0dXNEb3QocnVubmluZywgbW9kZSA9IHJ1bm5pbmcgPyAibWFudWFsIiA6ICJpZGxlIikgewogIGNvbnN0IGRvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dTdGF0dXNEb3QiKTsKICBjb25zdCBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dSdW5Nb2RlIik7CiAgaWYgKCFkb3QpIHJldHVybjsKICBpZiAocnVubmluZykgewogICAgZG90LnN0eWxlLmJhY2tncm91bmQgPSAiIzU2ZDM2NCI7DQogICAgZG90LnN0eWxlLmJveFNoYWRvdyA9ICIwIDAgNnB4ICM1NmQzNjQiOw0KICB9IGVsc2UgewogICAgZG90LnN0eWxlLmJhY2tncm91bmQgPSAiIzZjNzU3ZCI7DQogICAgZG90LnN0eWxlLmJveFNoYWRvdyA9ICJub25lIjsNCiAgfQogIGNvbnN0IGxhYmVsID0gbW9kZSA9PT0gInNjaGVkdWxlZCIgPyAiUHJvZ3JhbWFkbyIgOiBtb2RlID09PSAibWFudWFsIiA/ICJNYW51YWwiIDogIkluYWN0aXZvIjsKICBkb3QudGl0bGUgPSBgRXN0YWRvOiAke2xhYmVsfWA7CiAgaWYgKGJhZGdlKSB7CiAgICBiYWRnZS50ZXh0Q29udGVudCA9IGxhYmVsOwogICAgYmFkZ2UuY2xhc3NOYW1lID0gYGJhZGdlICR7cnVubmluZyA/ICJiZy1zdWNjZXNzIiA6ICJiZy1zZWNvbmRhcnkifWA7CiAgfQp9DQoNCmZ1bmN0aW9uIGFwcGVuZExvZyhldikgew0KICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc0NvbnRhaW5lciIpOw0KICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOw0KICBjb25zdCBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzUGxhY2Vob2xkZXIiKTsNCiAgaWYgKHBsYWNlaG9sZGVyKSBwbGFjZWhvbGRlci5yZW1vdmUoKTsNCg0KICBjb25zdCBzdHlsZSA9IExFVkVMX1NUWUxFW2V2LmxldmVsXSB8fCBMRVZFTF9TVFlMRS5pbmZvOw0KICBjb25zdCB0cyA9IG5ldyBEYXRlKGV2LnRzKS50b0xvY2FsZVRpbWVTdHJpbmcoImVzLUVTIiwgeyBob3VyMTI6IGZhbHNlIH0pOw0KICBjb25zdCBwb3J0YWwgPSBldi5wb3J0YWwgPyBgPHNwYW4gc3R5bGU9ImNvbG9yOiNlM2IzNDE7bWFyZ2luLXJpZ2h0OjRweCI+WyR7ZXYucG9ydGFsfV08L3NwYW4+YCA6ICIiOw0KICBjb25zdCBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogIGxpbmUuc3R5bGUuY3NzVGV4dCA9ICJtYXJnaW4tYm90dG9tOjJweDtsaW5lLWhlaWdodDoxLjU7d29yZC1icmVhazpicmVhay13b3JkIjsNCiAgbGluZS5pbm5lckhUTUwgPSBgPHNwYW4gc3R5bGU9ImNvbG9yOiM1NTU7dXNlci1zZWxlY3Q6bm9uZSI+JHt0c30gPC9zcGFuPiR7cG9ydGFsfTxpIGNsYXNzPSJiaSAke3N0eWxlLmljb259IiBzdHlsZT0iY29sb3I6JHtzdHlsZS5jb2xvcn07bWFyZ2luLXJpZ2h0OjRweDtmb250LXNpemU6LjdyZW0iPjwvaT48c3BhbiBzdHlsZT0iY29sb3I6JHtzdHlsZS5jb2xvcn0iPiR7ZXNjSHRtbChldi5tc2cpfTwvc3Bhbj5gOw0KICBjb250YWluZXIuYXBwZW5kQ2hpbGQobGluZSk7DQogIGxvZ0NvdW50Kys7DQogIC8vIE1hbnRlbmVyIG3DoXhpbW8gNDAwIGzDrW5lYXMgdmlzaWJsZXMNCiAgd2hpbGUgKGNvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGggPiA0MDApIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjb250YWluZXIuZmlyc3RDaGlsZCk7DQogIC8vIEF1dG8tc2Nyb2xsIHNpIGVzdGFiYSBhbCBmaW5hbA0KICBpZiAoY29udGFpbmVyLnNjcm9sbFRvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQgPj0gY29udGFpbmVyLnNjcm9sbEhlaWdodCAtIDQwKSB7DQogICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7DQogIH0NCn0NCg0KZnVuY3Rpb24gaGFuZGxlUHJvZ3Jlc3MoZXYpIHsNCiAgaWYgKGV2LnBoYXNlID09PSAic3RhcnQiKSB7DQogICAgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nUG9ydGFsQmFkZ2UiKTsNCiAgICBpZiAoYmFkZ2UpIHsgYmFkZ2UudGV4dENvbnRlbnQgPSBldi5wb3J0YWw7IGJhZGdlLnN0eWxlLmRpc3BsYXkgPSAiIjsgfQ0KICAgIHNob3dMb2dQYW5lbCgpOw0KICB9IGVsc2UgaWYgKGV2LnBoYXNlID09PSAiZG9uZSIgfHwgZXYucGhhc2UgPT09ICJlcnJvciIpIHsNCiAgICBzZXRUaW1lb3V0KGxvYWRQb3J0YWxzLCAzMDAwKTsgLy8gcmVmcmVzY2FyIGNvbnRhZG9yZXMgdHJhcyAzcw0KICB9DQp9DQoNCmZ1bmN0aW9uIHNob3dMb2dQYW5lbCgpIHsNCiAgY29uc3QgY2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzQ2FyZCIpOw0KICBpZiAoY2FyZCkgeyBjYXJkLnN0eWxlLmRpc3BsYXkgPSAiIjsgbG9nc1Zpc2libGUgPSB0cnVlOyB9DQp9DQoNCmZ1bmN0aW9uIHRvZ2dsZUxvZ1BhbmVsKCkgew0KICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NCb2R5Iik7DQogIGNvbnN0IGljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc1RvZ2dsZUljb24iKTsNCiAgaWYgKCFib2R5KSByZXR1cm47DQogIGNvbnN0IGNvbGxhcHNlZCA9IGJvZHkuc3R5bGUuZGlzcGxheSA9PT0gIm5vbmUiOw0KICBib2R5LnN0eWxlLmRpc3BsYXkgPSBjb2xsYXBzZWQgPyAiIiA6ICJub25lIjsNCiAgaWNvbi5jbGFzc05hbWUgPSBjb2xsYXBzZWQgPyAiYmkgYmktZGFzaC1sZyIgOiAiYmkgYmktY2hldnJvbi11cCI7DQp9DQoNCmZ1bmN0aW9uIGNsZWFyTG9ncygpIHsNCiAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NDb250YWluZXIiKTsNCiAgaWYgKGNvbnRhaW5lcikgew0KICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0idGV4dC1tdXRlZCIgaWQ9ImxvZ3NQbGFjZWhvbGRlciI+TG9ncyBsaW1waWFkb3M8L2Rpdj4nOw0KICB9DQogIGxvZ0NvdW50ID0gMDsNCn0NCg0KZnVuY3Rpb24gZXNjSHRtbChzdHIpIHsNCiAgcmV0dXJuIFN0cmluZyhzdHIpDQogICAgLnJlcGxhY2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpLnJlcGxhY2UoLz4vZywgIiZndDsiKQ0KICAgIC5yZXBsYWNlKC8iL2csICImcXVvdDsiKS5yZXBsYWNlKC8nL2csICImIzAzOTsiKTsNCn0NCg0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyBQb3J0YWxlcw0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQphc3luYyBmdW5jdGlvbiBsb2FkUG9ydGFscygpIHsNCiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goIi9hcGkvcG9ydGFscyIpOw0KICBjb25zdCBwb3J0YWxzID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgY29uc3QgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9ydGFsc0JvZHkiKTsNCiAgbGV0IGFjdGl2ZSA9IDA7DQogIGxldCB3aXRoRGF0YSA9IDA7DQoNCiAgaWYgKCFwb3J0YWxzLmxlbmd0aCkgew0KICAgIHRib2R5LmlubmVySFRNTCA9IGA8dHI+PHRkIGNvbHNwYW49IjUiIGNsYXNzPSJ0ZXh0LWNlbnRlciBweS00IHRleHQtbXV0ZWQiPk5vIGhheSBwb3J0YWxlcyBjb25maWd1cmFkb3M8L3RkPjwvdHI+YDsNCiAgICByZXR1cm47DQogIH0NCg0KICB0Ym9keS5pbm5lckhUTUwgPSBwb3J0YWxzLm1hcChwID0+IHsNCiAgICBpZiAocC5hY3RpdmUpIGFjdGl2ZSsrOw0KICAgIGNvbnN0IGljb24gPSBnZXRJY29uKHAuc2x1Zyk7DQogICAgY29uc3QgY291bnQgPSBwLnByb3BlcnR5X2NvdW50IHx8IDA7DQogICAgaWYgKGNvdW50ID4gMCkgd2l0aERhdGErKzsNCiAgICBjb25zdCBiYWRnZSA9IHAuYWN0aXZlDQogICAgICA/IGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+QWN0aXZvPC9zcGFuPmANCiAgICAgIDogYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zZWNvbmRhcnkiPkluYWN0aXZvPC9zcGFuPmA7DQogICAgY29uc3QgdG9nZ2xlVGl0bGUgPSBwLmFjdGl2ZSA/ICJEZXNhY3RpdmFyIiA6ICJBY3RpdmFyIjsNCiAgICBjb25zdCB0b2dnbGVDbGFzcyA9IHAuYWN0aXZlID8gImJ0bi1vdXRsaW5lLXdhcm5pbmciIDogImJ0bi1vdXRsaW5lLXN1Y2Nlc3MiOw0KICAgIGNvbnN0IHRvZ2dsZUljb24gPSBwLmFjdGl2ZSA/ICJiaS1wYXVzZS1maWxsIiA6ICJiaS1wbGF5LWZpbGwiOw0KICAgIGNvbnN0IGNvdW50QmFkZ2UgPSBjb3VudCA+IDANCiAgICAgID8gYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IHJvdW5kZWQtcGlsbCI+JHtjb3VudH08L3NwYW4+YA0KICAgICAgOiBgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPuKAlDwvc3Bhbj5gOw0KICAgIHJldHVybiBgPHRyIGlkPSJyb3ctJHtwLmlkfSI+DQogICAgICA8dGQgY2xhc3M9InBzLTMiPg0KICAgICAgICA8aSBjbGFzcz0iYmkgJHtpY29ufSBtZS0yIHRleHQtcHJpbWFyeSI+PC9pPg0KICAgICAgICA8c3Ryb25nPiR7cC5uYW1lfTwvc3Ryb25nPg0KICAgICAgPC90ZD4NCiAgICAgIDx0ZD48Y29kZSBjbGFzcz0idGV4dC1tdXRlZCI+JHtwLnNjcmFwZXJfY2xhc3N9PC9jb2RlPjwvdGQ+DQogICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4ke2NvdW50QmFkZ2V9PC90ZD4NCiAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiIGlkPSJiYWRnZS0ke3AuaWR9Ij4ke2JhZGdlfTwvdGQ+DQogICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4NCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuICR7dG9nZ2xlQ2xhc3N9IGJ0bi1zbSByb3VuZGVkLTMgbWUtMSIgdGl0bGU9IiR7dG9nZ2xlVGl0bGV9IiBvbmNsaWNrPSJ0b2dnbGVQb3J0YWwoJHtwLmlkfSkiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSAke3RvZ2dsZUljb259Ij48L2k+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAke3AuYWN0aXZlID8gYDxidXR0b24gY2xhc3M9ImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSByb3VuZGVkLTMgbWUtMSIgdGl0bGU9IkVzY2FuZWFyIGVzdGUgcG9ydGFsIGFob3JhIiBpZD0ic2Nhbi0ke3Auc2x1Z30iIG9uY2xpY2s9InNjcmFwZVBvcnRhbCgnJHtwLnNsdWd9JywgdGhpcykiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS1wbGF5LWNpcmNsZS1maWxsIj48L2k+DQogICAgICAgIDwvYnV0dG9uPmAgOiAnJ30NCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLWRhbmdlciBidG4tc20gcm91bmRlZC0zIiB0aXRsZT0iRWxpbWluYXIiIG9uY2xpY2s9ImRlbGV0ZVBvcnRhbCgke3AuaWR9LCAnJHtwLm5hbWV9JykiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaDMtZmlsbCI+PC9pPg0KICAgICAgICA8L2J1dHRvbj4NCiAgICAgIDwvdGQ+DQogICAgPC90cj5gOw0KICB9KS5qb2luKCIiKTsNCg0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlQ291bnQiKS50ZXh0Q29udGVudCA9IGFjdGl2ZTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhdGFDb3VudCIpLnRleHRDb250ZW50ID0gd2l0aERhdGE7DQp9DQoNCmZ1bmN0aW9uIGhlYWx0aEJhZGdlKG1zZykgew0KICBjb25zdCBtID0gKG1zZyB8fCAiIikudG9Mb3dlckNhc2UoKTsNCiAgaWYgKG0uaW5jbHVkZXMoIm9rIikpIHJldHVybiBgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3Mtc3VidGxlIHRleHQtc3VjY2VzcyBib3JkZXIgYm9yZGVyLXN1Y2Nlc3Mtc3VidGxlIj4ke21zZ308L3NwYW4+YDsNCiAgaWYgKG0uaW5jbHVkZXMoImluYWN0aXZvIikpIHJldHVybiBgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXNlY29uZGFyeS1zdWJ0bGUgdGV4dC1zZWNvbmRhcnkgYm9yZGVyIGJvcmRlci1zZWNvbmRhcnktc3VidGxlIj4ke21zZ308L3NwYW4+YDsNCiAgcmV0dXJuIGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctd2FybmluZy1zdWJ0bGUgdGV4dC13YXJuaW5nIGJvcmRlciBib3JkZXItd2FybmluZy1zdWJ0bGUiPiR7bXNnfTwvc3Bhbj5gOw0KfQ0KDQphc3luYyBmdW5jdGlvbiBsb2FkU2NyYXBlckhlYWx0aCgpIHsNCiAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFsdGhCb2R5Iik7DQogIGJvZHkuaW5uZXJIVE1MID0gYDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+Q2FyZ2FuZG8gc2FsdWQuLi48L3RkPjwvdHI+YDsNCiAgdHJ5IHsNCiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgiL2FwaS9wb3J0YWxzL2hlYWx0aCIpOw0KICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZXMuanNvbigpOw0KICAgIGlmICghanNvbi5zdWNjZXNzIHx8ICFqc29uLmRhdGE/Lmxlbmd0aCkgew0KICAgICAgYm9keS5pbm5lckhUTUwgPSBgPHRyPjx0ZCBjb2xzcGFuPSI0IiBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC1tdXRlZCBweS0zIj5TaW4gZGF0b3M8L3RkPjwvdHI+YDsNCiAgICAgIHJldHVybjsNCiAgICB9DQogICAgYm9keS5pbm5lckhUTUwgPSBqc29uLmRhdGEubWFwKHIgPT4gew0KICAgICAgY29uc3Qgc2FsZSA9IGAke3Iuc2FsZS50b3RhbH0gLyAke3Iuc2FsZS5sYXN0MjRofWA7DQogICAgICBjb25zdCByZW50ID0gYCR7ci5yZW50LnRvdGFsfSAvICR7ci5yZW50Lmxhc3QyNGh9YDsNCiAgICAgIGNvbnN0IGRpYWcgPSBgDQogICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMSI+DQogICAgICAgICAgJHtoZWFsdGhCYWRnZSgiVmVudGE6ICIgKyByLnNhbGUuZGlhZ25vc2lzKX0NCiAgICAgICAgICAke2hlYWx0aEJhZGdlKCJBbHF1aWxlcjogIiArIHIucmVudC5kaWFnbm9zaXMpfQ0KICAgICAgICA8L2Rpdj5gOw0KICAgICAgcmV0dXJuIGA8dHI+DQogICAgICAgIDx0ZCBjbGFzcz0icHMtMyI+PHN0cm9uZz4ke3IucG9ydGFsfTwvc3Ryb25nPjwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4ke3NhbGV9PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4ke3JlbnR9PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD4ke2RpYWd9PC90ZD4NCiAgICAgIDwvdHI+YDsNCiAgICB9KS5qb2luKCIiKTsNCiAgfSBjYXRjaCAoZSkgew0KICAgIGJvZHkuaW5uZXJIVE1MID0gYDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtZGFuZ2VyIHB5LTMiPkVycm9yIGNhcmdhbmRvIHNhbHVkPC90ZD48L3RyPmA7DQogIH0NCn0NCg0KYXN5bmMgZnVuY3Rpb24gdG9nZ2xlUG9ydGFsKGlkKSB7DQogIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAvYXBpL3BvcnRhbHMvJHtpZH0vdG9nZ2xlYCwgeyBtZXRob2Q6ICJQQVRDSCIgfSk7DQogIGNvbnN0IGQgPSBhd2FpdCByZXMuanNvbigpOw0KICBpZiAoZC5zdWNjZXNzKSBsb2FkUG9ydGFscygpOw0KfQ0KDQphc3luYyBmdW5jdGlvbiBkZWxldGVQb3J0YWwoaWQsIG5hbWUpIHsNCiAgaWYgKCFjb25maXJtKGDCv0VsaW1pbmFyIGVsIHBvcnRhbCAiJHtuYW1lfSI/IEVzdGEgYWNjacOzbiBubyBzZSBwdWVkZSBkZXNoYWNlci5gKSkgcmV0dXJuOw0KICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9wb3J0YWxzLyR7aWR9YCwgeyBtZXRob2Q6ICJERUxFVEUiIH0pOw0KICBjb25zdCBkID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgaWYgKGQuc3VjY2Vzcykgew0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGByb3ctJHtpZH1gKT8ucmVtb3ZlKCk7DQogICAgbG9hZFBvcnRhbHMoKTsNCiAgfSBlbHNlIHsNCiAgICBhbGVydCgiRXJyb3IgYWwgZWxpbWluYXIgZWwgcG9ydGFsIik7DQogIH0NCn0NCg0KYXN5bmMgZnVuY3Rpb24gYWRkUG9ydGFsKGV2ZW50KSB7DQogIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQogIGNvbnN0IG5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicE5hbWUiKS52YWx1ZS50cmltKCk7DQogIGNvbnN0IHNjcmFwZXJfY2xhc3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicENsYXNzIikudmFsdWUudHJpbSgpOw0KICBjb25zdCBhY3RpdmUgPSBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicEFjdGl2ZSIpLnZhbHVlKTsNCiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goIi9hcGkvcG9ydGFscyIsIHsNCiAgICBtZXRob2Q6ICJQT1NUIiwNCiAgICBoZWFkZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwNCiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IG5hbWUsIHNjcmFwZXJfY2xhc3MsIGFjdGl2ZSB9KQ0KICB9KTsNCiAgY29uc3QgZCA9IGF3YWl0IHJlcy5qc29uKCk7DQogIGlmIChkLnN1Y2Nlc3MpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWRkUG9ydGFsRm9ybSIpLnJlc2V0KCk7DQogICAgbG9hZFBvcnRhbHMoKTsNCiAgfSBlbHNlIHsNCiAgICBhbGVydCgiRXJyb3I6ICIgKyAoZC5lcnJvciB8fCAiZGVzY29ub2NpZG8iKSk7DQogIH0NCn0NCg0KYXN5bmMgZnVuY3Rpb24gc2NyYXBlUG9ydGFsKHNsdWcsIGJ0bikgew0KICBjb25zdCBvcEluID0gcHJvbXB0KCdPcGVyYWNpw7NuIHBhcmEgZXNjYW5lYXIgZXN0ZSBwb3J0YWw6ICJzYWxlIiAodmVudGEpIG8gInJlbnQiIChhbHF1aWxlciknLCAic2FsZSIpOw0KICBpZiAoIW9wSW4pIHJldHVybjsNCiAgY29uc3Qgb3AgPSBTdHJpbmcob3BJbikudHJpbSgpLnRvTG93ZXJDYXNlKCk7DQogIGlmICghWyJzYWxlIiwgInJlbnQiXS5pbmNsdWRlcyhvcCkpIHsNCiAgICBhbGVydCgnT3BlcmFjacOzbiBubyB2w6FsaWRhLiBVc2EgInNhbGUiIG8gInJlbnQiLicpOw0KICAgIHJldHVybjsNCiAgfQ0KICBjb25zdCBvcmlnID0gYnRuLmlubmVySFRNTDsNCiAgYnRuLmRpc2FibGVkID0gdHJ1ZTsNCiAgYnRuLmlubmVySFRNTCA9ICc8c3BhbiBjbGFzcz0ic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20iPjwvc3Bhbj4nOw0KDQogIC8vIE1vc3RyYXIgcGFuZWwgZGUgbG9ncyB5IGFicmlyIGNvbmV4acOzbiBTU0UNCiAgc2hvd0xvZ1BhbmVsKCk7DQogIGNsZWFyTG9ncygpOw0KICBpbml0U1NFKCk7DQoNCiAgdHJ5IHsNCiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9zY3JhcGVyL3NjcmFwZS8ke3NsdWd9P29wPSR7b3B9YCwgeyBtZXRob2Q6ICdQT1NUJyB9KTsNCiAgICBjb25zdCBkID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAyIHx8IGQuc3VjY2Vzcykgew0KICAgICAgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iYmkgYmktaG91cmdsYXNzLXNwbGl0IHRleHQtcHJpbWFyeSI+PC9pPic7DQogICAgICB1cGRhdGVTdGF0dXNEb3QodHJ1ZSk7DQogICAgICAvLyBFbCBwYW5lbCBTU0UgbW9zdHJhcsOhIGVsIHByb2dyZXNvOyByZXN0YXVyYXIgYm90w7NuIGN1YW5kbyBlbCBzY3JhcGluZyB0ZXJtaW5lDQogICAgICBjb25zdCByZXN0b3JlQnRuID0gKCkgPT4gew0KICAgICAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsNCiAgICAgICAgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgICB9Ow0KICAgICAgLy8gUG9sbGluZyBkZSBlc3RhZG8gcGFyYSByZXN0YXVyYXIgZWwgYm90w7NuDQogICAgICBjb25zdCBwb2xsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4gew0KICAgICAgICB0cnkgew0KICAgICAgICAgIGNvbnN0IHN0ID0gYXdhaXQgZmV0Y2goIi9hcGkvc2NyYXBlci9zdGF0dXMiKTsNCiAgICAgICAgICBjb25zdCBzID0gYXdhaXQgc3QuanNvbigpOw0KICAgICAgICAgIGlmICghcy5ydW5uaW5nKSB7CiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocG9sbCk7DQogICAgICAgICAgICByZXN0b3JlQnRuKCk7DQogICAgICAgICAgICB1cGRhdGVTdGF0dXNEb3QoZmFsc2UpOw0KICAgICAgICAgICAgbG9hZFBvcnRhbHMoKTsNCiAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2ggeyBjbGVhckludGVydmFsKHBvbGwpOyByZXN0b3JlQnRuKCk7IH0NCiAgICAgIH0sIDUwMDApOw0KICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gNDA5KSB7DQogICAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgICBhbGVydCgn4o+zIFlhIGhheSB1biBlc2NhbmVvIGVuIGN1cnNvLiBFc3BlcmEgYSBxdWUgdGVybWluZS4nKTsNCiAgICAgIHNob3dMb2dQYW5lbCgpOw0KICAgIH0gZWxzZSB7DQogICAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgICBhbGVydCgnRXJyb3I6ICcgKyAoZC5lcnJvciB8fCAnZGVzY29ub2NpZG8nKSk7DQogICAgfQ0KICB9IGNhdGNoIChlKSB7DQogICAgYnRuLmlubmVySFRNTCA9IG9yaWc7IGJ0bi5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIGFsZXJ0KCdFcnJvciBkZSByZWQgYWwgaW5pY2lhciBlbCBlc2NhbmVvJyk7DQogIH0NCn0NCg0KLy8gSW5pY2lhbGl6YXINCmxvYWRQb3J0YWxzKCk7DQpsb2FkU2NyYXBlckhlYWx0aCgpOw0KaW5pdFNTRSgpOw0KPC9zY3JpcHQ+DQoNCjwhLS0gQm90dG9tIFRhYiBCYXIgLS0+DQo8bmF2IGNsYXNzPSJib3R0b20tdGFiLWJhciBkLW1kLW5vbmUiIHJvbGU9Im5hdmlnYXRpb24iIGFyaWEtbGFiZWw9Ik5hdmVnYWNpw7NuIHByaW5jaXBhbCI+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQiICAgICAgICAgIGNsYXNzPSJ0YWItaXRlbSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkIj48aSBjbGFzcz0iYmkgYmktaG91c2UtZmlsbCI+PC9pPjxzcGFuPkluaWNpbzwvc3Bhbj48L2E+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvbWFwIiAgICAgIGNsYXNzPSJ0YWItaXRlbSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkL21hcCI+PGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIj48L2k+PHNwYW4+TWFwYTwvc3Bhbj48L2E+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvZmlsdGVycyIgIGNsYXNzPSJ0YWItaXRlbSIgZGF0YS1wYXRoPSIvZGFzaGJvYXJkL2ZpbHRlcnMiPjxpIGNsYXNzPSJiaSBiaS1mdW5uZWwtZmlsbCI+PC9pPjxzcGFuPkZpbHRyb3M8L3NwYW4+PC9hPg0KICA8YSBocmVmPSIvZGFzaGJvYXJkL2FuYWx5dGljcyIgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQvYW5hbHl0aWNzIj48aSBjbGFzcz0iYmkgYmktYmFyLWNoYXJ0LWZpbGwiPjwvaT48c3Bhbj5TdGF0czwvc3Bhbj48L2E+DQogIDxidXR0b24gY2xhc3M9InRhYi1pdGVtIHRhYi1zY2FuIiBvbmNsaWNrPSJzY3JhcGVOb3coKSIgYXJpYS1sYWJlbD0iRXNjYW5lYXIgcHJvcGllZGFkZXMiPjxpIGNsYXNzPSJiaSBiaS1hcnJvdy1yZXBlYXQiPjwvaT48c3Bhbj5Fc2NhbmVhcjwvc3Bhbj48L2J1dHRvbj4NCjwvbmF2Pg0KPHNjcmlwdD4NCmlmICgic2VydmljZVdvcmtlciIgaW4gbmF2aWdhdG9yKSBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL3N3LmpzIiwgeyBzY29wZTogIi8iIH0pOw0KYXN5bmMgZnVuY3Rpb24gc2NyYXBlTm93KCkgew0KICBjb25zdCBidG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudGFiLXNjYW4iKTsNCiAgaWYgKGJ0bikgeyBidG4uZGlzYWJsZWQgPSB0cnVlOyB9DQogIHRyeSB7DQogICAgY29uc3QgciA9IGF3YWl0IGZldGNoKCIvYXBpL3NjcmFwZXIvc2NyYXBlIiwgeyBtZXRob2Q6ICJQT1NUIiB9KTsNCiAgICBjb25zdCBkID0gYXdhaXQgci5qc29uKCk7DQogICAgaWYgKHIuc3RhdHVzID09PSAyMDIgfHwgZC5zdWNjZXNzKSB7IGlmIChidG4pIGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImJpIGJpLWNoZWNrLWNpcmNsZSI+PC9pPjxzcGFuPuKckzwvc3Bhbj4nOyB9DQogICAgZWxzZSBhbGVydCgiRXJyb3I6ICIgKyAoZC5lcnJvciB8fCAiZGVzY29ub2NpZG8iKSk7DQogIH0gY2F0Y2goZSkgeyBhbGVydCgiRXJyb3IgZGUgcmVkIik7IH0NCiAgaWYgKGJ0bikgeyBzZXRUaW1lb3V0KCgpID0+IHsgYnRuLmRpc2FibGVkID0gZmFsc2U7IGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImJpIGJpLWFycm93LXJlcGVhdCI+PC9pPjxzcGFuPkVzY2FuZWFyPC9zcGFuPic7IH0sIDMwMDApOyB9DQp9DQo8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4NCg==","afterExisted":true,"afterHash":"70e35595f4ef69f7207030ad349506112f33dcbacd4212d39c1dae7550c9068c","afterContent":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlcyI+DQo8aGVhZD4NCiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgdmlld3BvcnQtZml0PWNvdmVyIj4NCiAgPG1ldGEgbmFtZT0ibW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NCiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZSIgY29udGVudD0iYmxhY2stdHJhbnNsdWNlbnQiPg0KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iTGzDrXJpYVByb3BzIj4NCiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPg0KICA8bWV0YSBuYW1lPSJjb2xvci1zY2hlbWUiIGNvbnRlbnQ9ImxpZ2h0Ij4NCiAgPG1ldGEgbmFtZT0iZm9ybWF0LWRldGVjdGlvbiIgY29udGVudD0idGVsZXBob25lPW5vLCBkYXRlPW5vLCBlbWFpbD1ubywgYWRkcmVzcz1ubyI+DQogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4NCiAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi5wbmciPg0KICA8bGluayByZWw9Imljb24iIGhyZWY9Ii9pY29ucy9pY29uLnN2ZyIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCI+DQogIDx0aXRsZT5Qb3J0YWxlcyAtIExsaXJpYSBQcm9wZXJ0aWVzPC90aXRsZT4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyI+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXAtaWNvbnNAMS4xMS4yL2ZvbnQvYm9vdHN0cmFwLWljb25zLm1pbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvbWFpbi5jc3MiPg0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jc3MvZGFzaGJvYXJkLmNzcyI+DQo8L2hlYWQ+DQo8Ym9keSBjbGFzcz0iaGFzLWJvdHRvbS1uYXYiPg0KPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgbmF2YmFyLWRhcmsgYmctcHJpbWFyeSBzdGlja3ktdG9wIj4NCiAgPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIHB4LTMiPg0KICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQgZnctYm9sZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIiBocmVmPSIvZGFzaGJvYXJkIj4NCiAgICAgIDxpIGNsYXNzPSJiaSBiaS1ob3VzZS1oZWFydC1maWxsIGZzLTUiPjwvaT4NCiAgICAgIDxzcGFuIGNsYXNzPSJkLW5vbmUgZC1zbS1pbmxpbmUiPkxsaXJpYSBQcm9wZXJ0aWVzPC9zcGFuPg0KICAgIDwvYT4NCiAgICA8YnV0dG9uIGNsYXNzPSJuYXZiYXItdG9nZ2xlciIgdHlwZT0iYnV0dG9uIiBkYXRhLWJzLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtYnMtdGFyZ2V0PSIjbWFpbk5hdiI+DQogICAgICA8c3BhbiBjbGFzcz0ibmF2YmFyLXRvZ2dsZXItaWNvbiI+PC9zcGFuPg0KICAgIDwvYnV0dG9uPg0KICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSIgaWQ9Im1haW5OYXYiPg0KICAgICAgPHVsIGNsYXNzPSJuYXZiYXItbmF2IG1lLWF1dG8iPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsiIGhyZWY9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS10YWJsZSBtZS0xIj48L2k+UHJvcGllZGFkZXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL21hcCI+PGkgY2xhc3M9ImJpIGJpLW1hcC1maWxsIG1lLTEiPjwvaT5NYXBhPC9hPjwvbGk+DQogICAgICAgIDxsaSBjbGFzcz0ibmF2LWl0ZW0iPjxhIGNsYXNzPSJuYXYtbGluayIgaHJlZj0iL2Rhc2hib2FyZC96b25lcyI+PGkgY2xhc3M9ImJpIGJpLWdlby1hbHQtZmlsbCBtZS0xIj48L2k+Wm9uYXM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+PGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSIvZGFzaGJvYXJkL2ZpbHRlcnMiPjxpIGNsYXNzPSJiaSBiaS1mdW5uZWwtZmlsbCBtZS0xIj48L2k+RmlsdHJvczwvYT48L2xpPg0KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj48YSBjbGFzcz0ibmF2LWxpbmsgYWN0aXZlIiBocmVmPSIvZGFzaGJvYXJkL3BvcnRhbHMiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMSI+PC9pPlBvcnRhbGVzPC9hPjwvbGk+DQogICAgICA8L3VsPg0KICAgICAgPGRpdiBjbGFzcz0iZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgIDxhIGhyZWY9Ii9sb2dvdXQiIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtbGlnaHQgYnRuLXNtIj48aSBjbGFzcz0iYmkgYmktYm94LWFycm93LXJpZ2h0Ij48L2k+PC9hPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9uYXY+DQoNCjxtYWluIGNsYXNzPSJjb250YWluZXIgcHktNCIgc3R5bGU9Im1heC13aWR0aDo5MDBweCI+DQogIDxkaXYgY2xhc3M9ImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgbWItNCI+DQogICAgPGg0IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1wbHVnLWZpbGwgbWUtMiB0ZXh0LXByaW1hcnkiPjwvaT5HZXN0acOzbiBkZSBQb3J0YWxlczwvaDQ+DQogICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3MiIGlkPSJhY3RpdmVDb3VudCI+4oCUPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj5hY3Rpdm9zPC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IiBpZD0iZGF0YUNvdW50Ij7igJQ8L3NwYW4+DQogICAgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPmNvbiBkYXRvczwvc3Bhbj4NCiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1zbSBtcy1hdXRvIHJvdW5kZWQtMyIgb25jbGljaz0ibG9hZFBvcnRhbHMoKSI+DQogICAgICA8aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5SZWNhcmdhcg0KICAgIDwvYnV0dG9uPg0KICA8L2Rpdj4NCg0KICA8IS0tIExpc3RhIGRlIHBvcnRhbGVzIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20gbWItNCI+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciBhbGlnbi1taWRkbGUgbWItMCIgaWQ9InBvcnRhbHNUYWJsZSI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1kYXJrIj4NCiAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJwcy0zIj5Qb3J0YWw8L3RoPg0KICAgICAgICAgICAgICA8dGg+Q2xhc2Ugc2NyYXBlcjwvdGg+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPlByb3BpZWRhZGVzPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+RXN0YWRvPC90aD4NCiAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+QWNjaW9uZXM8L3RoPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgIDx0Ym9keSBpZD0icG9ydGFsc0JvZHkiPg0KICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI1IiBjbGFzcz0idGV4dC1jZW50ZXIgcHktNCB0ZXh0LW11dGVkIj4NCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG1lLTIiPjwvc3Bhbj5DYXJnYW5kby4uLg0KICAgICAgICAgICAgPC90ZD48L3RyPg0KICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQoNCiAgPCEtLSBTYWx1ZCBkZSBzY3JhcGVycyAtLT4NCiAgPGRpdiBjbGFzcz0iY2FyZCByb3VuZGVkLTQgYm9yZGVyLTAgc2hhZG93LXNtIG1iLTQiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLXdoaXRlIGJvcmRlci0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIiPg0KICAgICAgPGg2IGNsYXNzPSJtYi0wIGZ3LWJvbGQiPjxpIGNsYXNzPSJiaSBiaS1oZWFydC1wdWxzZS1maWxsIHRleHQtZGFuZ2VyIG1lLTIiPjwvaT5TYWx1ZCBkZSBzY3JhcGVycyBwb3IgcG9ydGFsL29wZXJhY2nDs248L2g2Pg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tc20gcm91bmRlZC0zIiBvbmNsaWNrPSJsb2FkU2NyYXBlckhlYWx0aCgpIj48aSBjbGFzcz0iYmkgYmktYXJyb3ctY2xvY2t3aXNlIG1lLTEiPjwvaT5BY3R1YWxpemFyPC9idXR0b24+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1zbSBhbGlnbi1taWRkbGUgbWItMCI+DQogICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0YWJsZS1saWdodCI+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0aCBjbGFzcz0icHMtMyI+UG9ydGFsPC90aD4NCiAgICAgICAgICAgICAgPHRoPlZlbnRhICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkFscXVpbGVyICh0b3RhbC8yNGgpPC90aD4NCiAgICAgICAgICAgICAgPHRoPkRpYWduw7NzdGljbzwvdGg+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDwvdGhlYWQ+DQogICAgICAgICAgPHRib2R5IGlkPSJoZWFsdGhCb2R5Ij4NCiAgICAgICAgICAgIDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+Q2FyZ2FuZG8gc2FsdWQuLi48L3RkPjwvdHI+DQogICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgPC90YWJsZT4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCg0KICA8IS0tIFBhbmVsIGRlIExvZ3MgZW4gVGllbXBvIFJlYWwgLS0+DQogIDxkaXYgY2xhc3M9ImNhcmQgcm91bmRlZC00IGJvcmRlci0wIHNoYWRvdy1zbSBtYi00IiBpZD0ibG9nc0NhcmQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGJnLWRhcmsgdGV4dC13aGl0ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtdG9wLTQgcHktMiI+DQogICAgICA8c3BhbiBpZD0ibG9nU3RhdHVzRG90IiBjbGFzcz0icm91bmRlZC1jaXJjbGUgZC1pbmxpbmUtYmxvY2siIHN0eWxlPSJ3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JhY2tncm91bmQ6IzZjNzU3ZDtmbGV4LXNocmluazowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MiPjwvc3Bhbj4NCiAgICAgIDxzcGFuIGNsYXNzPSJmdy1zZW1pYm9sZCBzbWFsbCBmbGV4LWdyb3ctMSI+PGkgY2xhc3M9ImJpIGJpLXRlcm1pbmFsLWZpbGwgbWUtMSI+PC9pPkxvZ3MgZGUgU2NyYXBpbmcgZW4gVGllbXBvIFJlYWw8L3NwYW4+CiAgICAgIDxzcGFuIGlkPSJsb2dSdW5Nb2RlIiBjbGFzcz0iYmFkZ2UgYmctc2Vjb25kYXJ5Ij5JbmFjdGl2bzwvc3Bhbj4KICAgICAgPHNwYW4gaWQ9ImxvZ1BvcnRhbEJhZGdlIiBjbGFzcz0iYmFkZ2UgYmctcHJpbWFyeSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9zcGFuPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSByb3VuZGVkLTMgcHktMCBweC0yIiBvbmNsaWNrPSJjbGVhckxvZ3MoKSIgdGl0bGU9IkxpbXBpYXIgbG9ncyI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaDMiPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgcm91bmRlZC0zIHB5LTAgcHgtMiIgb25jbGljaz0idG9nZ2xlTG9nUGFuZWwoKSIgdGl0bGU9Ik1pbmltaXphciI+DQogICAgICAgIDxpIGNsYXNzPSJiaSBiaS1kYXNoLWxnIiBpZD0ibG9nc1RvZ2dsZUljb24iPjwvaT4NCiAgICAgIDwvYnV0dG9uPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImxvZ3NCb2R5IiBjbGFzcz0iY2FyZC1ib2R5IHAtMCI+DQogICAgICA8ZGl2IGlkPSJsb2dzQ29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OjI4MHB4O292ZXJmbG93LXk6YXV0bztmb250LWZhbWlseTonQ291cmllciBOZXcnLG1vbm9zcGFjZTtmb250LXNpemU6MC43OHJlbTtiYWNrZ3JvdW5kOiMwZDExMTc7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXJhZGl1czowIDAgMXJlbSAxcmVtIj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1tdXRlZCIgaWQ9ImxvZ3NQbGFjZWhvbGRlciI+Q29uZWN0YW5kbyBhbCBzdHJlYW0gZGUgbG9ncy4uLjwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQogIDwhLS0gRm9ybXVsYXJpbyBwYXJhIGHDsWFkaXIgcG9ydGFsIC0tPg0KICA8ZGl2IGNsYXNzPSJjYXJkIHJvdW5kZWQtNCBib3JkZXItMCBzaGFkb3ctc20iPg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQogICAgICA8aDYgY2xhc3M9ImZ3LWJvbGQgbWItMyI+PGkgY2xhc3M9ImJpIGJpLXBsdXMtY2lyY2xlLWZpbGwgbWUtMiB0ZXh0LXN1Y2Nlc3MiPjwvaT5Bw7FhZGlyIFBvcnRhbCBQZXJzb25hbGl6YWRvPC9oNj4NCiAgICAgIDxmb3JtIGlkPSJhZGRQb3J0YWxGb3JtIiBjbGFzcz0icm93IGctMiIgb25zdWJtaXQ9ImFkZFBvcnRhbChldmVudCkiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgY29sLW1kLTQiPg0KICAgICAgICAgIDxpbnB1dCBpZD0icE5hbWUiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iTm9tYnJlIChlajogRm90b2Nhc2EpIiByZXF1aXJlZD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBjb2wtbWQtNCI+DQogICAgICAgICAgPGlucHV0IGlkPSJwQ2xhc3MiIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcm91bmRlZC0zIiBwbGFjZWhvbGRlcj0iQ2xhc2Ugc2NyYXBlciAoZWo6IEZvdG9jYXNhU2NyYXBlcikiIHJlcXVpcmVkPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxzZWxlY3QgaWQ9InBBY3RpdmUiIGNsYXNzPSJmb3JtLXNlbGVjdCByb3VuZGVkLTMiPg0KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+QWN0aXZvPC9vcHRpb24+DQogICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5JbmFjdGl2bzwvb3B0aW9uPg0KICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTIiPg0KICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIHctMTAwIHJvdW5kZWQtMyI+DQogICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktcGx1cy1sZyBtZS0xIj48L2k+QcOxYWRpcg0KICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZm9ybT4NCiAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8gbXQtMyBtYi0wIHNtYWxsIHB5LTIiPg0KICAgICAgICA8aSBjbGFzcz0iYmkgYmktaW5mby1jaXJjbGUgbWUtMSI+PC9pPg0KICAgICAgICBMYSBjbGFzZSBzY3JhcGVyIGRlYmUgY29pbmNpZGlyIGV4YWN0YW1lbnRlIGNvbiBlbCBub21icmUgZXhwb3J0YWRvIGVuIDxjb2RlPnNyYy9zY3JhcGVycy9pbmRleC50czwvY29kZT4uPGJyPg0KICAgICAgICBMYSBkaXNwb25pYmlsaWRhZCByZWFsIHkgbGFzIG9wZXJhY2lvbmVzIGFkbWl0aWRhcyBzZSBtdWVzdHJhbiBlbiBsYSB0YWJsYSBkZSBzYWx1ZDsgcmVnaXN0cmFyIHVuYSBjbGFzZSBubyBnYXJhbnRpemEgcXVlIHN1IHBvcnRhbCBlc3TDqSBvcGVyYXRpdm8uCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjwvbWFpbj4NCg0KPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDUuMy4yL2Rpc3QvanMvYm9vdHN0cmFwLmJ1bmRsZS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdD4NCmNvbnN0IElDT05fTUFQID0gew0KICBpZGVhbGlzdGE6ICJiaS1idWlsZGluZyIsDQogIGZvdG9jYXNhOiAiYmktY2FtZXJhLWZpbGwiLA0KICBoYWJpdGFjbGlhOiAiYmktaG91c2UtZG9vci1maWxsIiwNCiAgInBpc29zLWNvbSI6ICJiaS1saXN0LXVsIiwNCiAgdHJvdml0OiAiYmktc2VhcmNoIiwNCiAga3llcm86ICJiaS1nbG9iZTIiLA0KICB0aGlua3NwYWluOiAiYmktZmxhZy1maWxsIiwNCiAgZ2xvYmFsaXphOiAiYmktZ2VvLWZpbGwiLA0KICB0ZWNub2Nhc2E6ICJiaS1zaG9wIiwNCiAgcmVtYXg6ICJiaS1zdGFyLWZpbGwiLA0KICBtaWxhbnVuY2lvczogImJpLW1lZ2FwaG9uZS1maWxsIiwNCiAgbnVyb2E6ICJiaS1sYXllcnMtZmlsbCIsDQogIHNwYWluaG91c2VzOiAiYmktaG91c2VzLWZpbGwiLA0KICBob2xwcm9wOiAiYmkta2V5LWZpbGwiLA0KICB5YWVuY29udHJlOiAiYmktcGluLW1hcC1maWxsIiwNCiAgY2FzYXNhcG86ICJiaS1idWlsZGluZy1maWxsIiwNCiAgZW5nZWx2b2xrZXJzOiAiYmktZ2VtIiwNCiAgImVyYS1zcGFpbiI6ICJiaS1hd2FyZC1maWxsIiwNCiAgdmliYm86ICJiaS1jaGF0LXNxdWFyZS1kb3RzLWZpbGwiLA0KICBpbm1vYmlsaWFyaWE6ICJiaS1zaWduLXR1cm4tcmlnaHQtZmlsbCINCn07DQoNCmZ1bmN0aW9uIGdldEljb24oc2x1Zykgew0KICByZXR1cm4gSUNPTl9NQVBbc2x1Z10gfHwgImJpLXBsdWctZmlsbCI7DQp9DQoNCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8gU1NFIOKAlCBMb2dzIGVuIHRpZW1wbyByZWFsDQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmxldCBzc2VTb3VyY2UgPSBudWxsOw0KbGV0IGxvZ3NWaXNpYmxlID0gZmFsc2U7DQpsZXQgbG9nQ291bnQgPSAwOw0KDQpjb25zdCBMRVZFTF9TVFlMRSA9IHsNCiAgaW5mbzogICAgeyBjb2xvcjogIiM4YmI5ZmUiLCBpY29uOiAiYmktaW5mby1jaXJjbGUtZmlsbCIgfSwNCiAgc3VjY2VzczogeyBjb2xvcjogIiM1NmQzNjQiLCBpY29uOiAiYmktY2hlY2stY2lyY2xlLWZpbGwiIH0sDQogIHdhcm46ICAgIHsgY29sb3I6ICIjZTNiMzQxIiwgaWNvbjogImJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWZpbGwiIH0sDQogIGVycm9yOiAgIHsgY29sb3I6ICIjZjg1MTQ5IiwgaWNvbjogImJpLXgtY2lyY2xlLWZpbGwiIH0sDQogIGRlYnVnOiAgIHsgY29sb3I6ICIjOGQ5NmEwIiwgaWNvbjogImJpLWJ1Zy1maWxsIiB9LA0KfTsNCg0KZnVuY3Rpb24gaW5pdFNTRSgpIHsNCiAgaWYgKHNzZVNvdXJjZSkgcmV0dXJuOw0KICBzc2VTb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoIi9hcGkvc2NyYXBlci9sb2dzL3N0cmVhbSIpOw0KDQogIHNzZVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJsb2ciLCAoZSkgPT4gew0KICAgIGNvbnN0IGV2ID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGFwcGVuZExvZyhldik7DQogIH0pOw0KDQogIHNzZVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsIChlKSA9PiB7DQogICAgY29uc3QgZXYgPSBKU09OLnBhcnNlKGUuZGF0YSk7DQogICAgaGFuZGxlUHJvZ3Jlc3MoZXYpOw0KICB9KTsNCg0KICBzc2VTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcigic3RhdHVzIiwgKGUpID0+IHsNCiAgICBjb25zdCBldiA9IEpTT04ucGFyc2UoZS5kYXRhKTsNCiAgICB1cGRhdGVTdGF0dXNEb3QoZXYucnVubmluZywgZXYubW9kZSk7CiAgICBpZiAoZXYucnVubmluZykgc2hvd0xvZ1BhbmVsKCk7DQogIH0pOw0KDQogIHNzZVNvdXJjZS5vbmVycm9yID0gKCkgPT4gew0KICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgaWYgKHNzZVNvdXJjZSkgeyBzc2VTb3VyY2UuY2xvc2UoKTsgc3NlU291cmNlID0gbnVsbDsgfQ0KICAgICAgaW5pdFNTRSgpOw0KICAgIH0sIDUwMDApOw0KICB9Ow0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVTdGF0dXNEb3QocnVubmluZywgbW9kZSA9IHJ1bm5pbmcgPyAibWFudWFsIiA6ICJpZGxlIikgewogIGNvbnN0IGRvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dTdGF0dXNEb3QiKTsKICBjb25zdCBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dSdW5Nb2RlIik7CiAgaWYgKCFkb3QpIHJldHVybjsKICBpZiAocnVubmluZykgewogICAgZG90LnN0eWxlLmJhY2tncm91bmQgPSAiIzU2ZDM2NCI7DQogICAgZG90LnN0eWxlLmJveFNoYWRvdyA9ICIwIDAgNnB4ICM1NmQzNjQiOw0KICB9IGVsc2UgewogICAgZG90LnN0eWxlLmJhY2tncm91bmQgPSAiIzZjNzU3ZCI7DQogICAgZG90LnN0eWxlLmJveFNoYWRvdyA9ICJub25lIjsNCiAgfQogIGNvbnN0IGxhYmVsID0gbW9kZSA9PT0gInNjaGVkdWxlZCIgPyAiUHJvZ3JhbWFkbyIgOiBtb2RlID09PSAibWFudWFsIiA/ICJNYW51YWwiIDogIkluYWN0aXZvIjsKICBkb3QudGl0bGUgPSBgRXN0YWRvOiAke2xhYmVsfWA7CiAgaWYgKGJhZGdlKSB7CiAgICBiYWRnZS50ZXh0Q29udGVudCA9IGxhYmVsOwogICAgYmFkZ2UuY2xhc3NOYW1lID0gYGJhZGdlICR7cnVubmluZyA/ICJiZy1zdWNjZXNzIiA6ICJiZy1zZWNvbmRhcnkifWA7CiAgfQp9DQoNCmZ1bmN0aW9uIGFwcGVuZExvZyhldikgew0KICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc0NvbnRhaW5lciIpOw0KICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOw0KICBjb25zdCBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzUGxhY2Vob2xkZXIiKTsNCiAgaWYgKHBsYWNlaG9sZGVyKSBwbGFjZWhvbGRlci5yZW1vdmUoKTsNCg0KICBjb25zdCBzdHlsZSA9IExFVkVMX1NUWUxFW2V2LmxldmVsXSB8fCBMRVZFTF9TVFlMRS5pbmZvOw0KICBjb25zdCB0cyA9IG5ldyBEYXRlKGV2LnRzKS50b0xvY2FsZVRpbWVTdHJpbmcoImVzLUVTIiwgeyBob3VyMTI6IGZhbHNlIH0pOw0KICBjb25zdCBwb3J0YWwgPSBldi5wb3J0YWwgPyBgPHNwYW4gc3R5bGU9ImNvbG9yOiNlM2IzNDE7bWFyZ2luLXJpZ2h0OjRweCI+WyR7ZXYucG9ydGFsfV08L3NwYW4+YCA6ICIiOw0KICBjb25zdCBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogIGxpbmUuc3R5bGUuY3NzVGV4dCA9ICJtYXJnaW4tYm90dG9tOjJweDtsaW5lLWhlaWdodDoxLjU7d29yZC1icmVhazpicmVhay13b3JkIjsNCiAgbGluZS5pbm5lckhUTUwgPSBgPHNwYW4gc3R5bGU9ImNvbG9yOiM1NTU7dXNlci1zZWxlY3Q6bm9uZSI+JHt0c30gPC9zcGFuPiR7cG9ydGFsfTxpIGNsYXNzPSJiaSAke3N0eWxlLmljb259IiBzdHlsZT0iY29sb3I6JHtzdHlsZS5jb2xvcn07bWFyZ2luLXJpZ2h0OjRweDtmb250LXNpemU6LjdyZW0iPjwvaT48c3BhbiBzdHlsZT0iY29sb3I6JHtzdHlsZS5jb2xvcn0iPiR7ZXNjSHRtbChldi5tc2cpfTwvc3Bhbj5gOw0KICBjb250YWluZXIuYXBwZW5kQ2hpbGQobGluZSk7DQogIGxvZ0NvdW50Kys7DQogIC8vIE1hbnRlbmVyIG3DoXhpbW8gNDAwIGzDrW5lYXMgdmlzaWJsZXMNCiAgd2hpbGUgKGNvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGggPiA0MDApIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjb250YWluZXIuZmlyc3RDaGlsZCk7DQogIC8vIEF1dG8tc2Nyb2xsIHNpIGVzdGFiYSBhbCBmaW5hbA0KICBpZiAoY29udGFpbmVyLnNjcm9sbFRvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQgPj0gY29udGFpbmVyLnNjcm9sbEhlaWdodCAtIDQwKSB7DQogICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7DQogIH0NCn0NCg0KZnVuY3Rpb24gaGFuZGxlUHJvZ3Jlc3MoZXYpIHsNCiAgaWYgKGV2LnBoYXNlID09PSAic3RhcnQiKSB7DQogICAgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nUG9ydGFsQmFkZ2UiKTsNCiAgICBpZiAoYmFkZ2UpIHsgYmFkZ2UudGV4dENvbnRlbnQgPSBldi5wb3J0YWw7IGJhZGdlLnN0eWxlLmRpc3BsYXkgPSAiIjsgfQ0KICAgIHNob3dMb2dQYW5lbCgpOw0KICB9IGVsc2UgaWYgKGV2LnBoYXNlID09PSAiZG9uZSIgfHwgZXYucGhhc2UgPT09ICJlcnJvciIpIHsNCiAgICBzZXRUaW1lb3V0KGxvYWRQb3J0YWxzLCAzMDAwKTsgLy8gcmVmcmVzY2FyIGNvbnRhZG9yZXMgdHJhcyAzcw0KICB9DQp9DQoNCmZ1bmN0aW9uIHNob3dMb2dQYW5lbCgpIHsNCiAgY29uc3QgY2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dzQ2FyZCIpOw0KICBpZiAoY2FyZCkgeyBjYXJkLnN0eWxlLmRpc3BsYXkgPSAiIjsgbG9nc1Zpc2libGUgPSB0cnVlOyB9DQp9DQoNCmZ1bmN0aW9uIHRvZ2dsZUxvZ1BhbmVsKCkgew0KICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NCb2R5Iik7DQogIGNvbnN0IGljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nc1RvZ2dsZUljb24iKTsNCiAgaWYgKCFib2R5KSByZXR1cm47DQogIGNvbnN0IGNvbGxhcHNlZCA9IGJvZHkuc3R5bGUuZGlzcGxheSA9PT0gIm5vbmUiOw0KICBib2R5LnN0eWxlLmRpc3BsYXkgPSBjb2xsYXBzZWQgPyAiIiA6ICJub25lIjsNCiAgaWNvbi5jbGFzc05hbWUgPSBjb2xsYXBzZWQgPyAiYmkgYmktZGFzaC1sZyIgOiAiYmkgYmktY2hldnJvbi11cCI7DQp9DQoNCmZ1bmN0aW9uIGNsZWFyTG9ncygpIHsNCiAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ3NDb250YWluZXIiKTsNCiAgaWYgKGNvbnRhaW5lcikgew0KICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0idGV4dC1tdXRlZCIgaWQ9ImxvZ3NQbGFjZWhvbGRlciI+TG9ncyBsaW1waWFkb3M8L2Rpdj4nOw0KICB9DQogIGxvZ0NvdW50ID0gMDsNCn0NCg0KZnVuY3Rpb24gZXNjSHRtbChzdHIpIHsNCiAgcmV0dXJuIFN0cmluZyhzdHIpDQogICAgLnJlcGxhY2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpLnJlcGxhY2UoLz4vZywgIiZndDsiKQ0KICAgIC5yZXBsYWNlKC8iL2csICImcXVvdDsiKS5yZXBsYWNlKC8nL2csICImIzAzOTsiKTsNCn0NCg0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyBQb3J0YWxlcw0KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQphc3luYyBmdW5jdGlvbiBsb2FkUG9ydGFscygpIHsNCiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goIi9hcGkvcG9ydGFscyIpOw0KICBjb25zdCBwb3J0YWxzID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgY29uc3QgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9ydGFsc0JvZHkiKTsNCiAgbGV0IGFjdGl2ZSA9IDA7DQogIGxldCB3aXRoRGF0YSA9IDA7DQoNCiAgaWYgKCFwb3J0YWxzLmxlbmd0aCkgew0KICAgIHRib2R5LmlubmVySFRNTCA9IGA8dHI+PHRkIGNvbHNwYW49IjUiIGNsYXNzPSJ0ZXh0LWNlbnRlciBweS00IHRleHQtbXV0ZWQiPk5vIGhheSBwb3J0YWxlcyBjb25maWd1cmFkb3M8L3RkPjwvdHI+YDsNCiAgICByZXR1cm47DQogIH0NCg0KICB0Ym9keS5pbm5lckhUTUwgPSBwb3J0YWxzLm1hcChwID0+IHsNCiAgICBpZiAocC5hY3RpdmUpIGFjdGl2ZSsrOw0KICAgIGNvbnN0IGljb24gPSBnZXRJY29uKHAuc2x1Zyk7DQogICAgY29uc3QgY291bnQgPSBwLnByb3BlcnR5X2NvdW50IHx8IDA7DQogICAgaWYgKGNvdW50ID4gMCkgd2l0aERhdGErKzsNCiAgICBjb25zdCBiYWRnZSA9IHAuYWN0aXZlDQogICAgICA/IGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+QWN0aXZvPC9zcGFuPmANCiAgICAgIDogYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zZWNvbmRhcnkiPkluYWN0aXZvPC9zcGFuPmA7DQogICAgY29uc3QgdG9nZ2xlVGl0bGUgPSBwLmFjdGl2ZSA/ICJEZXNhY3RpdmFyIiA6ICJBY3RpdmFyIjsNCiAgICBjb25zdCB0b2dnbGVDbGFzcyA9IHAuYWN0aXZlID8gImJ0bi1vdXRsaW5lLXdhcm5pbmciIDogImJ0bi1vdXRsaW5lLXN1Y2Nlc3MiOw0KICAgIGNvbnN0IHRvZ2dsZUljb24gPSBwLmFjdGl2ZSA/ICJiaS1wYXVzZS1maWxsIiA6ICJiaS1wbGF5LWZpbGwiOw0KICAgIGNvbnN0IGNvdW50QmFkZ2UgPSBjb3VudCA+IDANCiAgICAgID8gYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1wcmltYXJ5IHJvdW5kZWQtcGlsbCI+JHtjb3VudH08L3NwYW4+YA0KICAgICAgOiBgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPuKAlDwvc3Bhbj5gOw0KICAgIHJldHVybiBgPHRyIGlkPSJyb3ctJHtwLmlkfSI+DQogICAgICA8dGQgY2xhc3M9InBzLTMiPg0KICAgICAgICA8aSBjbGFzcz0iYmkgJHtpY29ufSBtZS0yIHRleHQtcHJpbWFyeSI+PC9pPg0KICAgICAgICA8c3Ryb25nPiR7cC5uYW1lfTwvc3Ryb25nPg0KICAgICAgPC90ZD4NCiAgICAgIDx0ZD48Y29kZSBjbGFzcz0idGV4dC1tdXRlZCI+JHtwLnNjcmFwZXJfY2xhc3N9PC9jb2RlPjwvdGQ+DQogICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4ke2NvdW50QmFkZ2V9PC90ZD4NCiAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiIGlkPSJiYWRnZS0ke3AuaWR9Ij4ke2JhZGdlfTwvdGQ+DQogICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4NCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuICR7dG9nZ2xlQ2xhc3N9IGJ0bi1zbSByb3VuZGVkLTMgbWUtMSIgdGl0bGU9IiR7dG9nZ2xlVGl0bGV9IiBvbmNsaWNrPSJ0b2dnbGVQb3J0YWwoJHtwLmlkfSkiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSAke3RvZ2dsZUljb259Ij48L2k+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAke3AuYWN0aXZlID8gYDxidXR0b24gY2xhc3M9ImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1zbSByb3VuZGVkLTMgbWUtMSIgdGl0bGU9IkVzY2FuZWFyIGVzdGUgcG9ydGFsIGFob3JhIiBpZD0ic2Nhbi0ke3Auc2x1Z30iIG9uY2xpY2s9InNjcmFwZVBvcnRhbCgnJHtwLnNsdWd9JywgdGhpcykiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS1wbGF5LWNpcmNsZS1maWxsIj48L2k+DQogICAgICAgIDwvYnV0dG9uPmAgOiAnJ30NCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLWRhbmdlciBidG4tc20gcm91bmRlZC0zIiB0aXRsZT0iRWxpbWluYXIiIG9uY2xpY2s9ImRlbGV0ZVBvcnRhbCgke3AuaWR9LCAnJHtwLm5hbWV9JykiPg0KICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS10cmFzaDMtZmlsbCI+PC9pPg0KICAgICAgICA8L2J1dHRvbj4NCiAgICAgIDwvdGQ+DQogICAgPC90cj5gOw0KICB9KS5qb2luKCIiKTsNCg0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlQ291bnQiKS50ZXh0Q29udGVudCA9IGFjdGl2ZTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhdGFDb3VudCIpLnRleHRDb250ZW50ID0gd2l0aERhdGE7DQp9DQoNCmZ1bmN0aW9uIGhlYWx0aEJhZGdlKG1zZykgewogIGNvbnN0IG0gPSAobXNnIHx8ICIiKS50b0xvd2VyQ2FzZSgpOw0KICBpZiAobS5pbmNsdWRlcygib2siKSkgcmV0dXJuIGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2Vzcy1zdWJ0bGUgdGV4dC1zdWNjZXNzIGJvcmRlciBib3JkZXItc3VjY2Vzcy1zdWJ0bGUiPiR7bXNnfTwvc3Bhbj5gOw0KICBpZiAobS5pbmNsdWRlcygiaW5hY3Rpdm8iKSkgcmV0dXJuIGA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc2Vjb25kYXJ5LXN1YnRsZSB0ZXh0LXNlY29uZGFyeSBib3JkZXIgYm9yZGVyLXNlY29uZGFyeS1zdWJ0bGUiPiR7bXNnfTwvc3Bhbj5gOw0KICByZXR1cm4gYDxzcGFuIGNsYXNzPSJiYWRnZSBiZy13YXJuaW5nLXN1YnRsZSB0ZXh0LXdhcm5pbmcgYm9yZGVyIGJvcmRlci13YXJuaW5nLXN1YnRsZSI+JHttc2d9PC9zcGFuPmA7DQp9CgpmdW5jdGlvbiBydW5TdW1tYXJ5KHJ1bikgewogIGlmICghcnVuKSByZXR1cm4gJzxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj5TaW4gZWplY3VjacOzbiByZWdpc3RyYWRhPC9zcGFuPic7CiAgY29uc3Qgd2hlbiA9IG5ldyBEYXRlKHJ1bi5maW5pc2hlZF9hdCB8fCBydW4uc3RhcnRlZF9hdCkudG9Mb2NhbGVTdHJpbmcoImVzLUVTIiwgeyBkYXRlU3R5bGU6ICJzaG9ydCIsIHRpbWVTdHlsZTogInNob3J0IiB9KTsKICBjb25zdCBzY29wZSA9IE51bWJlcihydW4ucGFydGlhbF9jb3ZlcmFnZSkgPyAiIMK3IGxvdGUgcGFyY2lhbCIgOiAiIjsKICByZXR1cm4gYDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIiB0aXRsZT0iJHtlc2NIdG1sKHJ1bi5lcnJvciB8fCAnJyl9Ij4ke3doZW59IMK3ICR7cnVuLnRvdGFsX2ZvdW5kfSBvYnRlbmlkYXMgwrcgJHtydW4ubmV3X3NhdmVkfSBudWV2YXMke3Njb3BlfTwvc3Bhbj5gOwp9Cg0KYXN5bmMgZnVuY3Rpb24gbG9hZFNjcmFwZXJIZWFsdGgoKSB7DQogIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhbHRoQm9keSIpOw0KICBib2R5LmlubmVySFRNTCA9IGA8dHI+PHRkIGNvbHNwYW49IjQiIGNsYXNzPSJ0ZXh0LWNlbnRlciB0ZXh0LW11dGVkIHB5LTMiPkNhcmdhbmRvIHNhbHVkLi4uPC90ZD48L3RyPmA7DQogIHRyeSB7DQogICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goIi9hcGkvcG9ydGFscy9oZWFsdGgiKTsNCiAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgICBpZiAoIWpzb24uc3VjY2VzcyB8fCAhanNvbi5kYXRhPy5sZW5ndGgpIHsNCiAgICAgIGJvZHkuaW5uZXJIVE1MID0gYDx0cj48dGQgY29sc3Bhbj0iNCIgY2xhc3M9InRleHQtY2VudGVyIHRleHQtbXV0ZWQgcHktMyI+U2luIGRhdG9zPC90ZD48L3RyPmA7DQogICAgICByZXR1cm47DQogICAgfQ0KICAgIGJvZHkuaW5uZXJIVE1MID0ganNvbi5kYXRhLm1hcChyID0+IHsNCiAgICAgIGNvbnN0IHNhbGUgPSBgPGNvZGU+JHtyLnNhbGUudG90YWx9IC8gJHtyLnNhbGUubGFzdDI0aH08L2NvZGU+PGJyPiR7cnVuU3VtbWFyeShyLnNhbGUubGFzdF9ydW4pfWA7CiAgICAgIGNvbnN0IHJlbnQgPSBgPGNvZGU+JHtyLnJlbnQudG90YWx9IC8gJHtyLnJlbnQubGFzdDI0aH08L2NvZGU+PGJyPiR7cnVuU3VtbWFyeShyLnJlbnQubGFzdF9ydW4pfWA7CiAgICAgIGNvbnN0IGRpYWcgPSBgDQogICAgICAgIDxkaXYgY2xhc3M9InNtYWxsIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMSI+DQogICAgICAgICAgJHtoZWFsdGhCYWRnZSgiVmVudGE6ICIgKyByLnNhbGUuZGlhZ25vc2lzKX0NCiAgICAgICAgICAke2hlYWx0aEJhZGdlKCJBbHF1aWxlcjogIiArIHIucmVudC5kaWFnbm9zaXMpfQ0KICAgICAgICA8L2Rpdj5gOw0KICAgICAgcmV0dXJuIGA8dHI+DQogICAgICAgIDx0ZCBjbGFzcz0icHMtMyI+PHN0cm9uZz4ke3IucG9ydGFsfTwvc3Ryb25nPjwvdGQ+DQogICAgICAgIDx0ZD4ke3NhbGV9PC90ZD4KICAgICAgICA8dGQ+JHtyZW50fTwvdGQ+CiAgICAgICAgPHRkPiR7ZGlhZ308L3RkPg0KICAgICAgPC90cj5gOw0KICAgIH0pLmpvaW4oIiIpOw0KICB9IGNhdGNoIChlKSB7DQogICAgYm9keS5pbm5lckhUTUwgPSBgPHRyPjx0ZCBjb2xzcGFuPSI0IiBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC1kYW5nZXIgcHktMyI+RXJyb3IgY2FyZ2FuZG8gc2FsdWQ8L3RkPjwvdHI+YDsNCiAgfQ0KfQ0KDQphc3luYyBmdW5jdGlvbiB0b2dnbGVQb3J0YWwoaWQpIHsNCiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYC9hcGkvcG9ydGFscy8ke2lkfS90b2dnbGVgLCB7IG1ldGhvZDogIlBBVENIIiB9KTsNCiAgY29uc3QgZCA9IGF3YWl0IHJlcy5qc29uKCk7DQogIGlmIChkLnN1Y2Nlc3MpIGxvYWRQb3J0YWxzKCk7DQp9DQoNCmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZVBvcnRhbChpZCwgbmFtZSkgew0KICBpZiAoIWNvbmZpcm0oYMK/RWxpbWluYXIgZWwgcG9ydGFsICIke25hbWV9Ij8gRXN0YSBhY2Npw7NuIG5vIHNlIHB1ZWRlIGRlc2hhY2VyLmApKSByZXR1cm47DQogIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAvYXBpL3BvcnRhbHMvJHtpZH1gLCB7IG1ldGhvZDogIkRFTEVURSIgfSk7DQogIGNvbnN0IGQgPSBhd2FpdCByZXMuanNvbigpOw0KICBpZiAoZC5zdWNjZXNzKSB7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYHJvdy0ke2lkfWApPy5yZW1vdmUoKTsNCiAgICBsb2FkUG9ydGFscygpOw0KICB9IGVsc2Ugew0KICAgIGFsZXJ0KCJFcnJvciBhbCBlbGltaW5hciBlbCBwb3J0YWwiKTsNCiAgfQ0KfQ0KDQphc3luYyBmdW5jdGlvbiBhZGRQb3J0YWwoZXZlbnQpIHsNCiAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCiAgY29uc3QgbmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwTmFtZSIpLnZhbHVlLnRyaW0oKTsNCiAgY29uc3Qgc2NyYXBlcl9jbGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwQ2xhc3MiKS52YWx1ZS50cmltKCk7DQogIGNvbnN0IGFjdGl2ZSA9IHBhcnNlSW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwQWN0aXZlIikudmFsdWUpOw0KICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgiL2FwaS9wb3J0YWxzIiwgew0KICAgIG1ldGhvZDogIlBPU1QiLA0KICAgIGhlYWRlcnM6IHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9LA0KICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgbmFtZSwgc2NyYXBlcl9jbGFzcywgYWN0aXZlIH0pDQogIH0pOw0KICBjb25zdCBkID0gYXdhaXQgcmVzLmpzb24oKTsNCiAgaWYgKGQuc3VjY2Vzcykgew0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhZGRQb3J0YWxGb3JtIikucmVzZXQoKTsNCiAgICBsb2FkUG9ydGFscygpOw0KICB9IGVsc2Ugew0KICAgIGFsZXJ0KCJFcnJvcjogIiArIChkLmVycm9yIHx8ICJkZXNjb25vY2lkbyIpKTsNCiAgfQ0KfQ0KDQphc3luYyBmdW5jdGlvbiBzY3JhcGVQb3J0YWwoc2x1ZywgYnRuKSB7DQogIGNvbnN0IG9wSW4gPSBwcm9tcHQoJ09wZXJhY2nDs24gcGFyYSBlc2NhbmVhciBlc3RlIHBvcnRhbDogInNhbGUiICh2ZW50YSkgbyAicmVudCIgKGFscXVpbGVyKScsICJzYWxlIik7DQogIGlmICghb3BJbikgcmV0dXJuOw0KICBjb25zdCBvcCA9IFN0cmluZyhvcEluKS50cmltKCkudG9Mb3dlckNhc2UoKTsNCiAgaWYgKCFbInNhbGUiLCAicmVudCJdLmluY2x1ZGVzKG9wKSkgew0KICAgIGFsZXJ0KCdPcGVyYWNpw7NuIG5vIHbDoWxpZGEuIFVzYSAic2FsZSIgbyAicmVudCIuJyk7DQogICAgcmV0dXJuOw0KICB9DQogIGNvbnN0IG9yaWcgPSBidG4uaW5uZXJIVE1MOw0KICBidG4uZGlzYWJsZWQgPSB0cnVlOw0KICBidG4uaW5uZXJIVE1MID0gJzxzcGFuIGNsYXNzPSJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSI+PC9zcGFuPic7DQoNCiAgLy8gTW9zdHJhciBwYW5lbCBkZSBsb2dzIHkgYWJyaXIgY29uZXhpw7NuIFNTRQ0KICBzaG93TG9nUGFuZWwoKTsNCiAgY2xlYXJMb2dzKCk7DQogIGluaXRTU0UoKTsNCg0KICB0cnkgew0KICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAvYXBpL3NjcmFwZXIvc2NyYXBlLyR7c2x1Z30/b3A9JHtvcH1gLCB7IG1ldGhvZDogJ1BPU1QnIH0pOw0KICAgIGNvbnN0IGQgPSBhd2FpdCByZXMuanNvbigpOw0KICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDIgfHwgZC5zdWNjZXNzKSB7DQogICAgICBidG4uaW5uZXJIVE1MID0gJzxpIGNsYXNzPSJiaSBiaS1ob3VyZ2xhc3Mtc3BsaXQgdGV4dC1wcmltYXJ5Ij48L2k+JzsNCiAgICAgIHVwZGF0ZVN0YXR1c0RvdCh0cnVlKTsNCiAgICAgIC8vIEVsIHBhbmVsIFNTRSBtb3N0cmFyw6EgZWwgcHJvZ3Jlc287IHJlc3RhdXJhciBib3TDs24gY3VhbmRvIGVsIHNjcmFwaW5nIHRlcm1pbmUNCiAgICAgIGNvbnN0IHJlc3RvcmVCdG4gPSAoKSA9PiB7DQogICAgICAgIGJ0bi5pbm5lckhUTUwgPSBvcmlnOw0KICAgICAgICBidG4uZGlzYWJsZWQgPSBmYWxzZTsNCiAgICAgIH07DQogICAgICAvLyBQb2xsaW5nIGRlIGVzdGFkbyBwYXJhIHJlc3RhdXJhciBlbCBib3TDs24NCiAgICAgIGNvbnN0IHBvbGwgPSBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgY29uc3Qgc3QgPSBhd2FpdCBmZXRjaCgiL2FwaS9zY3JhcGVyL3N0YXR1cyIpOw0KICAgICAgICAgIGNvbnN0IHMgPSBhd2FpdCBzdC5qc29uKCk7DQogICAgICAgICAgaWYgKCFzLnJ1bm5pbmcpIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChwb2xsKTsNCiAgICAgICAgICAgIHJlc3RvcmVCdG4oKTsNCiAgICAgICAgICAgIHVwZGF0ZVN0YXR1c0RvdChmYWxzZSk7DQogICAgICAgICAgICBsb2FkUG9ydGFscygpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSBjYXRjaCB7IGNsZWFySW50ZXJ2YWwocG9sbCk7IHJlc3RvcmVCdG4oKTsgfQ0KICAgICAgfSwgNTAwMCk7DQogICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSA0MDkpIHsNCiAgICAgIGJ0bi5pbm5lckhUTUwgPSBvcmlnOyBidG4uZGlzYWJsZWQgPSBmYWxzZTsNCiAgICAgIGFsZXJ0KCfij7MgWWEgaGF5IHVuIGVzY2FuZW8gZW4gY3Vyc28uIEVzcGVyYSBhIHF1ZSB0ZXJtaW5lLicpOw0KICAgICAgc2hvd0xvZ1BhbmVsKCk7DQogICAgfSBlbHNlIHsNCiAgICAgIGJ0bi5pbm5lckhUTUwgPSBvcmlnOyBidG4uZGlzYWJsZWQgPSBmYWxzZTsNCiAgICAgIGFsZXJ0KCdFcnJvcjogJyArIChkLmVycm9yIHx8ICdkZXNjb25vY2lkbycpKTsNCiAgICB9DQogIH0gY2F0Y2ggKGUpIHsNCiAgICBidG4uaW5uZXJIVE1MID0gb3JpZzsgYnRuLmRpc2FibGVkID0gZmFsc2U7DQogICAgYWxlcnQoJ0Vycm9yIGRlIHJlZCBhbCBpbmljaWFyIGVsIGVzY2FuZW8nKTsNCiAgfQ0KfQ0KDQovLyBJbmljaWFsaXphcg0KbG9hZFBvcnRhbHMoKTsNCmxvYWRTY3JhcGVySGVhbHRoKCk7DQppbml0U1NFKCk7DQo8L3NjcmlwdD4NCg0KPCEtLSBCb3R0b20gVGFiIEJhciAtLT4NCjxuYXYgY2xhc3M9ImJvdHRvbS10YWItYmFyIGQtbWQtbm9uZSIgcm9sZT0ibmF2aWdhdGlvbiIgYXJpYS1sYWJlbD0iTmF2ZWdhY2nDs24gcHJpbmNpcGFsIj4NCiAgPGEgaHJlZj0iL2Rhc2hib2FyZCIgICAgICAgICAgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQiPjxpIGNsYXNzPSJiaSBiaS1ob3VzZS1maWxsIj48L2k+PHNwYW4+SW5pY2lvPC9zcGFuPjwvYT4NCiAgPGEgaHJlZj0iL2Rhc2hib2FyZC9tYXAiICAgICAgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQvbWFwIj48aSBjbGFzcz0iYmkgYmktbWFwLWZpbGwiPjwvaT48c3Bhbj5NYXBhPC9zcGFuPjwvYT4NCiAgPGEgaHJlZj0iL2Rhc2hib2FyZC9maWx0ZXJzIiAgY2xhc3M9InRhYi1pdGVtIiBkYXRhLXBhdGg9Ii9kYXNoYm9hcmQvZmlsdGVycyI+PGkgY2xhc3M9ImJpIGJpLWZ1bm5lbC1maWxsIj48L2k+PHNwYW4+RmlsdHJvczwvc3Bhbj48L2E+DQogIDxhIGhyZWY9Ii9kYXNoYm9hcmQvYW5hbHl0aWNzIiBjbGFzcz0idGFiLWl0ZW0iIGRhdGEtcGF0aD0iL2Rhc2hib2FyZC9hbmFseXRpY3MiPjxpIGNsYXNzPSJiaSBiaS1iYXItY2hhcnQtZmlsbCI+PC9pPjxzcGFuPlN0YXRzPC9zcGFuPjwvYT4NCiAgPGJ1dHRvbiBjbGFzcz0idGFiLWl0ZW0gdGFiLXNjYW4iIG9uY2xpY2s9InNjcmFwZU5vdygpIiBhcmlhLWxhYmVsPSJFc2NhbmVhciBwcm9waWVkYWRlcyI+PGkgY2xhc3M9ImJpIGJpLWFycm93LXJlcGVhdCI+PC9pPjxzcGFuPkVzY2FuZWFyPC9zcGFuPjwvYnV0dG9uPg0KPC9uYXY+DQo8c2NyaXB0Pg0KaWYgKCJzZXJ2aWNlV29ya2VyIiBpbiBuYXZpZ2F0b3IpIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvc3cuanMiLCB7IHNjb3BlOiAiLyIgfSk7DQphc3luYyBmdW5jdGlvbiBzY3JhcGVOb3coKSB7DQogIGNvbnN0IGJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50YWItc2NhbiIpOw0KICBpZiAoYnRuKSB7IGJ0bi5kaXNhYmxlZCA9IHRydWU7IH0NCiAgdHJ5IHsNCiAgICBjb25zdCByID0gYXdhaXQgZmV0Y2goIi9hcGkvc2NyYXBlci9zY3JhcGUiLCB7IG1ldGhvZDogIlBPU1QiIH0pOw0KICAgIGNvbnN0IGQgPSBhd2FpdCByLmpzb24oKTsNCiAgICBpZiAoci5zdGF0dXMgPT09IDIwMiB8fCBkLnN1Y2Nlc3MpIHsgaWYgKGJ0bikgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iYmkgYmktY2hlY2stY2lyY2xlIj48L2k+PHNwYW4+4pyTPC9zcGFuPic7IH0NCiAgICBlbHNlIGFsZXJ0KCJFcnJvcjogIiArIChkLmVycm9yIHx8ICJkZXNjb25vY2lkbyIpKTsNCiAgfSBjYXRjaChlKSB7IGFsZXJ0KCJFcnJvciBkZSByZWQiKTsgfQ0KICBpZiAoYnRuKSB7IHNldFRpbWVvdXQoKCkgPT4geyBidG4uZGlzYWJsZWQgPSBmYWxzZTsgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iYmkgYmktYXJyb3ctcmVwZWF0Ij48L2k+PHNwYW4+RXNjYW5lYXI8L3NwYW4+JzsgfSwgMzAwMCk7IH0NCn0NCjwvc2NyaXB0Pg0KPC9ib2R5Pg0KPC9odG1sPg0K","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\views\\login.ejs","beforeExisted":true,"beforeHash":"60798ef2e1368084afd88daf90c7a70c2c0024a6d5fc4330c5fedecc3b2c514f","beforeContent":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCB2aWV3cG9ydC1maXQ9Y292ZXIiPgogIDxtZXRhIG5hbWU9Im1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtdGl0bGUiIGNvbnRlbnQ9Ikxsw61yaWFQcm9wcyI+CiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPgogIDxtZXRhIG5hbWU9ImNvbG9yLXNjaGVtZSIgY29udGVudD0ibGlnaHQiPgogIDxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9uZT1ubywgZGF0ZT1ubywgZW1haWw9bm8sIGFkZHJlc3M9bm8iPgogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4KICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi5wbmciPgogIDxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iL2ljb25zL2ljb24uc3ZnIiB0eXBlPSJpbWFnZS9zdmcreG1sIj4KICA8dGl0bGU+TG9naW4gLSBMbGlyaWEgUHJvcGVydGllczwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyI+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcC1pY29uc0AxLjExLjIvZm9udC9ib290c3RyYXAtaWNvbnMubWluLmNzcyI+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY3NzL21haW4uY3NzIj4KICA8c3R5bGU+CiAgICBib2R5IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBkNmVmZCAwJSwgIzBhNThjYSAxMDAlKTsgbWluLWhlaWdodDogMTAwdmg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KICAgIC5sb2dpbi1jYXJkIHsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiAyMHB4OyBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsMCwwLC4zKTsgfQogICAgLmxvZ2luLWhlYWRlciB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwZDZlZmQsICMwYTU4Y2EpOyBjb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMjBweCAyMHB4IDAgMDsgcGFkZGluZzogMnJlbTsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgICAuZm9ybS1jb250cm9sIHsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogLjc1cmVtIDFyZW07IGJvcmRlcjogMS41cHggc29saWQgI2RlZTJlNjsgfQogICAgLmJ0bi1sb2dpbiB7IGJvcmRlci1yYWRpdXM6IDEycHg7IHBhZGRpbmc6IC43NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxLjA1cmVtOyB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0icm93IGp1c3RpZnktY29udGVudC1jZW50ZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtMTEgY29sLXNtLTggY29sLW1kLTUgY29sLWxnLTQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQgbG9naW4tY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktaG91c2UtaGVhcnQtZmlsbCBmcy0xIG1iLTIgZC1ibG9jayI+PC9pPgogICAgICAgICAgICA8aDQgY2xhc3M9Im1iLTAgZnctYm9sZCI+TGxpcmlhIFByb3BlcnRpZXM8L2g0PgogICAgICAgICAgICA8c21hbGwgY2xhc3M9Im9wYWNpdHktNzUiPlBhbmVsIGRlIHByb3BpZWRhZGVzIGVuIHZlbnRhPC9zbWFsbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtNCI+CiAgICAgICAgICAgIDwlIGlmIChlcnJvcikgeyAlPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciByb3VuZGVkLTMiIHJvbGU9ImFsZXJ0Ij4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS1leGNsYW1hdGlvbi1jaXJjbGUgbWUtMiI+PC9pPjwlPSBlcnJvciAlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8JSB9ICU+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iL2xvZ2luIiBtZXRob2Q9IlBPU1QiIGF1dG9jb21wbGV0ZT0ib24iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGZ3LXNlbWlib2xkIj5Vc3VhcmlvPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlucHV0LWdyb3VwLXRleHQgcm91bmRlZC1zdGFydC0zIGJnLWxpZ2h0IGJvcmRlci1lbmQtMCI+PGkgY2xhc3M9ImJpIGJpLXBlcnNvbi1maWxsIHRleHQtcHJpbWFyeSI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBjbGFzcz0iZm9ybS1jb250cm9sIGJvcmRlci1zdGFydC0wIHJvdW5kZWQtZW5kLTMiIHBsYWNlaG9sZGVyPSJHZW9yZ2UiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgZnctc2VtaWJvbGQiPkNvbnRyYXNlw7FhPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlucHV0LWdyb3VwLXRleHQgcm91bmRlZC1zdGFydC0zIGJnLWxpZ2h0IGJvcmRlci1lbmQtMCI+PGkgY2xhc3M9ImJpIGJpLWxvY2stZmlsbCB0ZXh0LXByaW1hcnkiPjwvaT48L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgYm9yZGVyLXN0YXJ0LTAgcm91bmRlZC1lbmQtMyIgcGxhY2Vob2xkZXI9IuKAouKAouKAouKAoiIgcmVxdWlyZWQgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IHctMTAwIGJ0bi1sb2dpbiI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktYm94LWFycm93LWluLXJpZ2h0IG1lLTIiPjwvaT5BY2NlZGVyCiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIG10LTMgc21hbGwgb3BhY2l0eS03NSI+TGxpcmlhICZhbXA7IGFscmVkZWRvcmVzIMK3IFZhbGVuY2lhIMK3IEVzcGHDsWE8L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIj48L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==","afterExisted":true,"afterHash":"27a81d51acb07246d95d83e8240739d7acb9909988cc5e74081f6833b089952f","afterContent":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCB2aWV3cG9ydC1maXQ9Y292ZXIiPgogIDxtZXRhIG5hbWU9Im1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+CiAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtdGl0bGUiIGNvbnRlbnQ9Ikxsw61yaWFQcm9wcyI+CiAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwZDZlZmQiPgogIDxtZXRhIG5hbWU9ImNvbG9yLXNjaGVtZSIgY29udGVudD0ibGlnaHQiPgogIDxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9uZT1ubywgZGF0ZT1ubywgZW1haWw9bm8sIGFkZHJlc3M9bm8iPgogIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIj4KICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvaWNvbnMvYXBwbGUtdG91Y2gtaWNvbi5wbmciPgogIDxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iL2ljb25zL2ljb24uc3ZnIiB0eXBlPSJpbWFnZS9zdmcreG1sIj4KICA8dGl0bGU+TG9naW4gLSBMbGlyaWEgUHJvcGVydGllczwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMi9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyI+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcC1pY29uc0AxLjExLjIvZm9udC9ib290c3RyYXAtaWNvbnMubWluLmNzcyI+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY3NzL21haW4uY3NzIj4KICA8c3R5bGU+CiAgICBib2R5IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBkNmVmZCAwJSwgIzBhNThjYSAxMDAlKTsgbWluLWhlaWdodDogMTAwdmg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KICAgIC5sb2dpbi1jYXJkIHsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiAyMHB4OyBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsMCwwLC4zKTsgfQogICAgLmxvZ2luLWhlYWRlciB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwZDZlZmQsICMwYTU4Y2EpOyBjb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMjBweCAyMHB4IDAgMDsgcGFkZGluZzogMnJlbTsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgICAuZm9ybS1jb250cm9sIHsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogLjc1cmVtIDFyZW07IGJvcmRlcjogMS41cHggc29saWQgI2RlZTJlNjsgfQogICAgLmJ0bi1sb2dpbiB7IGJvcmRlci1yYWRpdXM6IDEycHg7IHBhZGRpbmc6IC43NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxLjA1cmVtOyB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0icm93IGp1c3RpZnktY29udGVudC1jZW50ZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtMTEgY29sLXNtLTggY29sLW1kLTUgY29sLWxnLTQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQgbG9naW4tY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iYmkgYmktaG91c2UtaGVhcnQtZmlsbCBmcy0xIG1iLTIgZC1ibG9jayI+PC9pPgogICAgICAgICAgICA8aDQgY2xhc3M9Im1iLTAgZnctYm9sZCI+TGxpcmlhIFByb3BlcnRpZXM8L2g0PgogICAgICAgICAgICA8c21hbGwgY2xhc3M9Im9wYWNpdHktNzUiPlBhbmVsIGRlIHByb3BpZWRhZGVzIGVuIHZlbnRhPC9zbWFsbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5IHAtNCI+CiAgICAgICAgICAgIDwlIGlmIChlcnJvcikgeyAlPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciByb3VuZGVkLTMiIHJvbGU9ImFsZXJ0Ij4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJiaSBiaS1leGNsYW1hdGlvbi1jaXJjbGUgbWUtMiI+PC9pPjwlPSBlcnJvciAlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8JSB9ICU+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iL2xvZ2luIiBtZXRob2Q9IlBPU1QiIGF1dG9jb21wbGV0ZT0ib24iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGZ3LXNlbWlib2xkIj5Vc3VhcmlvPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlucHV0LWdyb3VwLXRleHQgcm91bmRlZC1zdGFydC0zIGJnLWxpZ2h0IGJvcmRlci1lbmQtMCI+PGkgY2xhc3M9ImJpIGJpLXBlcnNvbi1maWxsIHRleHQtcHJpbWFyeSI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBjbGFzcz0iZm9ybS1jb250cm9sIGJvcmRlci1zdGFydC0wIHJvdW5kZWQtZW5kLTMiIHBsYWNlaG9sZGVyPSJVc3VhcmlvIiByZXF1aXJlZCBhdXRvY29tcGxldGU9InVzZXJuYW1lIj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTQiPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGZ3LXNlbWlib2xkIj5Db250cmFzZcOxYTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbnB1dC1ncm91cC10ZXh0IHJvdW5kZWQtc3RhcnQtMyBiZy1saWdodCBib3JkZXItZW5kLTAiPjxpIGNsYXNzPSJiaSBiaS1sb2NrLWZpbGwgdGV4dC1wcmltYXJ5Ij48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIGJvcmRlci1zdGFydC0wIHJvdW5kZWQtZW5kLTMiIHBsYWNlaG9sZGVyPSLigKLigKLigKLigKIiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSB3LTEwMCBidG4tbG9naW4iPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9ImJpIGJpLWJveC1hcnJvdy1pbi1yaWdodCBtZS0yIj48L2k+QWNjZWRlcgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cCBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC13aGl0ZSBtdC0zIHNtYWxsIG9wYWNpdHktNzUiPkxsaXJpYSAmYW1wOyBhbHJlZGVkb3JlcyDCtyBWYWxlbmNpYSDCtyBFc3Bhw7FhPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9ib290c3RyYXBANS4zLjIvZGlzdC9qcy9ib290c3RyYXAuYnVuZGxlLm1pbi5qcyI+PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\models\\scrapingPortalRunModel.ts","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"f991b8ee064ab7050218c40d5120bc5a699534d6cdbe2e2e3bd2766cdee54669","afterContent":"aW1wb3J0IHsgUmVzdWx0U2V0SGVhZGVyIH0gZnJvbSAibXlzcWwyIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKCmV4cG9ydCB0eXBlIFBvcnRhbFJ1blN0YXR1cyA9ICJydW5uaW5nIiB8ICJzdWNjZXNzIiB8ICJlbXB0eSIgfCAiZXJyb3IiOwoKZXhwb3J0IGNvbnN0IFNjcmFwaW5nUG9ydGFsUnVuTW9kZWwgPSB7CiAgYXN5bmMgc3RhcnQoaW5wdXQ6IHsKICAgIHBvcnRhbDogc3RyaW5nOwogICAgc2NyYXBlckNsYXNzOiBzdHJpbmc7CiAgICBvcGVyYXRpb246ICJzYWxlIiB8ICJyZW50IjsKICAgIHRyaWdnZXJNb2RlOiAibWFudWFsIiB8ICJzY2hlZHVsZWQiOwogICAgem9uZVNjb3BlPzogc3RyaW5nIHwgbnVsbDsKICB9KTogUHJvbWlzZTxudW1iZXI+IHsKICAgIGNvbnN0IFtyZXN1bHRdID0gYXdhaXQgcG9vbC5xdWVyeTxSZXN1bHRTZXRIZWFkZXI+KAogICAgICBgSU5TRVJUIElOVE8gc2NyYXBpbmdfcG9ydGFsX3J1bnMKICAgICAgICAocG9ydGFsLCBzY3JhcGVyX2NsYXNzLCBvcGVyYXRpb25fdHlwZSwgdHJpZ2dlcl9tb2RlLCB6b25lX3Njb3BlLCBzdGF0dXMsIHN0YXJ0ZWRfYXQpCiAgICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sICdydW5uaW5nJywgTk9XKCkpYCwKICAgICAgW2lucHV0LnBvcnRhbCwgaW5wdXQuc2NyYXBlckNsYXNzLCBpbnB1dC5vcGVyYXRpb24sIGlucHV0LnRyaWdnZXJNb2RlLCBpbnB1dC56b25lU2NvcGUgfHwgbnVsbF0KICAgICk7CiAgICByZXR1cm4gcmVzdWx0Lmluc2VydElkOwogIH0sCgogIGFzeW5jIGZpbmlzaChpZDogbnVtYmVyLCBpbnB1dDogewogICAgc3RhdHVzOiBFeGNsdWRlPFBvcnRhbFJ1blN0YXR1cywgInJ1bm5pbmciPjsKICAgIHRvdGFsRm91bmQ6IG51bWJlcjsKICAgIG5ld1NhdmVkOiBudW1iZXI7CiAgICBwYXJ0aWFsQ292ZXJhZ2U6IGJvb2xlYW47CiAgICBlcnJvcj86IHN0cmluZyB8IG51bGw7CiAgfSk6IFByb21pc2U8dm9pZD4gewogICAgaWYgKCFpZCkgcmV0dXJuOwogICAgYXdhaXQgcG9vbC5xdWVyeSgKICAgICAgYFVQREFURSBzY3JhcGluZ19wb3J0YWxfcnVucwogICAgICAgICAgU0VUIGZpbmlzaGVkX2F0ID0gTk9XKCksIHN0YXR1cyA9ID8sIHRvdGFsX2ZvdW5kID0gPywgbmV3X3NhdmVkID0gPywKICAgICAgICAgICAgICBwYXJ0aWFsX2NvdmVyYWdlID0gPywgZXJyb3IgPSA/CiAgICAgICAgV0hFUkUgaWQgPSA/YCwKICAgICAgW2lucHV0LnN0YXR1cywgaW5wdXQudG90YWxGb3VuZCwgaW5wdXQubmV3U2F2ZWQsIGlucHV0LnBhcnRpYWxDb3ZlcmFnZSA/IDEgOiAwLCBpbnB1dC5lcnJvciB8fCBudWxsLCBpZF0KICAgICk7CiAgfSwKfTsK","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\scripts\\createUser.ts","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"92fa5a69c7f7ae3bdf02ae58389bfadda0dfdd21dddc7d14247b478eba83f78a","afterContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IHBvb2wgZnJvbSAiLi4vY29uZmlnL2RiIjsKaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAiLi4vbW9kZWxzL3VzZXJNb2RlbCI7Cgphc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4gewogIGNvbnN0IHVzZXJuYW1lID0gKHByb2Nlc3MuZW52Lk5FV19VU0VSX1VTRVJOQU1FIHx8ICIiKS50cmltKCk7CiAgY29uc3QgcGFzc3dvcmQgPSBwcm9jZXNzLmVudi5ORVdfVVNFUl9QQVNTV09SRCB8fCAiIjsKICBjb25zdCBlbWFpbCA9IChwcm9jZXNzLmVudi5ORVdfVVNFUl9FTUFJTCB8fCAiIikudHJpbSgpOwogIGNvbnN0IHJvbGUgPSBwcm9jZXNzLmVudi5ORVdfVVNFUl9ST0xFID09PSAiaWFfYWRtaW4iID8gImlhX2FkbWluIiA6ICJvcGVyYXRvciI7CgogIGlmICghL15bQS1aYS16MC05Ll8tXXszLDEwMH0kLy50ZXN0KHVzZXJuYW1lKSkgewogICAgdGhyb3cgbmV3IEVycm9yKCJORVdfVVNFUl9VU0VSTkFNRSBkZWJlIHRlbmVyIDMtMTAwIGNhcmFjdGVyZXMgc2VndXJvcyIpOwogIH0KICBpZiAocGFzc3dvcmQubGVuZ3RoIDwgMTIpIHsKICAgIHRocm93IG5ldyBFcnJvcigiTkVXX1VTRVJfUEFTU1dPUkQgZGViZSB0ZW5lciBhbCBtZW5vcyAxMiBjYXJhY3RlcmVzIik7CiAgfQogIGlmICghL15bXlxzQF0rQFteXHNAXStcLlteXHNAXSskLy50ZXN0KGVtYWlsKSkgewogICAgdGhyb3cgbmV3IEVycm9yKCJORVdfVVNFUl9FTUFJTCBubyBlcyB2w6FsaWRvIik7CiAgfQogIGlmIChhd2FpdCBVc2VyTW9kZWwuZmluZEJ5VXNlcm5hbWUodXNlcm5hbWUpKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIHVzdWFyaW8gJHt1c2VybmFtZX0geWEgZXhpc3RlYCk7CiAgfQoKICBjb25zdCB1c2VyID0gYXdhaXQgVXNlck1vZGVsLmNyZWF0ZSh1c2VybmFtZSwgcGFzc3dvcmQsIGVtYWlsLCByb2xlKTsKICBjb25zb2xlLmxvZyhgVXN1YXJpbyBjcmVhZG86IGlkPSR7dXNlci5pZH0sIHVzZXJuYW1lPSR7dXNlci51c2VybmFtZX0sIHJvbGU9JHt1c2VyLnJvbGV9YCk7Cn0KCm1haW4oKQogIC5jYXRjaChlcnJvciA9PiB7IGNvbnNvbGUuZXJyb3IoZXJyb3IubWVzc2FnZSk7IHByb2Nlc3MuZXhpdENvZGUgPSAxOyB9KQogIC5maW5hbGx5KCgpID0+IHBvb2wuZW5kKCkpOwo=","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\src\\scripts\\migrate.ts","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"e2e1d3f659a2d5ea55a883964e1b69dd78a6dd2465d3b31b4d5f589ca0fee7c8","afterContent":"aW1wb3J0ICJkb3RlbnYvY29uZmlnIjsKaW1wb3J0IHBvb2wsIHsgY29ubmVjdERCIH0gZnJvbSAiLi4vY29uZmlnL2RiIjsKCmNvbm5lY3REQigpCiAgLnRoZW4oKCkgPT4gY29uc29sZS5sb2coIk1pZ3JhY2lvbmVzIGFwbGljYWRhcyBjb3JyZWN0YW1lbnRlLiIpKQogIC5maW5hbGx5KCgpID0+IHBvb2wuZW5kKCkpOwo=","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\test-property-freshness.js","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"e2de9f6403ecdd327ff1559eb59ab63348b84835edd7b926b98ad70200c700c6","afterContent":"Y29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgibm9kZTphc3NlcnQvc3RyaWN0Iik7CmNvbnN0IHBvb2wgPSByZXF1aXJlKCIuL2Rpc3QvY29uZmlnL2RiIikuZGVmYXVsdDsKY29uc3QgeyBQcm9wZXJ0eU1vZGVsIH0gPSByZXF1aXJlKCIuL2Rpc3QvbW9kZWxzL3Byb3BlcnR5TW9kZWwiKTsKCmNvbnN0IFRFU1RfVVJMID0gImNvZGV4LXRlc3Q6Ly9wcm9wZXJ0eS1mcmVzaG5lc3MiOwoKYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBhd2FpdCBwb29sLnF1ZXJ5KCJERUxFVEUgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIHVybCA9ID8iLCBbVEVTVF9VUkxdKTsKICB0cnkgewogICAgY29uc3QgcHJvcGVydHkgPSB7CiAgICAgIHRpdGxlOiAiVGVzdCBmcmVzaG5lc3MiLAogICAgICBwcmljZTogMTAwMDAwLAogICAgICBsb2NhdGlvbjogIlZhbGVuY2lhIiwKICAgICAgbXVuaWNpcGFsaXR5OiAiVmFsZW5jaWEiLAogICAgICBwcm9wZXJ0eV90eXBlOiAicGlzbyIsCiAgICAgIG9wZXJhdGlvbl90eXBlOiAic2FsZSIsCiAgICAgIHJvb21zOiAyLAogICAgICBzaXplX20yOiA3MCwKICAgICAgdXJsOiBURVNUX1VSTCwKICAgICAgc291cmNlOiAiQ29kZXhUZXN0IiwKICAgIH07CiAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgUHJvcGVydHlNb2RlbC51cHNlcnRXaXRoU3RhdHVzKHByb3BlcnR5KTsKICAgIGFzc2VydC5lcXVhbChjcmVhdGVkLmlzTmV3LCB0cnVlKTsKICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLnVwc2VydFdpdGhTdGF0dXMocHJvcGVydHkpOwogICAgYXNzZXJ0LmVxdWFsKHVwZGF0ZWQuaXNOZXcsIGZhbHNlKTsKICAgIGFzc2VydC5lcXVhbCh1cGRhdGVkLmlkLCBjcmVhdGVkLmlkKTsKCiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJVUERBVEUgcHJvcGVydGllcyBTRVQgbGFzdF9zZWVuX2F0ID0gREFURV9TVUIoTk9XKCksIElOVEVSVkFMIDEgREFZKSBXSEVSRSBpZCA9ID8iLCBbY3JlYXRlZC5pZF0pOwogICAgYXdhaXQgcG9vbC5xdWVyeSgiVVBEQVRFIHByb3BlcnRpZXMgU0VUIHNjb3JlID0gNSBXSEVSRSBpZCA9ID8iLCBbY3JlYXRlZC5pZF0pOwogICAgbGV0IFtyb3dzXSA9IGF3YWl0IHBvb2wucXVlcnkoIlNFTEVDVCBUSU1FU1RBTVBESUZGKEhPVVIsIGxhc3Rfc2Vlbl9hdCwgTk9XKCkpIGhvdXJzIEZST00gcHJvcGVydGllcyBXSEVSRSBpZCA9ID8iLCBbY3JlYXRlZC5pZF0pOwogICAgYXNzZXJ0Lm9rKE51bWJlcihyb3dzWzBdLmhvdXJzKSA+PSAyMywgIkVsIHBvc3Rwcm9jZXNhZG8gbm8gZGViZSBhbHRlcmFyIGxhc3Rfc2Vlbl9hdCIpOwoKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBzZXJ0V2l0aFN0YXR1cyhwcm9wZXJ0eSk7CiAgICBbcm93c10gPSBhd2FpdCBwb29sLnF1ZXJ5KCJTRUxFQ1QgVElNRVNUQU1QRElGRihNSU5VVEUsIGxhc3Rfc2Vlbl9hdCwgTk9XKCkpIG1pbnV0ZXMgRlJPTSBwcm9wZXJ0aWVzIFdIRVJFIGlkID0gPyIsIFtjcmVhdGVkLmlkXSk7CiAgICBhc3NlcnQuZXF1YWwoTnVtYmVyKHJvd3NbMF0ubWludXRlcyksIDApOwogICAgY29uc29sZS5sb2coIlByb3BlcnR5IGZyZXNobmVzcy91cHNlcnQgaW50ZWdyYXRpb24gdGVzdDogT0siKTsKICB9IGZpbmFsbHkgewogICAgYXdhaXQgcG9vbC5xdWVyeSgiREVMRVRFIEZST00gcHJvcGVydGllcyBXSEVSRSB1cmwgPSA/IiwgW1RFU1RfVVJMXSk7CiAgICBhd2FpdCBwb29sLmVuZCgpOwogIH0KfQoKbWFpbigpLmNhdGNoKGVycm9yID0+IHsKICBjb25zb2xlLmVycm9yKGVycm9yKTsKICBwcm9jZXNzLmV4aXRDb2RlID0gMTsKfSk7Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"},{"relativePath":"lliria-properties-scraper\\test-user-isolation.js","beforeExisted":false,"beforeHash":null,"beforeContent":null,"afterExisted":true,"afterHash":"5408e8c78fe7e97441962cd0c09e6ddae06dce87b681d0f06233d7b7ce49cc19","afterContent":"Y29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgibm9kZTphc3NlcnQvc3RyaWN0Iik7CmNvbnN0IHBvb2wgPSByZXF1aXJlKCIuL2Rpc3QvY29uZmlnL2RiIikuZGVmYXVsdDsKY29uc3QgeyBQcm9wZXJ0eU1vZGVsIH0gPSByZXF1aXJlKCIuL2Rpc3QvbW9kZWxzL3Byb3BlcnR5TW9kZWwiKTsKY29uc3QgeyBGaWx0ZXJNb2RlbCB9ID0gcmVxdWlyZSgiLi9kaXN0L21vZGVscy9maWx0ZXJNb2RlbCIpOwoKY29uc3QgVVNFUl9BID0gOTEwMDAxOwpjb25zdCBVU0VSX0IgPSA5MTAwMDI7Cgphc3luYyBmdW5jdGlvbiBtYWluKCkgewogIGNvbnN0IFtwcm9wZXJ0aWVzXSA9IGF3YWl0IHBvb2wucXVlcnkoIlNFTEVDVCBpZCBGUk9NIHByb3BlcnRpZXMgT1JERVIgQlkgaWQgTElNSVQgMSIpOwogIGFzc2VydC5vayhwcm9wZXJ0aWVzWzBdPy5pZCwgIlNlIG5lY2VzaXRhIHVuYSBwcm9waWVkYWQgZXhpc3RlbnRlIHBhcmEgbGEgcHJ1ZWJhIik7CiAgY29uc3QgcHJvcGVydHlJZCA9IE51bWJlcihwcm9wZXJ0aWVzWzBdLmlkKTsKICBjb25zdCBjcmVhdGVkRmlsdGVySWRzID0gW107CiAgYXdhaXQgcG9vbC5xdWVyeSgiREVMRVRFIEZST00gdXNlcl9wcm9wZXJ0eV9zdGF0ZSBXSEVSRSB1c2VyX2lkIElOICg/LCA/KSIsIFtVU0VSX0EsIFVTRVJfQl0pOwogIHRyeSB7CiAgICBhc3NlcnQuZXF1YWwoYXdhaXQgUHJvcGVydHlNb2RlbC50b2dnbGVGYXZvcml0ZShwcm9wZXJ0eUlkLCBVU0VSX0EpLCB0cnVlKTsKICAgIGFzc2VydC5lcXVhbChhd2FpdCBQcm9wZXJ0eU1vZGVsLnRvZ2dsZUZhdm9yaXRlKHByb3BlcnR5SWQsIFVTRVJfQiksIHRydWUpOwogICAgYXNzZXJ0LmVxdWFsKGF3YWl0IFByb3BlcnR5TW9kZWwudG9nZ2xlRmF2b3JpdGUocHJvcGVydHlJZCwgVVNFUl9BKSwgZmFsc2UpOwogICAgYXdhaXQgUHJvcGVydHlNb2RlbC51cGRhdGVOb3Rlcyhwcm9wZXJ0eUlkLCBVU0VSX0EsICJub3RhLWEiKTsKICAgIGF3YWl0IFByb3BlcnR5TW9kZWwudXBkYXRlTm90ZXMocHJvcGVydHlJZCwgVVNFUl9CLCAibm90YS1iIik7CiAgICBjb25zdCBzdGF0ZUEgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmZpbmRCeUlkKHByb3BlcnR5SWQsIFVTRVJfQSk7CiAgICBjb25zdCBzdGF0ZUIgPSBhd2FpdCBQcm9wZXJ0eU1vZGVsLmZpbmRCeUlkKHByb3BlcnR5SWQsIFVTRVJfQik7CiAgICBhc3NlcnQuZXF1YWwoQm9vbGVhbihzdGF0ZUEuaXNfZmF2b3JpdGUpLCBmYWxzZSk7CiAgICBhc3NlcnQuZXF1YWwoQm9vbGVhbihzdGF0ZUIuaXNfZmF2b3JpdGUpLCB0cnVlKTsKICAgIGFzc2VydC5lcXVhbChzdGF0ZUEubm90ZXMsICJub3RhLWEiKTsKICAgIGFzc2VydC5lcXVhbChzdGF0ZUIubm90ZXMsICJub3RhLWIiKTsKCiAgICBjb25zdCBmaWx0ZXJBID0gYXdhaXQgRmlsdGVyTW9kZWwuY3JlYXRlKHsgbmFtZTogInRlc3QtYSIsIGVtYWlsX2FsZXJ0czogdHJ1ZSwgb3BlcmF0aW9uX3R5cGU6ICJyZW50IiB9LCBVU0VSX0EpOwogICAgY29uc3QgZmlsdGVyQiA9IGF3YWl0IEZpbHRlck1vZGVsLmNyZWF0ZSh7IG5hbWU6ICJ0ZXN0LWIiLCBlbWFpbF9hbGVydHM6IGZhbHNlIH0sIFVTRVJfQik7CiAgICBjcmVhdGVkRmlsdGVySWRzLnB1c2goZmlsdGVyQS5pZCwgZmlsdGVyQi5pZCk7CiAgICBhc3NlcnQuZGVlcEVxdWFsKChhd2FpdCBGaWx0ZXJNb2RlbC5maW5kQWxsKFVTRVJfQSkpLmZpbHRlcihmID0+IGYuaWQgPT09IGZpbHRlckEuaWQpLm1hcChmID0+IGYubmFtZSksIFsidGVzdC1hIl0pOwogICAgYXNzZXJ0LmVxdWFsKChhd2FpdCBGaWx0ZXJNb2RlbC5maW5kQWxsKFVTRVJfQSkpLnNvbWUoZiA9PiBmLmlkID09PSBmaWx0ZXJCLmlkKSwgZmFsc2UpOwogICAgYXdhaXQgRmlsdGVyTW9kZWwudXBkYXRlKGZpbHRlckEuaWQsIFVTRVJfQiwgeyBuYW1lOiAiaW50cnVzacOzbiIsIGVtYWlsX2FsZXJ0czogZmFsc2UgfSk7CiAgICBhc3NlcnQuZXF1YWwoKGF3YWl0IEZpbHRlck1vZGVsLmZpbmRCeUlkKGZpbHRlckEuaWQsIFVTRVJfQSkpLm5hbWUsICJ0ZXN0LWEiKTsKCiAgICBjb25zdCBjYW5kaWRhdGUgPSBbeyBpZDogcHJvcGVydHlJZCB9XTsKICAgIGFzc2VydC5lcXVhbCgoYXdhaXQgRmlsdGVyTW9kZWwuZXhjbHVkZURlbGl2ZXJlZChmaWx0ZXJBLmlkLCBjYW5kaWRhdGUpKS5sZW5ndGgsIDEpOwogICAgYXdhaXQgRmlsdGVyTW9kZWwubWFya0RlbGl2ZXJlZChmaWx0ZXJBLmlkLCBbcHJvcGVydHlJZF0pOwogICAgYXNzZXJ0LmVxdWFsKChhd2FpdCBGaWx0ZXJNb2RlbC5leGNsdWRlRGVsaXZlcmVkKGZpbHRlckEuaWQsIGNhbmRpZGF0ZSkpLmxlbmd0aCwgMCk7CiAgICBjb25zb2xlLmxvZygiVXNlciBzdGF0ZSwgZmlsdGVyIG93bmVyc2hpcCBhbmQgYWxlcnQgZGVsaXZlcnkgaW50ZWdyYXRpb24gdGVzdDogT0siKTsKICB9IGZpbmFsbHkgewogICAgaWYgKGNyZWF0ZWRGaWx0ZXJJZHMubGVuZ3RoKSB7CiAgICAgIGF3YWl0IHBvb2wucXVlcnkoIkRFTEVURSBGUk9NIGZpbHRlcl9hbGVydF9kZWxpdmVyaWVzIFdIRVJFIGZpbHRlcl9pZCBJTiAoPykiLCBbY3JlYXRlZEZpbHRlcklkc10pOwogICAgICBhd2FpdCBwb29sLnF1ZXJ5KCJERUxFVEUgRlJPTSBmaWx0ZXJzIFdIRVJFIGlkIElOICg/KSIsIFtjcmVhdGVkRmlsdGVySWRzXSk7CiAgICB9CiAgICBhd2FpdCBwb29sLnF1ZXJ5KCJERUxFVEUgRlJPTSB1c2VyX3Byb3BlcnR5X3N0YXRlIFdIRVJFIHVzZXJfaWQgSU4gKD8sID8pIiwgW1VTRVJfQSwgVVNFUl9CXSk7CiAgICBhd2FpdCBwb29sLmVuZCgpOwogIH0KfQoKbWFpbigpLmNhdGNoKGVycm9yID0+IHsKICBjb25zb2xlLmVycm9yKGVycm9yKTsKICBwcm9jZXNzLmV4aXRDb2RlID0gMTsKfSk7Cg==","decision":"accepted","decidedAt":"2026-07-27T18:22:12.628Z"}]},{"id":"cp-1786062828737-ac948e3a","turnId":"019fd9a3-c5bc-7140-88f1-72b09699a008","createdAt":"2026-08-07T00:33:48.737Z","completion":"completed","recoveryReason":null,"changedFiles":0,"files":[]},{"id":"cp-1786062921003-06b40a8d","turnId":"019fd9a4-c061-75d0-a055-6e3823c944a5","createdAt":"2026-08-07T00:35:21.003Z","completion":"completed","recoveryReason":null,"changedFiles":0,"files":[]},{"id":"cp-1786232539556-ea74604c","turnId":"019fe3c0-e780-7181-a903-c403aef58965","createdAt":"2026-08-08T23:42:19.557Z","completion":"completed","recoveryReason":null,"changedFiles":2,"files":[{"relativePath":"lliria-properties-scraper\\logs\\error.log","beforeExisted":true,"beforeHash":"9efd2e811ed2eddca7c74a1623af9df78b5ac26d5e9c5e4c88c111f5ba44a753","beforeContent":"RXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQo=","afterExisted":true,"afterHash":"7be528ff5e388e60385b81d5061e8a67b2ac713a772493e4192592fcdd8e4689","afterContent":"RXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkK","decision":"pending","decidedAt":null},{"relativePath":"lliria-properties-scraper\\logs\\out.log","beforeExisted":true,"beforeHash":"4f73c017c3aa9522a4c503b32072656fa660e554029760d7dc990ffd96232195","beforeContent":"MjAyNi0wOC0wOCAwMTozMDoyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0NTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxOTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1MjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowNDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo1MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMzoyNzozNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzozNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6Mzk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjg6MDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowNTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowNTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQ3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbUGlzb3NTY3JhcGVyXSBDb21wbGV0YWRvOiAxMTc0IG9idGVuaWRhcywgMTU5IG51ZXZhcwoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbVGVjbm9jYXNhU2NyYXBlcl0gSW5pY2lhbmRvIHNjcmFwaW5nLi4uCjIwMjYtMDgtMDkgMDE6NDE6MDg6IFtUZWNub2Nhc2FdIExvdGUgZ2VvZ3LDoWZpY28gZGlhcmlvOiAxMi8xMTEgem9uYXMgKHJlbnQpCjIwMjYtMDgtMDkgMDE6NDE6MDg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxNDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxNDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MjQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToyNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToyNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCg==","afterExisted":true,"afterHash":"f263a7db1564eeb125d1a27de8140cbfd275e19d74b59e6019f8c5b09ab444ee","afterContent":"MjAyNi0wOC0wOCAwMTozMDoyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0NTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxOTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1MjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowNDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo1MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMzoyNzozNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzozNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6Mzk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjg6MDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowNTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowNTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQ3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbUGlzb3NTY3JhcGVyXSBDb21wbGV0YWRvOiAxMTc0IG9idGVuaWRhcywgMTU5IG51ZXZhcwoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbVGVjbm9jYXNhU2NyYXBlcl0gSW5pY2lhbmRvIHNjcmFwaW5nLi4uCjIwMjYtMDgtMDkgMDE6NDE6MDg6IFtUZWNub2Nhc2FdIExvdGUgZ2VvZ3LDoWZpY28gZGlhcmlvOiAxMi8xMTEgem9uYXMgKHJlbnQpCjIwMjYtMDgtMDkgMDE6NDE6MDg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxNDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxNDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MjQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToyNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToyNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo0MjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo0MjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo0NzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo0NzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo1MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo1MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NTQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo1NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo1NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NTk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjowMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjowMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjowODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjowODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MTE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoxMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoxMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MTY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoxNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoxNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCg==","decision":"pending","decidedAt":null}]},{"id":"cp-1786232750621-298e5f73","turnId":"019fe3c4-09bb-7952-b888-e1655e47f0d6","createdAt":"2026-08-08T23:45:50.621Z","completion":"completed","recoveryReason":null,"changedFiles":2,"files":[{"relativePath":"lliria-properties-scraper\\logs\\error.log","beforeExisted":true,"beforeHash":"7d97efdd2efecbcd7a30c429d8e0af3ec39d643cae506f4bd10b4a228fe05747","beforeContent":"RXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDI6NTg6IFtUaGlua1NwYWluXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMvYWxib3JhY2hlIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0Mjo1ODogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2FsYm9yYWNoZSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjAxOiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2J1bm9sIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzowMTogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2J1bm9sIOKGkiA0MDQsIG9taXRpZW5kbwoyMDI2LTA4LTA5IDAxOjQzOjA0OiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2NoZXN0ZSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MDQ6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9jaGVzdGUg4oaSIDQwNCwgb21pdGllbmRvCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKMjAyNi0wOC0wOSAwMTo0MzowODogW1RoaW5rU3BhaW5dIEludGVudG8gMS8zIGZhbGxpZG8gcGFyYSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9jaGl2YSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MDg6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9jaGl2YSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjEyOiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2dvZGVsbGV0YSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MTI6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9nb2RlbGxldGEg4oaSIDQwNCwgb21pdGllbmRvCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKMjAyNi0wOC0wOSAwMTo0MzoxNTogW1RoaW5rU3BhaW5dIEludGVudG8gMS8zIGZhbGxpZG8gcGFyYSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9tYWNhc3RyZSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MTU6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9tYWNhc3RyZSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjE5OiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL3R1cmlzIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzoxOTogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL3R1cmlzIOKGkiA0MDQsIG9taXRpZW5kbwpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDM6MjI6IFtUaGlua1NwYWluXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMveWF0b3ZhIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzoyMjogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL3lhdG92YSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjI2OiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2FsYmFsYXQtZGVscy1zb3JlbGxzIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzoyNjogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2FsYmFsYXQtZGVscy1zb3JlbGxzIOKGkiA0MDQsIG9taXRpZW5kbwpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDM6MzA6IFtUaGlua1NwYWluXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMvYWxmYXJhLWRlbC1wYXRyaWFyY2Eg4oaSIDQwNAoyMDI2LTA4LTA5IDAxOjQzOjMwOiBbVGhpbmtTcGFpbl0gaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMvYWxmYXJhLWRlbC1wYXRyaWFyY2Eg4oaSIDQwNCwgb21pdGllbmRvCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKMjAyNi0wOC0wOSAwMTo0MzozMzogW1RoaW5rU3BhaW5dIEludGVudG8gMS8zIGZhbGxpZG8gcGFyYSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9ib25yZXBvcy1pLW1pcmFtYmVsbCDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MzM6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9ib25yZXBvcy1pLW1pcmFtYmVsbCDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDQ6NTk6IFtZYWVuY29udHJlXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cueWFlbmNvbnRyZS5jb20vYWxxdWlsZXIvcGlzb3MvdmFsZW5jaWEvcGFnaW5hLTIuaHRtbCDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDQ6NTk6IFtZYWVuY29udHJlXSBodHRwczovL3d3dy55YWVuY29udHJlLmNvbS9hbHF1aWxlci9waXNvcy92YWxlbmNpYS9wYWdpbmEtMi5odG1sIOKGkiA0MDQsIG9taXRpZW5kbwoyMDI2LTA4LTA5IDAxOjQ1OjAxOiBbWWFlbmNvbnRyZV0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2dyYW8tZGUtbXVydmllZHJvIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0NTowMTogW1lhZW5jb250cmVdIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2dyYW8tZGUtbXVydmllZHJvIOKGkiA0MDQsIG9taXRpZW5kbwpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCg==","afterExisted":true,"afterHash":"8b248e014fd2c839f72c3bf7ee0b45aa4ce4428990301dd3ca9abcad12e206de","afterContent":"RXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDI6NTg6IFtUaGlua1NwYWluXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMvYWxib3JhY2hlIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0Mjo1ODogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2FsYm9yYWNoZSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjAxOiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2J1bm9sIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzowMTogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2J1bm9sIOKGkiA0MDQsIG9taXRpZW5kbwoyMDI2LTA4LTA5IDAxOjQzOjA0OiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2NoZXN0ZSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MDQ6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9jaGVzdGUg4oaSIDQwNCwgb21pdGllbmRvCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKMjAyNi0wOC0wOSAwMTo0MzowODogW1RoaW5rU3BhaW5dIEludGVudG8gMS8zIGZhbGxpZG8gcGFyYSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9jaGl2YSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MDg6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9jaGl2YSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjEyOiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2dvZGVsbGV0YSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MTI6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9nb2RlbGxldGEg4oaSIDQwNCwgb21pdGllbmRvCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKMjAyNi0wOC0wOSAwMTo0MzoxNTogW1RoaW5rU3BhaW5dIEludGVudG8gMS8zIGZhbGxpZG8gcGFyYSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9tYWNhc3RyZSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MTU6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9tYWNhc3RyZSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjE5OiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL3R1cmlzIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzoxOTogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL3R1cmlzIOKGkiA0MDQsIG9taXRpZW5kbwpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDM6MjI6IFtUaGlua1NwYWluXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMveWF0b3ZhIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzoyMjogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL3lhdG92YSDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQzOjI2OiBbVGhpbmtTcGFpbl0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2FsYmFsYXQtZGVscy1zb3JlbGxzIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0MzoyNjogW1RoaW5rU3BhaW5dIGh0dHBzOi8vd3d3LnRoaW5rc3BhaW4uY29tL2xvbmctdGVybS1yZW50YWxzL2FsYmFsYXQtZGVscy1zb3JlbGxzIOKGkiA0MDQsIG9taXRpZW5kbwpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDM6MzA6IFtUaGlua1NwYWluXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMvYWxmYXJhLWRlbC1wYXRyaWFyY2Eg4oaSIDQwNAoyMDI2LTA4LTA5IDAxOjQzOjMwOiBbVGhpbmtTcGFpbl0gaHR0cHM6Ly93d3cudGhpbmtzcGFpbi5jb20vbG9uZy10ZXJtLXJlbnRhbHMvYWxmYXJhLWRlbC1wYXRyaWFyY2Eg4oaSIDQwNCwgb21pdGllbmRvCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKMjAyNi0wOC0wOSAwMTo0MzozMzogW1RoaW5rU3BhaW5dIEludGVudG8gMS8zIGZhbGxpZG8gcGFyYSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9ib25yZXBvcy1pLW1pcmFtYmVsbCDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDM6MzM6IFtUaGlua1NwYWluXSBodHRwczovL3d3dy50aGlua3NwYWluLmNvbS9sb25nLXRlcm0tcmVudGFscy9ib25yZXBvcy1pLW1pcmFtYmVsbCDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDQ6NTk6IFtZYWVuY29udHJlXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cueWFlbmNvbnRyZS5jb20vYWxxdWlsZXIvcGlzb3MvdmFsZW5jaWEvcGFnaW5hLTIuaHRtbCDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDQ6NTk6IFtZYWVuY29udHJlXSBodHRwczovL3d3dy55YWVuY29udHJlLmNvbS9hbHF1aWxlci9waXNvcy92YWxlbmNpYS9wYWdpbmEtMi5odG1sIOKGkiA0MDQsIG9taXRpZW5kbwoyMDI2LTA4LTA5IDAxOjQ1OjAxOiBbWWFlbmNvbnRyZV0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2dyYW8tZGUtbXVydmllZHJvIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0NTowMTogW1lhZW5jb250cmVdIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2dyYW8tZGUtbXVydmllZHJvIOKGkiA0MDQsIG9taXRpZW5kbwpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDU6MDU6IFtZYWVuY29udHJlXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cueWFlbmNvbnRyZS5jb20vYWxxdWlsZXIvcGlzb3MvYmVuYWd1YXNpbC9wYWdpbmEtMi5odG1sIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0NTowNTogW1lhZW5jb250cmVdIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2JlbmFndWFzaWwvcGFnaW5hLTIuaHRtbCDihpIgNDA0LCBvbWl0aWVuZG8KRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQoyMDI2LTA4LTA5IDAxOjQ1OjA5OiBbWWFlbmNvbnRyZV0gSW50ZW50byAxLzMgZmFsbGlkbyBwYXJhIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2JldGVyYS9wYWdpbmEtMi5odG1sIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0NTowOTogW1lhZW5jb250cmVdIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2JldGVyYS9wYWdpbmEtMi5odG1sIOKGkiA0MDQsIG9taXRpZW5kbwpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCjIwMjYtMDgtMDkgMDE6NDU6MTE6IFtZYWVuY29udHJlXSBJbnRlbnRvIDEvMyBmYWxsaWRvIHBhcmEgaHR0cHM6Ly93d3cueWFlbmNvbnRyZS5jb20vYWxxdWlsZXIvcGlzb3MvZWxpYW5hIOKGkiA0MDQKMjAyNi0wOC0wOSAwMTo0NToxMTogW1lhZW5jb250cmVdIGh0dHBzOi8vd3d3LnlhZW5jb250cmUuY29tL2FscXVpbGVyL3Bpc29zL2VsaWFuYSDihpIgNDA0LCBvbWl0aWVuZG8KMjAyNi0wOC0wOSAwMTo0NToxMzogW1lhZW5jb250cmVdIEludGVudG8gMS8zIGZhbGxpZG8gcGFyYSBodHRwczovL3d3dy55YWVuY29udHJlLmNvbS9hbHF1aWxlci9waXNvcy9wb2JsYS1kZS12YWxsYm9uYSDihpIgNDA0CjIwMjYtMDgtMDkgMDE6NDU6MTM6IFtZYWVuY29udHJlXSBodHRwczovL3d3dy55YWVuY29udHJlLmNvbS9hbHF1aWxlci9waXNvcy9wb2JsYS1kZS12YWxsYm9uYSDihpIgNDA0LCBvbWl0aWVuZG8KMjAyNi0wOC0wOSAwMTo0NToxMzogW1lhZW5jb250cmVdIFBvcnRhbCBibG9xdWVhbmRvIHNpc3RlbcOhdGljYW1lbnRlICgyIHpvbmFzIHNpbiByZXNwdWVzdGEpLCBhYm9ydGFuZG8gc2NyYXBpbmcKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkKRXJyb3I6IGJpbmQgRUFERFJJTlVTRSBudWxsOjMwMDAKICAgIGF0IGxpc3Rlbk9uUHJpbWFyeUhhbmRsZSAobm9kZTpuZXQ6MjAyMDoxOCkKICAgIGF0IHNoYXJlZCAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjE1NzozKQogICAgYXQgV29ya2VyLjxhbm9ueW1vdXM+IChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTEwOjcpCiAgICBhdCBwcm9jZXNzLm9uSW50ZXJuYWxNZXNzYWdlIChub2RlOmludGVybmFsL2NsdXN0ZXIvdXRpbHM6NDk6NSkKICAgIGF0IHByb2Nlc3MuZW1pdCAobm9kZTpldmVudHM6NTMwOjM1KQogICAgYXQgZW1pdCAobm9kZTppbnRlcm5hbC9jaGlsZF9wcm9jZXNzOjk0OToxNCkKICAgIGF0IHByb2Nlc3MucHJvY2Vzc1RpY2tzQW5kUmVqZWN0aW9ucyAobm9kZTppbnRlcm5hbC9wcm9jZXNzL3Rhc2tfcXVldWVzOjkxOjIxKQpFcnJvcjogYmluZCBFQUREUklOVVNFIG51bGw6MzAwMAogICAgYXQgbGlzdGVuT25QcmltYXJ5SGFuZGxlIChub2RlOm5ldDoyMDIwOjE4KQogICAgYXQgc2hhcmVkIChub2RlOmludGVybmFsL2NsdXN0ZXIvY2hpbGQ6MTU3OjMpCiAgICBhdCBXb3JrZXIuPGFub255bW91cz4gKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxMTA6NykKICAgIGF0IHByb2Nlc3Mub25JbnRlcm5hbE1lc3NhZ2UgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci91dGlsczo0OTo1KQogICAgYXQgcHJvY2Vzcy5lbWl0IChub2RlOmV2ZW50czo1MzA6MzUpCiAgICBhdCBlbWl0IChub2RlOmludGVybmFsL2NoaWxkX3Byb2Nlc3M6OTQ5OjE0KQogICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6OTE6MjEpCkVycm9yOiBiaW5kIEVBRERSSU5VU0UgbnVsbDozMDAwCiAgICBhdCBsaXN0ZW5PblByaW1hcnlIYW5kbGUgKG5vZGU6bmV0OjIwMjA6MTgpCiAgICBhdCBzaGFyZWQgKG5vZGU6aW50ZXJuYWwvY2x1c3Rlci9jaGlsZDoxNTc6MykKICAgIGF0IFdvcmtlci48YW5vbnltb3VzPiAobm9kZTppbnRlcm5hbC9jbHVzdGVyL2NoaWxkOjExMDo3KQogICAgYXQgcHJvY2Vzcy5vbkludGVybmFsTWVzc2FnZSAobm9kZTppbnRlcm5hbC9jbHVzdGVyL3V0aWxzOjQ5OjUpCiAgICBhdCBwcm9jZXNzLmVtaXQgKG5vZGU6ZXZlbnRzOjUzMDozNSkKICAgIGF0IGVtaXQgKG5vZGU6aW50ZXJuYWwvY2hpbGRfcHJvY2Vzczo5NDk6MTQpCiAgICBhdCBwcm9jZXNzLnByb2Nlc3NUaWNrc0FuZFJlamVjdGlvbnMgKG5vZGU6aW50ZXJuYWwvcHJvY2Vzcy90YXNrX3F1ZXVlczo5MToyMSkK","decision":"pending","decidedAt":null},{"relativePath":"lliria-properties-scraper\\logs\\out.log","beforeExisted":true,"beforeHash":"a792571793b02884cbc6fb9e7b8a1c657cf571b497903cc8c6aa0da5a751edff","beforeContent":"MjAyNi0wOC0wOCAwMTozMDoyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0NTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxOTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1MjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowNDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo1MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMzoyNzozNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzozNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6Mzk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjg6MDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowNTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowNTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQ3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbUGlzb3NTY3JhcGVyXSBDb21wbGV0YWRvOiAxMTc0IG9idGVuaWRhcywgMTU5IG51ZXZhcwoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbVGVjbm9jYXNhU2NyYXBlcl0gSW5pY2lhbmRvIHNjcmFwaW5nLi4uCjIwMjYtMDgtMDkgMDE6NDE6MDg6IFtUZWNub2Nhc2FdIExvdGUgZ2VvZ3LDoWZpY28gZGlhcmlvOiAxMi8xMTEgem9uYXMgKHJlbnQpCjIwMjYtMDgtMDkgMDE6NDE6MDg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxNDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxNDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MjQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToyNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToyNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo0MjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo0MjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo0NzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo0NzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo1MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo1MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NTQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo1NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo1NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NTk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjowMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjowMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjowODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjowODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MTE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoxMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoxMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MTY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoxNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoxNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MjE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoyMzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoyMzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6Mjc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoyODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoyODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MzI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjozMzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjozMzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6Mzc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjozOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjozOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6NDI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mjo0NDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mjo0NDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6NDU6IOKchSBbVGVjbm9jYXNhXSA3IHByb3BpZWRhZGVzIGVuY29udHJhZGFzCjIwMjYtMDgtMDkgMDE6NDI6NDU6IFtUZWNub2Nhc2FTY3JhcGVyXSBPYnRlbmlkYXMgNyBwcm9waWVkYWRlcwoyMDI2LTA4LTA5IDAxOjQyOjQ3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDI6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDI6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQyOjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDI6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDI6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQyOjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDI6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDI6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQyOjU4OiBbVGVjbm9jYXNhU2NyYXBlcl0gQ29tcGxldGFkbzogNyBvYnRlbmlkYXMsIDEgbnVldmFzCjIwMjYtMDgtMDkgMDE6NDI6NTg6IFtUaGlua1NwYWluU2NyYXBlcl0gSW5pY2lhbmRvIHNjcmFwaW5nLi4uCjIwMjYtMDgtMDkgMDE6NDI6NTg6IFtUaGlua1NwYWluXSBMb3RlIGdlb2dyw6FmaWNvIGRpYXJpbzogMTIvMTExIHpvbmFzIChyZW50KQoyMDI2LTA4LTA5IDAxOjQyOjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MjE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjM1OiDinIUgW1RoaW5rU3BhaW5dIDQ0IHByb3BpZWRhZGVzIGVuY29udHJhZGFzCjIwMjYtMDgtMDkgMDE6NDM6MzU6IFtUaGlua1NwYWluU2NyYXBlcl0gT2J0ZW5pZGFzIDQ0IHByb3BpZWRhZGVzCjIwMjYtMDgtMDkgMDE6NDM6MzY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MzozODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MzozODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo0MjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo0MjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo0NjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo0NjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo1MDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo1MDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo1NDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo1NDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NTc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo1ODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo1ODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MDE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDowMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDowMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDowNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDowNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoxMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoxMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoxNTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoxNTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MTg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoyMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoyMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MjM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoyNDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoyNDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6Mjc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoyOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoyOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MzI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDozMzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDozMzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MzY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDozNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDozNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo0MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo0MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo0NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo0NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NDg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo0OTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo0OTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NTI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo1MzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo1MzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NTY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo1ODogW1RoaW5rU3BhaW5TY3JhcGVyXSBDb21wbGV0YWRvOiA0NCBvYnRlbmlkYXMsIDI2IG51ZXZhcwoyMDI2LTA4LTA5IDAxOjQ0OjU4OiBbWWFlbmNvbnRyZVNjcmFwZXJdIEluaWNpYW5kbyBzY3JhcGluZy4uLgoyMDI2LTA4LTA5IDAxOjQ0OjU4OiBbWWFlbmNvbnRyZV0gTG90ZSBnZW9ncsOhZmljbyBkaWFyaW86IDEyLzExMSB6b25hcyAocmVudCkKMjAyNi0wOC0wOSAwMTo0NDo1ODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo1ODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDU6MDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NTowMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NTowMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCg==","afterExisted":true,"afterHash":"12963a408e0d59f27d37b01633f88cb4fdf4e1950e2e38be1619ef54f439b134","afterContent":"MjAyNi0wOC0wOCAwMTozMDoyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjM4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo0NTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjQ3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMwOjU2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMDo1ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjAwOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTowNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjA4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToxOTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjIxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMToyNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjI5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjMzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTozNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0NDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo0ODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjQ5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1MjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjUzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMTo1NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMxOjU3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjAxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowNDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA1OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjowODogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjA5OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxMjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjEzOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoxNjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjE3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjIyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjoyNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjI2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozMDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjMyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjozNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjM3OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0MDogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQxOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo0NjogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjQ4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMTozMjo1MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA4IDAxOjMyOjUyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOCAwMzoyNzozNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzozNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6Mzk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NDc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo0OTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1MzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyNzo1NzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjc6NTk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDggMDM6Mjg6MDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOCAwMzoyODowNTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOCAwMzoyODowNTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MjY6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI4OjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjg6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjI5OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mjk6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzA6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMwOjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjE5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMxOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzE6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjEyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMyOjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzI6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjMzOjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzM6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjA4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjQ5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM0OjU3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzQ6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzQ6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjAxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjA5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjEzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjE3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM1OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzU6NTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MTk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MjM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjI2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mjc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjMwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6MzU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjM4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6Mzk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjQ2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6MzY6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM2OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjE4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjIyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MjQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjI3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6Mjg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjMxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6MzY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjM5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjQ3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzc6NTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM3OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjUzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzg6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM4OjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjEwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjIxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MjY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjI5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjMzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6MzQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjM3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6Mzg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjQ1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NDc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjUwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6Mzk6NTU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjM5OjU4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjAyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjA2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjE1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MTY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjIzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjM2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6Mzc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjQ4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjUyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTQ6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQwOjU2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDA6NTg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjAwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDE6MDY6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbUGlzb3NTY3JhcGVyXSBDb21wbGV0YWRvOiAxMTc0IG9idGVuaWRhcywgMTU5IG51ZXZhcwoyMDI2LTA4LTA5IDAxOjQxOjA4OiBbVGVjbm9jYXNhU2NyYXBlcl0gSW5pY2lhbmRvIHNjcmFwaW5nLi4uCjIwMjYtMDgtMDkgMDE6NDE6MDg6IFtUZWNub2Nhc2FdIExvdGUgZ2VvZ3LDoWZpY28gZGlhcmlvOiAxMi8xMTEgem9uYXMgKHJlbnQpCjIwMjYtMDgtMDkgMDE6NDE6MDg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxNDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxNDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MTc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToxOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToxOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MjQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MToyNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MToyNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozMTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozMTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6MzQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTozNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTozNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo0MjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo0MjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo0NzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo0NzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo1MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo1MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NTQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MTo1NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MTo1NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDE6NTk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjowMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjowMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjowODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjowODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MTE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoxMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoxMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MTY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoxNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoxNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MjE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoyMzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoyMzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6Mjc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjoyODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjoyODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6MzI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjozMzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjozMzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6Mzc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MjozOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MjozOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6NDI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mjo0NDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mjo0NDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDI6NDU6IOKchSBbVGVjbm9jYXNhXSA3IHByb3BpZWRhZGVzIGVuY29udHJhZGFzCjIwMjYtMDgtMDkgMDE6NDI6NDU6IFtUZWNub2Nhc2FTY3JhcGVyXSBPYnRlbmlkYXMgNyBwcm9waWVkYWRlcwoyMDI2LTA4LTA5IDAxOjQyOjQ3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDI6NDg6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDI6NDg6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQyOjUxOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDI6NTI6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDI6NTI6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQyOjU1OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDI6NTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDI6NTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQyOjU4OiBbVGVjbm9jYXNhU2NyYXBlcl0gQ29tcGxldGFkbzogNyBvYnRlbmlkYXMsIDEgbnVldmFzCjIwMjYtMDgtMDkgMDE6NDI6NTg6IFtUaGlua1NwYWluU2NyYXBlcl0gSW5pY2lhbmRvIHNjcmFwaW5nLi4uCjIwMjYtMDgtMDkgMDE6NDI6NTg6IFtUaGlua1NwYWluXSBMb3RlIGdlb2dyw6FmaWNvIGRpYXJpbzogMTIvMTExIHpvbmFzIChyZW50KQoyMDI2LTA4LTA5IDAxOjQyOjU5OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MDA6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MDA6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjAzOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MDU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MDU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjA3OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MDk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MDk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjExOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MTM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MTM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjE2OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MTc6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MTc6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjIwOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MjE6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MjE6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjI0OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MjU6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MjU6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjI4OiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6Mjk6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6Mjk6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjMyOiBDb25leGlvbiBhIE15U1FMIGVzdGFibGVjaWRhIGNvcnJlY3RhbWVudGUuCjIwMjYtMDgtMDkgMDE6NDM6MzM6IFtEQl0gQ29sdW1uYSBkZWxldGVkX2F0IHZlcmlmaWNhZGEvYcOxYWRpZGEuCjIwMjYtMDgtMDkgMDE6NDM6MzM6IFNjaGVkdWxlciBpbmljaWFkbzogc2NyYXBpbmcgZGlhcmlvIGEgbGFzIDAxOjAwIChFdXJvcGUvTWFkcmlkKQoyMDI2LTA4LTA5IDAxOjQzOjM1OiDinIUgW1RoaW5rU3BhaW5dIDQ0IHByb3BpZWRhZGVzIGVuY29udHJhZGFzCjIwMjYtMDgtMDkgMDE6NDM6MzU6IFtUaGlua1NwYWluU2NyYXBlcl0gT2J0ZW5pZGFzIDQ0IHByb3BpZWRhZGVzCjIwMjYtMDgtMDkgMDE6NDM6MzY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0MzozODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0MzozODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo0MjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo0MjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo0NjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo0NjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo1MDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo1MDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo1NDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo1NDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDM6NTc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0Mzo1ODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0Mzo1ODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MDE6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDowMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDowMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDowNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDowNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoxMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoxMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoxNTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoxNTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MTg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoyMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoyMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MjM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoyNDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoyNDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6Mjc6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDoyOTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDoyOTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MzI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDozMzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDozMzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6MzY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDozNzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDozNzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo0MTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo0MTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NDQ6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo0NTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo0NTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NDg6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo0OTogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo0OTogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NTI6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo1MzogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo1MzogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDQ6NTY6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NDo1ODogW1RoaW5rU3BhaW5TY3JhcGVyXSBDb21wbGV0YWRvOiA0NCBvYnRlbmlkYXMsIDI2IG51ZXZhcwoyMDI2LTA4LTA5IDAxOjQ0OjU4OiBbWWFlbmNvbnRyZVNjcmFwZXJdIEluaWNpYW5kbyBzY3JhcGluZy4uLgoyMDI2LTA4LTA5IDAxOjQ0OjU4OiBbWWFlbmNvbnRyZV0gTG90ZSBnZW9ncsOhZmljbyBkaWFyaW86IDEyLzExMSB6b25hcyAocmVudCkKMjAyNi0wOC0wOSAwMTo0NDo1ODogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NDo1ODogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDU6MDA6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NTowMjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NTowMjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDU6MDU6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NTowNjogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NTowNjogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDU6MDk6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NToxMDogW0RCXSBDb2x1bW5hIGRlbGV0ZWRfYXQgdmVyaWZpY2FkYS9hw7FhZGlkYS4KMjAyNi0wOC0wOSAwMTo0NToxMDogU2NoZWR1bGVyIGluaWNpYWRvOiBzY3JhcGluZyBkaWFyaW8gYSBsYXMgMDE6MDAgKEV1cm9wZS9NYWRyaWQpCjIwMjYtMDgtMDkgMDE6NDU6MTM6IENvbmV4aW9uIGEgTXlTUUwgZXN0YWJsZWNpZGEgY29ycmVjdGFtZW50ZS4KMjAyNi0wOC0wOSAwMTo0NToxMzog4pyFIFtZYWVuY29udHJlXSA4MyBwcm9waWVkYWRlcyBlbmNvbnRyYWRhcwoyMDI2LTA4LTA5IDAxOjQ1OjEzOiBbWWFlbmNvbnRyZVNjcmFwZXJdIE9idGVuaWRhcyA4MyBwcm9waWVkYWRlcwoyMDI2LTA4LTA5IDAxOjQ1OjE0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjE0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NToxNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjE4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjE4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NToyMTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjIyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjIyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NToyNTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjI2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjI2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NToyOTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjMwOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjMwOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NTozMzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjM0OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjM0OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NTozNzogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjM4OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjM4OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NTo0MTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjQyOiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjQyOiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NTo0NTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgoyMDI2LTA4LTA5IDAxOjQ1OjQ2OiBbREJdIENvbHVtbmEgZGVsZXRlZF9hdCB2ZXJpZmljYWRhL2HDsWFkaWRhLgoyMDI2LTA4LTA5IDAxOjQ1OjQ2OiBTY2hlZHVsZXIgaW5pY2lhZG86IHNjcmFwaW5nIGRpYXJpbyBhIGxhcyAwMTowMCAoRXVyb3BlL01hZHJpZCkKMjAyNi0wOC0wOSAwMTo0NTo0OTogQ29uZXhpb24gYSBNeVNRTCBlc3RhYmxlY2lkYSBjb3JyZWN0YW1lbnRlLgo=","decision":"pending","decidedAt":null}]}]}
