### SYNC-TRANSFER 6/7 -- mit sync-entpacken.bat entpacken ### Base64 ### FILE: server.ps1 | 253352 77u/cGFyYW0oDQogICAgW2ludF0kUG9ydCA9IDgwODEsDQogICAgW3N0cmluZ10kUm9vdFBhdGgg PSAnJywNCiAgICBbc3dpdGNoXSREZWJ1ZywNCiAgICBbc3dpdGNoXSROb0Jyb3dzZXINCikNCg0K IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KIyBGTEQtUGxhbnVuZyAtIExva2FsZXIgSFRUUC1TZXJ2 ZXIgKFBvd2VyU2hlbGwpDQojIFNwaWVnZWx0IGRpZSBGdW5rdGlvbmFsaXRhZXQgdm9uIHNlcnZl ci5weSAxOjEgd2lkZXIuDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCiRFcnJvckFjdGlvblBy ZWZlcmVuY2UgPSAnU3RvcCcNCg0KIyBTeXN0ZW0uV2ViIGZ1ZXIgVXJsRGVjb2RlIGluIEJhY2t1 cC1Eb3dubG9hZA0KdHJ5IHsgQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uV2ViIC1FcnJv ckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0gY2F0Y2gge30NCg0KIyAtLS0gQXJiZWl0c3Zlcnpl aWNobmlzIGJlc3RpbW1lbiAtLS0NCiMgUHJpb3JpdGFldDoNCiMgICAxKSAtUm9vdFBhdGggYWxz IFBhcmFtZXRlciAod2VubiBnZXNldHp0IHVuZCBQZmFkIGV4aXN0aWVydCkNCiMgICAyKSBhcHBf cm9vdC50eHQgYWxzIFNpZGVjYXItRGF0ZWkgbmViZW4gc2VydmVyLnBzMSAodm9uIGRlciBCYXQg Z2VzY2hyaWViZW4pLg0KIyAgICAgIFJvYnVzdCBnZWdlbiBjbWQtUXVvdGUtVmVyc2NoYWNodGVs dW5nIGJlaSBVTkMtUGZhZGVuLCBkaWUgZGVuDQojICAgICAgLVJvb3RQYXRoLVBhcmFtZXRlciBz b25zdCB2ZXJzY2hsdWNrZW4ga2Fubi4NCiMgICAzKSAkUFNTY3JpcHRSb290IGFscyBGYWxsYmFj ayAobnVyIHNpbm52b2xsIGJlaSBMb2thbC1TdGFydCkuDQokX3Jvb3RTcmMgPSAnJw0KaWYgKCRS b290UGF0aCAtYW5kIChUZXN0LVBhdGggJFJvb3RQYXRoKSkgew0KICAgICRSb290ID0gKFJlc29s dmUtUGF0aCAkUm9vdFBhdGgpLlBhdGgNCiAgICAkX3Jvb3RTcmMgPSAnLVJvb3RQYXRoLVBhcmFt ZXRlcicNCn0gZWxzZSB7DQogICAgJF9zaWRlY2FyID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3Qg J2FwcF9yb290LnR4dCcNCiAgICBpZiAoVGVzdC1QYXRoICRfc2lkZWNhcikgew0KICAgICAgICB0 cnkgew0KICAgICAgICAgICAgJF9wZmFkID0gKEdldC1Db250ZW50ICRfc2lkZWNhciAtUmF3IC1F bmNvZGluZyBVVEY4KS5UcmltKCkNCiAgICAgICAgICAgIGlmICgkX3BmYWQgLWFuZCAoVGVzdC1Q YXRoICRfcGZhZCkpIHsNCiAgICAgICAgICAgICAgICAkUm9vdCA9IChSZXNvbHZlLVBhdGggJF9w ZmFkKS5QYXRoDQogICAgICAgICAgICAgICAgJF9yb290U3JjID0gIlNpZGVjYXIgYXBwX3Jvb3Qu dHh0ICgkX3NpZGVjYXIpIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIHt9DQogICAg fQ0KICAgIGlmICgtbm90ICRSb290KSB7DQogICAgICAgICRSb290ID0gJFBTU2NyaXB0Um9vdA0K ICAgICAgICAkX3Jvb3RTcmMgPSAnUFNTY3JpcHRSb290LUZhbGxiYWNrJw0KICAgIH0NCn0NCiRE YXRhRGlyID0gSm9pbi1QYXRoICRSb290ICdkYXRhJw0KDQojIC0tLSBGZWhsZXItTG9nIChkYW1p dCBtYW4gYmVpIEVSUl9DT05ORUNUSU9OX1JFRlVTRUQgc2VoZW4ga2Fubiwgd2FzIHdhcikgLS0t DQokc2NyaXB0OkxvZ0ZpbGUgPSBKb2luLVBhdGggJGVudjpURU1QICdGTERfc2VydmVyLmxvZycN CmZ1bmN0aW9uIFdyaXRlLVN0YXJ0dXBMb2coJE1lc3NhZ2UpIHsNCiAgICAkTGluZSA9ICJbJChH ZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1NLWRkIEhIOm1tOnNzJyldICRNZXNzYWdlIg0KICAgIHRy eSB7IEFkZC1Db250ZW50IC1QYXRoICRzY3JpcHQ6TG9nRmlsZSAtVmFsdWUgJExpbmUgLUVuY29k aW5nIFVURjggfSBjYXRjaCB7fQ0KICAgIFdyaXRlLUhvc3QgJExpbmUNCn0NCg0KV3JpdGUtU3Rh cnR1cExvZyAiPT09IFNlcnZlci1TdGFydCAoUElEICRQSUQpID09PSINCldyaXRlLVN0YXJ0dXBM b2cgIlJvb3Q6ICRSb290ICAoUXVlbGxlOiAkX3Jvb3RTcmMpIg0KV3JpdGUtU3RhcnR1cExvZyAi Um9vdFBhdGgtUGFyYW06ICRSb290UGF0aCINCldyaXRlLVN0YXJ0dXBMb2cgIlBTU2NyaXB0Um9v dDogJFBTU2NyaXB0Um9vdCINCldyaXRlLVN0YXJ0dXBMb2cgIkRhdGFEaXI6ICREYXRhRGlyIg0K V3JpdGUtU3RhcnR1cExvZyAiUG9ydDogJFBvcnQiDQpXcml0ZS1TdGFydHVwTG9nICJQb3dlclNo ZWxsOiAkKCRQU1ZlcnNpb25UYWJsZS5QU1ZlcnNpb24pIg0KDQojIEZyw7xod2FybnVuZyB3ZW5u IGRpZSBGcm9udGVuZC1EYXRlaWVuIG5pY2h0IGRhIHNpbmQsIHdvIGRlciBTZXJ2ZXIgc3VjaHQu DQojIFNwYXJ0IDQwNC1TdG9jaGVybiBpbSBCcm93c2VyICgiaW5kZXguaHRtbCB3aXJkIG5pY2h0 IGdlZnVuZGVuIikgLSBVcnNhY2hlDQojIHN0ZWh0IGRpcmVrdCBpbSBTZXJ2ZXItTG9nIChzaWVo ZSBGTERfRkVITEVSLmxvZyBhdWYgZGVtIERlc2t0b3ApLg0KJF9pZHggPSBKb2luLVBhdGggJFJv b3QgJ2luZGV4Lmh0bWwnDQppZiAoLW5vdCAoVGVzdC1QYXRoICRfaWR4KSkgew0KICAgIFdyaXRl LVN0YXJ0dXBMb2cgIkZFSExFUjogaW5kZXguaHRtbCBmZWhsdCB1bnRlciBSb290ICckUm9vdCcg LSBwcnVlZmUgb2IgLVJvb3RQYXRoIGJlaW0gU2VydmVyIGFua2FtLiINCiAgICB0cnkgew0KICAg ICAgICAkX2R1bXAgPSBHZXQtQ2hpbGRJdGVtIC1QYXRoICRSb290IC1Gb3JjZSAtRXJyb3JBY3Rp b24gU2lsZW50bHlDb250aW51ZSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDE1IC1FeHBhbmRQcm9w ZXJ0eSBOYW1lDQogICAgICAgIFdyaXRlLVN0YXJ0dXBMb2cgIkluaGFsdCBSb290IChlcnN0ZSAx NSBFaW50cmFlZ2UpOiAkKCRfZHVtcCAtam9pbiAnLCAnKSINCiAgICB9IGNhdGNoIHt9DQp9DQoN CmlmICgtbm90IChUZXN0LVBhdGggJERhdGFEaXIpKSB7DQogICAgdHJ5IHsNCiAgICAgICAgTmV3 LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkRGF0YURpciAtRm9yY2UgfCBPdXQtTnVs bA0KICAgICAgICBXcml0ZS1TdGFydHVwTG9nICJEYXRlbnZlcnplaWNobmlzIGVyc3RlbGx0LiIN CiAgICB9IGNhdGNoIHsNCiAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAiRkVITEVSOiBEYXRlbnZl cnplaWNobmlzIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW46ICRfIg0KICAgIH0NCn0NCg0K IyAtLS0gR2xvYmFsZXIgU3RhdGUgLS0tDQokc2NyaXB0OkNvcnNPcmlnaW4gPSAiaHR0cDovL2xv Y2FsaG9zdDokUG9ydCINCiRzY3JpcHQ6TGFzdEhlYXJ0YmVhdCA9IEdldC1EYXRlDQokc2NyaXB0 OkhlYXJ0YmVhdFRpbWVvdXRTZWMgPSAzMA0KJHNjcmlwdDpEZWJ1Z0xvZyA9ICREZWJ1Zy5Jc1By ZXNlbnQNCiRzY3JpcHQ6TWF4Qm9keSA9IDUwICogMTAyNCAqIDEwMjQgICMgNTAgTUIgKEV4Y2Vs LUltcG9ydCBrYW5uIGdyb3NzZSBwYXJzZWREYXRlbiBlbnRoYWx0ZW4pDQoNCiRzY3JpcHQ6TWlt ZVR5cGVzID0gQHsNCiAgICAnLmh0bWwnID0gJ3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCcNCiAg ICAnLmNzcycgID0gJ3RleHQvY3NzOyBjaGFyc2V0PXV0Zi04Jw0KICAgICcuanMnICAgPSAnYXBw bGljYXRpb24vamF2YXNjcmlwdDsgY2hhcnNldD11dGYtOCcNCiAgICAnLmpzb24nID0gJ2FwcGxp Y2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnDQogICAgJy5pY28nICA9ICdpbWFnZS94LWljb24n DQogICAgJy5wbmcnICA9ICdpbWFnZS9wbmcnDQogICAgJy5qcGcnICA9ICdpbWFnZS9qcGVnJw0K ICAgICcuanBlZycgPSAnaW1hZ2UvanBlZycNCiAgICAnLmdpZicgID0gJ2ltYWdlL2dpZicNCiAg ICAnLndlYnAnID0gJ2ltYWdlL3dlYnAnDQogICAgJy5zdmcnICA9ICdpbWFnZS9zdmcreG1sJw0K ICAgICcucGRmJyAgPSAnYXBwbGljYXRpb24vcGRmJw0KfQ0KDQojIE1lZGllbi1WZXJ3YWx0dW5n IChBZG1pbi1UYWIgIk1lZGllbiIpDQojIERlZmF1bHQtS2F0ZWdvcmllbiAtIFNvdXJjZS1vZi1U cnV0aCBpc3QgYWRtaW4uanNvbjptZWRpZW5LYXRlZ29yaWVuIChzaWVoZQ0KIyBHZXQtTWVkaWVu S2F0ZWdvcmllS2V5cykuIERpZXNlIERlZmF1bHRzIHdlcmRlbiBudXIgYWxzIEZhbGxiYWNrIGdl bnV0enQsDQojIHdlbm4gZGllIExpc3RlIGluIGFkbWluLmpzb24gZmVobHQgb2RlciBsZWVyIGlz dCAoQXVkaXQtSXRlci1CLCBTeW5jIG1pdA0KIyBzZXJ2ZXIucHk6TUVESUVOX0tBVEVHT1JJRU5f REVGQVVMVFMpLg0KJHNjcmlwdDpNZWRpZW5LYXRlZ29yaWVuRGVmYXVsdHMgPSBAKCdmdXNzYmFs bCcsJ3Nwb3J0Jywnb2ZmaWNlJywncG9saXplaScsJ21pc2MnLCdldmVudHMnLCdwZGYnLCdiYW8n LCdzb25zdGlnZXMnKQ0KJHNjcmlwdDpNZWRpZW5NYXhCeXRlcyA9IDUgKiAxMDI0ICogMTAyNA0K JHNjcmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVzID0gQHsNCiAgICAnaW1hZ2UvcG5nJyA9ICcucG5n JzsgJ2ltYWdlL2pwZWcnID0gJy5qcGcnOyAnaW1hZ2UvZ2lmJyA9ICcuZ2lmJw0KICAgICdpbWFn ZS93ZWJwJyA9ICcud2VicCc7ICdpbWFnZS9zdmcreG1sJyA9ICcuc3ZnJzsgJ2FwcGxpY2F0aW9u L3BkZicgPSAnLnBkZicNCn0NCiRzY3JpcHQ6TWVkaWVuU3VmZml4WnVNaW1lID0gQHsNCiAgICAn LnBuZycgPSAnaW1hZ2UvcG5nJzsgJy5qcGcnID0gJ2ltYWdlL2pwZWcnOyAnLmpwZWcnID0gJ2lt YWdlL2pwZWcnDQogICAgJy5naWYnID0gJ2ltYWdlL2dpZic7ICcud2VicCcgPSAnaW1hZ2Uvd2Vi cCc7ICcuc3ZnJyA9ICdpbWFnZS9zdmcreG1sJw0KICAgICcucGRmJyA9ICdhcHBsaWNhdGlvbi9w ZGYnDQp9DQoNCiMgU3lzdGVtLUJpbGRlciBhdXMgL2ltYWdlcy8gLSB3ZXJkZW4gYmVpbSBlcnN0 ZW4gR0VUIC9hcGkvbWVkaWVuIGVpbm1hbGlnDQojIGluIG1lZGllbi5qc29uIGltcG9ydGllcnQg KG1pdCBgcGZhZGAtRmVsZCwgb2huZSBEYXRlbi1Lb3BpZSkuIERhbmFjaCBzaW5kDQojIGRpZSBF aW50cmFlZ2UgZ2FueiBub3JtYWwgZWRpdGllcmJhciAodW1iZW5lbm5lbiwgS2F0ZWdvcmllIGFl bmRlcm4sIGxvZXNjaGVuKS4NCiMgU3BpZWdlbCB2b24gc2VydmVyLnB5OlNZU1RFTV9NRURJRU5f SU5WRU5UQVIgKDYwKyBFaW50cmFlZ2UpLg0KJHNjcmlwdDpTeXN0ZW1NZWRpZW5JbnZlbnRhciA9 IEAoDQogICAgIyBGdXNzYmFsbCAtIEJ1bmRlc2xpZ2EgKyAyLiBMaWdhIFZlcmVpbnNsb2dvcyAo MTgpDQogICAgQCgnc3lzLWZiLTFmY2hlaWRlbmhlaW0nLCAnZnVzc2JhbGwnLCAnMS4gRkMgSGVp ZGVuaGVpbScsICcvaW1hZ2VzL2Z1c3NiYWxsLzEuX0ZDX0hlaWRlbmhlaW0uc3ZnJyksDQogICAg QCgnc3lzLWZiLTFmY2tvZWxuJywgJ2Z1c3NiYWxsJywgJzEuIEZDIEvDtmxuJywgJy9pbWFnZXMv ZnVzc2JhbGwvMS5fRkNfS29lbG4uc3ZnJyksDQogICAgQCgnc3lzLWZiLTFmY3VuaW9uYmVybGlu JywgJ2Z1c3NiYWxsJywgJzEuIEZDIFVuaW9uIEJlcmxpbicsICcvaW1hZ2VzL2Z1c3NiYWxsLzEu X0ZDX1VuaW9uX0Jlcmxpbi5zdmcnKSwNCiAgICBAKCdzeXMtZmItMWZzdm1haW56MDUnLCAnZnVz c2JhbGwnLCAnMS4gRlNWIE1haW56IDA1JywgJy9pbWFnZXMvZnVzc2JhbGwvMS5fRlNWX01haW56 XzA1LnN2ZycpLA0KICAgIEAoJ3N5cy1mYi1iYXllcjA0JywgJ2Z1c3NiYWxsJywgJ0JheWVyIDA0 IExldmVya3VzZW4nLCAnL2ltYWdlcy9mdXNzYmFsbC9CYXllcl8wNF9MZXZlcmt1c2VuLnN2Zycp LA0KICAgIEAoJ3N5cy1mYi1idmInLCAnZnVzc2JhbGwnLCAnQm9ydXNzaWEgRG9ydG11bmQnLCAn L2ltYWdlcy9mdXNzYmFsbC9Cb3J1c3NpYV9Eb3J0bXVuZC5zdmcnKSwNCiAgICBAKCdzeXMtZmIt bWdsYWRiYWNoJywgJ2Z1c3NiYWxsJywgJ0JvcnVzc2lhIE3Dtm5jaGVuZ2xhZGJhY2gnLCAnL2lt YWdlcy9mdXNzYmFsbC9Cb3J1c3NpYV9Nb2VuY2hlbmdsYWRiYWNoLnN2ZycpLA0KICAgIEAoJ3N5 cy1mYi1laW50cmFjaHQnLCAnZnVzc2JhbGwnLCAnRWludHJhY2h0IEZyYW5rZnVydCcsICcvaW1h Z2VzL2Z1c3NiYWxsL0VpbnRyYWNodF9GcmFua2Z1cnQucG5nJyksDQogICAgQCgnc3lzLWZiLWZj YXVnc2J1cmcnLCAnZnVzc2JhbGwnLCAnRkMgQXVnc2J1cmcnLCAnL2ltYWdlcy9mdXNzYmFsbC9G Q19BdWdzYnVyZy5wbmcnKSwNCiAgICBAKCdzeXMtZmItZmNiYXllcm4nLCAnZnVzc2JhbGwnLCAn RkMgQmF5ZXJuIE3DvG5jaGVuJywgJy9pbWFnZXMvZnVzc2JhbGwvRkNfQmF5ZXJuX011ZW5jaGVu LnN2ZycpLA0KICAgIEAoJ3N5cy1mYi1mY3N0cGF1bGknLCAnZnVzc2JhbGwnLCAnRkMgU3QuIFBh dWxpJywgJy9pbWFnZXMvZnVzc2JhbGwvRkNfU3QuX1BhdWxpLnBuZycpLA0KICAgIEAoJ3N5cy1m Yi1oc3YnLCAnZnVzc2JhbGwnLCAnSGFtYnVyZ2VyIFNWJywgJy9pbWFnZXMvZnVzc2JhbGwvSGFt YnVyZ2VyX1NWLnN2ZycpLA0KICAgIEAoJ3N5cy1mYi1yYmxlaXB6aWcnLCAnZnVzc2JhbGwnLCAn UkIgTGVpcHppZycsICcvaW1hZ2VzL2Z1c3NiYWxsL1JCX0xlaXB6aWcucG5nJyksDQogICAgQCgn c3lzLWZiLXNjZnJlaWJ1cmcnLCAnZnVzc2JhbGwnLCAnU0MgRnJlaWJ1cmcnLCAnL2ltYWdlcy9m dXNzYmFsbC9TQ19GcmVpYnVyZy5wbmcnKSwNCiAgICBAKCdzeXMtZmItd2VyZGVyJywgJ2Z1c3Ni YWxsJywgJ1NWIFdlcmRlciBCcmVtZW4nLCAnL2ltYWdlcy9mdXNzYmFsbC9TVl9XZXJkZXJfQnJl bWVuLnN2ZycpLA0KICAgIEAoJ3N5cy1mYi10c2dob2ZmZW5oZWltJywgJ2Z1c3NiYWxsJywgJ1RT RyBIb2ZmZW5oZWltJywgJy9pbWFnZXMvZnVzc2JhbGwvVFNHX0hvZmZlbmhlaW0ucG5nJyksDQog ICAgQCgnc3lzLWZiLXZmYnN0dXR0Z2FydCcsICdmdXNzYmFsbCcsICdWZkIgU3R1dHRnYXJ0Jywg Jy9pbWFnZXMvZnVzc2JhbGwvVmZCX1N0dXR0Z2FydC5zdmcnKSwNCiAgICBAKCdzeXMtZmItdmZs d29sZnNidXJnJywgJ2Z1c3NiYWxsJywgJ1ZmTCBXb2xmc2J1cmcnLCAnL2ltYWdlcy9mdXNzYmFs bC9WZkxfV29sZnNidXJnLnN2ZycpLA0KICAgICMgU3BvcnQgKDkpDQogICAgQCgnc3lzLXNwb3J0 LWZvb3RiYWxsJywgJ3Nwb3J0JywgJ0Z1w59iYWxsLVN5bWJvbCcsICcvaW1hZ2VzL3Nwb3J0L2Zv b3RiYWxsLnN2ZycpLA0KICAgIEAoJ3N5cy1zcG9ydC1oYW5kYmFsbCcsICdzcG9ydCcsICdIYW5k YmFsbC1TeW1ib2wnLCAnL2ltYWdlcy9zcG9ydC9oYW5kYmFsbC5zdmcnKSwNCiAgICBAKCdzeXMt c3BvcnQtamVyc2V5JywgJ3Nwb3J0JywgJ1RyaWtvdCcsICcvaW1hZ2VzL3Nwb3J0L2plcnNleS5z dmcnKSwNCiAgICBAKCdzeXMtc3BvcnQtbWVkaWMtc3BvcnQnLCAnc3BvcnQnLCAnU3BvcnQtU2Fu aXTDpHRlcicsICcvaW1hZ2VzL3Nwb3J0L21lZGljLXNwb3J0LnN2ZycpLA0KICAgIEAoJ3N5cy1z cG9ydC1ydW5uaW5nJywgJ3Nwb3J0JywgJ0xhdWYgLyBKb2dnZW4nLCAnL2ltYWdlcy9zcG9ydC9y dW5uaW5nLnN2ZycpLA0KICAgIEAoJ3N5cy1zcG9ydC1zY29yZWJvYXJkJywgJ3Nwb3J0JywgJ0Fu emVpZ2V0YWZlbCcsICcvaW1hZ2VzL3Nwb3J0L3Njb3JlYm9hcmQuc3ZnJyksDQogICAgQCgnc3lz LXNwb3J0LXN0b3B3YXRjaCcsICdzcG9ydCcsICdTdG9wcHVocicsICcvaW1hZ2VzL3Nwb3J0L3N0 b3B3YXRjaC5zdmcnKSwNCiAgICBAKCdzeXMtc3BvcnQtdHJvcGh5JywgJ3Nwb3J0JywgJ1Bva2Fs JywgJy9pbWFnZXMvc3BvcnQvdHJvcGh5LnN2ZycpLA0KICAgIEAoJ3N5cy1zcG9ydC13aGlzdGxl JywgJ3Nwb3J0JywgJ1RyaWxsZXJwZmVpZmUnLCAnL2ltYWdlcy9zcG9ydC93aGlzdGxlLnN2Zycp LA0KICAgICMgTWlzYyAtIGFsbGdlbWVpbmUgU3ltYm9sZSAodm9ybWFscyBpY29ucy1LYXRlZ29y aWUpICgxMykNCiAgICBAKCdzeXMtbWlzYy1iYWdnZXInLCAnbWlzYycsICdCYWdnZXInLCAnL2lt YWdlcy9taXNjL2JhZ2dlci5wbmcnKSwNCiAgICBAKCdzeXMtbWlzYy1mYWhycmFkJywgJ21pc2Mn LCAnRmFocnJhZCcsICcvaW1hZ2VzL21pc2MvZmFocnJhZC5wbmcnKSwNCiAgICBAKCdzeXMtbWlz Yy1mbHVnemV1ZycsICdtaXNjJywgJ0ZsdWd6ZXVnJywgJy9pbWFnZXMvbWlzYy9mbHVnemV1Zy5w bmcnKSwNCiAgICBAKCdzeXMtbWlzYy1nbHVlaGJpcm5lJywgJ21pc2MnLCAnR2zDvGhiaXJuZSAv IElkZWUnLCAnL2ltYWdlcy9taXNjL2dsdWVoYmlybmUucG5nJyksDQogICAgQCgnc3lzLW1pc2Mt a29uemVwdCcsICdtaXNjJywgJ0tvbnplcHQnLCAnL2ltYWdlcy9taXNjL2tvbnplcHQucG5nJyks DQogICAgQCgnc3lzLW1pc2Mtbm90aXonLCAnbWlzYycsICdOb3RpeicsICcvaW1hZ2VzL21pc2Mv bm90aXoucG5nJyksDQogICAgQCgnc3lzLW1pc2Mtb3JnYW5pZ3JhbW0nLCAnbWlzYycsICdPcmdh bmlncmFtbScsICcvaW1hZ2VzL21pc2Mvb3JnYW5pZ3JhbW0ucG5nJyksDQogICAgQCgnc3lzLW1p c2MtdGFzY2hlbnJlY2huZXInLCAnbWlzYycsICdUYXNjaGVucmVjaG5lcicsICcvaW1hZ2VzL21p c2MvdGFzY2hlbnJlY2huZXIucG5nJyksDQogICAgQCgnc3lzLW1pc2MtdGVhbScsICdtaXNjJywg J1RlYW0nLCAnL2ltYWdlcy9taXNjL3RlYW0ucG5nJyksDQogICAgQCgnc3lzLW1pc2MtdGVybWlu LXdhcm51bmcnLCAnbWlzYycsICdUZXJtaW4tV2FybnVuZycsICcvaW1hZ2VzL21pc2MvdGVybWlu LXdhcm51bmcucG5nJyksDQogICAgQCgnc3lzLW1pc2MtdHJpYXRobG9uJywgJ21pc2MnLCAnVHJp YXRobG9uJywgJy9pbWFnZXMvbWlzYy90cmlhdGhsb24ucG5nJyksDQogICAgQCgnc3lzLW1pc2Mt dXJrdW5kZScsICdtaXNjJywgJ1Vya3VuZGUnLCAnL2ltYWdlcy9taXNjL3Vya3VuZGUucG5nJyks DQogICAgQCgnc3lzLW1pc2MtdmVyZ2xlaWNoJywgJ21pc2MnLCAnVmVyZ2xlaWNoJywgJy9pbWFn ZXMvbWlzYy92ZXJnbGVpY2gucG5nJyksDQogICAgIyBPZmZpY2UgLSBWZXJ3YWx0dW5nIC8gQnVl cm8gLyBQcmFlc2VudGF0aW9uICgzNSkNCiAgICBAKCdzeXMtb2ZmaWNlLXB1enpsZScsICdvZmZp Y2UnLCAnUHV6emxlJywgJy9pbWFnZXMvb2ZmaWNlLzAxX3B1enpsZS5wbmcnKSwNCiAgICBAKCdz eXMtb2ZmaWNlLWRhc2hib2FyZC1jaGFydCcsICdvZmZpY2UnLCAnRGFzaGJvYXJkIC8gQ2hhcnQn LCAnL2ltYWdlcy9vZmZpY2UvMDJfZGFzaGJvYXJkLWNoYXJ0LnBuZycpLA0KICAgIEAoJ3N5cy1v ZmZpY2UtZG9jdW1lbnQtYXBwcm92ZWQnLCAnb2ZmaWNlJywgJ0dlbmVobWlndGVzIERva3VtZW50 JywgJy9pbWFnZXMvb2ZmaWNlLzAzX2RvY3VtZW50LWFwcHJvdmVkLnBuZycpLA0KICAgIEAoJ3N5 cy1vZmZpY2UtcHJlc2VudGVyLWF1ZGllbmNlJywgJ29mZmljZScsICdWb3J0cmFnIC8gUHVibGlr dW0nLCAnL2ltYWdlcy9vZmZpY2UvMDRfcHJlc2VudGVyLWF1ZGllbmNlLnBuZycpLA0KICAgIEAo J3N5cy1vZmZpY2UtdGVhbS1oaWVyYXJjaHknLCAnb2ZmaWNlJywgJ1RlYW0tSGllcmFyY2hpZScs ICcvaW1hZ2VzL29mZmljZS8wNV90ZWFtLWhpZXJhcmNoeS5wbmcnKSwNCiAgICBAKCdzeXMtb2Zm aWNlLWluZm8tY2hhdCcsICdvZmZpY2UnLCAnSW5mby1DaGF0JywgJy9pbWFnZXMvb2ZmaWNlLzA2 X2luZm8tY2hhdC5wbmcnKSwNCiAgICBAKCdzeXMtb2ZmaWNlLXByZXNlbnRhdGlvbi10ZWFtJywg J29mZmljZScsICdUZWFtLVByw6RzZW50YXRpb24nLCAnL2ltYWdlcy9vZmZpY2UvMDdfcHJlc2Vu dGF0aW9uLXRlYW0ucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1leGNoYW5nZS1kaWFsb2cnLCAn b2ZmaWNlJywgJ0RpYWxvZyAvIEF1c3RhdXNjaCcsICcvaW1hZ2VzL29mZmljZS8wOF9leGNoYW5n ZS1kaWFsb2cucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1kb2N1bWVudC1zZWFyY2gnLCAnb2Zm aWNlJywgJ0Rva3VtZW50IHN1Y2hlbicsICcvaW1hZ2VzL29mZmljZS8wOV9kb2N1bWVudC1zZWFy Y2gucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1nbG9iZScsICdvZmZpY2UnLCAnR2xvYnVzJywg Jy9pbWFnZXMvb2ZmaWNlLzEwX2dsb2JlLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbGlnaHRi dWxiLWlkZWEnLCAnb2ZmaWNlJywgJ0dsw7xoYmlybmUgLyBJZGVlJywgJy9pbWFnZXMvb2ZmaWNl LzExX2xpZ2h0YnVsYi1pZGVhLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtZ2F2ZWwtanVkZ2Vt ZW50JywgJ29mZmljZScsICdIYW1tZXIgLyBVcnRlaWwnLCAnL2ltYWdlcy9vZmZpY2UvMTJfZ2F2 ZWwtanVkZ2VtZW50LnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2Utc2NhbGVzLWJhbGFuY2UnLCAn b2ZmaWNlJywgJ1dhYWdlIC8gQmFsYW5jZScsICcvaW1hZ2VzL29mZmljZS8xM19zY2FsZXMtYmFs YW5jZS5wbmcnKSwNCiAgICBAKCdzeXMtb2ZmaWNlLW1lZ2FwaG9uZS1hbm5vdW5jZScsICdvZmZp Y2UnLCAnTWVnYWZvbiAvIEFuc2FnZScsICcvaW1hZ2VzL29mZmljZS8xNF9tZWdhcGhvbmUtYW5u b3VuY2UucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1ncm93dGgtY2hhcnQnLCAnb2ZmaWNlJywg J1dhY2hzdHVtcy1DaGFydCcsICcvaW1hZ2VzL29mZmljZS8xNV9ncm93dGgtY2hhcnQucG5nJyks DQogICAgQCgnc3lzLW9mZmljZS1jbGlwYm9hcmQtY2hlY2tsaXN0JywgJ29mZmljZScsICdLbGVt bWJyZXR0IC8gQ2hlY2tsaXN0ZScsICcvaW1hZ2VzL29mZmljZS8xNl9jbGlwYm9hcmQtY2hlY2ts aXN0LnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbW9iaWxlLXRhc2tzJywgJ29mZmljZScsICdN b2JpbGUgLyBBdWZnYWJlbicsICcvaW1hZ2VzL29mZmljZS8xN19tb2JpbGUtdGFza3MucG5nJyks DQogICAgQCgnc3lzLW9mZmljZS1tb25pdG9yLW9wdGlvbnMnLCAnb2ZmaWNlJywgJ01vbml0b3Ig LyBPcHRpb25lbicsICcvaW1hZ2VzL29mZmljZS8xOF9tb25pdG9yLW9wdGlvbnMucG5nJyksDQog ICAgQCgnc3lzLW9mZmljZS1uZXdzcGFwZXInLCAnb2ZmaWNlJywgJ1plaXR1bmcnLCAnL2ltYWdl cy9vZmZpY2UvMTlfbmV3c3BhcGVyLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbGFwdG9wLXNo YXJlJywgJ29mZmljZScsICdMYXB0b3AgLyBUZWlsZW4nLCAnL2ltYWdlcy9vZmZpY2UvMjBfbGFw dG9wLXNoYXJlLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbG9jYXRpb24tcGluJywgJ29mZmlj ZScsICdTdGFuZG9ydC1QaW4nLCAnL2ltYWdlcy9vZmZpY2UvMjFfbG9jYXRpb24tcGluLnBuZycp LA0KICAgIEAoJ3N5cy1vZmZpY2UtcGFwZXItcGxhbmUnLCAnb2ZmaWNlJywgJ1BhcGllcmZsaWVn ZXInLCAnL2ltYWdlcy9vZmZpY2UvMjJfcGFwZXItcGxhbmUucG5nJyksDQogICAgQCgnc3lzLW9m ZmljZS1zb2NpYWwtbmV0d29yaycsICdvZmZpY2UnLCAnU296aWFsZXMgTmV0endlcmsnLCAnL2lt YWdlcy9vZmZpY2UvMjNfc29jaWFsLW5ldHdvcmsucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1t ZWV0aW5nLXRhYmxlJywgJ29mZmljZScsICdCZXNwcmVjaHVuZ3N0aXNjaCcsICcvaW1hZ2VzL29m ZmljZS8yNF9tZWV0aW5nLXRhYmxlLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtdGVhbS1jb25u ZWN0aW9uJywgJ29mZmljZScsICdUZWFtLVZlcmJpbmR1bmcnLCAnL2ltYWdlcy9vZmZpY2UvMjVf dGVhbS1jb25uZWN0aW9uLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtaG91cmdsYXNzJywgJ29m ZmljZScsICdTYW5kdWhyJywgJy9pbWFnZXMvb2ZmaWNlLzI2X2hvdXJnbGFzcy5wbmcnKSwNCiAg ICBAKCdzeXMtb2ZmaWNlLWNvaW5zLXN0YWNrJywgJ29mZmljZScsICdNw7xuemVuLVN0YXBlbCcs ICcvaW1hZ2VzL29mZmljZS8yN19jb2lucy1zdGFjay5wbmcnKSwNCiAgICBAKCdzeXMtb2ZmaWNl LWNoYXJ0cy11cC1kb3duJywgJ29mZmljZScsICdDaGFydHMgKGF1Zi9hYiknLCAnL2ltYWdlcy9v ZmZpY2UvMjhfY2hhcnRzLXVwLWRvd24ucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1nZWFycy1j b2dzJywgJ29mZmljZScsICdaYWhucsOkZGVyJywgJy9pbWFnZXMvb2ZmaWNlLzI5X2dlYXJzLWNv Z3MucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1saW5lLWNoYXJ0LXBvaW50cycsICdvZmZpY2Un LCAnTGluaWVuZGlhZ3JhbW0nLCAnL2ltYWdlcy9vZmZpY2UvMzBfbGluZS1jaGFydC1wb2ludHMu cG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1kb2N1bWVudC1lZGl0JywgJ29mZmljZScsICdEb2t1 bWVudCBiZWFyYmVpdGVuJywgJy9pbWFnZXMvb2ZmaWNlLzMxX2RvY3VtZW50LWVkaXQucG5nJyks DQogICAgQCgnc3lzLW9mZmljZS1wZW9wbGUtY2hhdC1idWJibGVzJywgJ29mZmljZScsICdDaGF0 LUJ1YmJsZXMnLCAnL2ltYWdlcy9vZmZpY2UvMzJfcGVvcGxlLWNoYXQtYnViYmxlcy5wbmcnKSwN CiAgICBAKCdzeXMtb2ZmaWNlLW1hZ25pZmllcicsICdvZmZpY2UnLCAnTHVwZScsICcvaW1hZ2Vz L29mZmljZS8zM19tYWduaWZpZXIucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1wZW9wbGUtZXhj aGFuZ2UnLCAnb2ZmaWNlJywgJ1BlcnNvbmVuLUF1c3RhdXNjaCcsICcvaW1hZ2VzL29mZmljZS8z NF9wZW9wbGUtZXhjaGFuZ2UucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS10YXJnZXQtY3Jvc3No YWlyJywgJ29mZmljZScsICdaaWVsc2NoZWliZScsICcvaW1hZ2VzL29mZmljZS8zNV90YXJnZXQt Y3Jvc3NoYWlyLnBuZycpLA0KICAgICMgUG9saXplaSAtIGVpbnNhdHotL2xhZ2UtL3ZlcnNhbW1s dW5ncy1zcGV6aWZpc2NoZSBTeW1ib2xlICgzMikNCiAgICBAKCdzeXMtcG9saXplaS1sYXB0b3At bWVnYWZvbicsICdwb2xpemVpJywgJ0xhcHRvcCAmIE1lZ2Fmb24nLCAnL2ltYWdlcy9wb2xpemVp LzAxX2xhcHRvcC1tZWdhZm9uLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLXBlcnNvbi1mdW5r Z2VyYWV0JywgJ3BvbGl6ZWknLCAnUGVyc29uIG1pdCBGdW5rZ2Vyw6R0JywgJy9pbWFnZXMvcG9s aXplaS8wMl9wZXJzb24tZnVua2dlcmFldC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1yYXVj aGdyYW5hdGUnLCAncG9saXplaScsICdSYXVjaGdyYW5hdGUnLCAnL2ltYWdlcy9wb2xpemVpLzAz X3JhdWNoZ3JhbmF0ZS5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1kZW1vbnN0cmFudC1mbGFn Z2UnLCAncG9saXplaScsICdEZW1vbnN0cmFudCBtaXQgRmxhZ2dlJywgJy9pbWFnZXMvcG9saXpl aS8wNF9kZW1vbnN0cmFudC1mbGFnZ2UucG5nJyksDQogICAgQCgnc3lzLXBvbGl6ZWktaGFlbmRl LXN0b3BwJywgJ3BvbGl6ZWknLCAnSMOkbmRlIC0gU3RvcHAnLCAnL2ltYWdlcy9wb2xpemVpLzA1 X2hhZW5kZS1zdG9wcC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1zcHJ1ZWhkb3NlLXdhcm51 bmcnLCAncG9saXplaScsICdTcHLDvGhkb3NlIC0gV2FybnVuZycsICcvaW1hZ2VzL3BvbGl6ZWkv MDZfc3BydWVoZG9zZS13YXJudW5nLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLWhlbG0tc3By ZWNoZXInLCAncG9saXplaScsICdIZWxtIC0gU3ByZWNoZXInLCAnL2ltYWdlcy9wb2xpemVpLzA3 X2hlbG0tc3ByZWNoZXIucG5nJyksDQogICAgQCgnc3lzLXBvbGl6ZWktZGVtb25zdHJhbnQtc2No aWxkJywgJ3BvbGl6ZWknLCAnRGVtb25zdHJhbnQgbWl0IFNjaGlsZCcsICcvaW1hZ2VzL3BvbGl6 ZWkvMDhfZGVtb25zdHJhbnQtc2NoaWxkLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLWZhdXN0 ZS1wcm90ZXN0JywgJ3BvbGl6ZWknLCAnRsOkdXN0ZSAtIFByb3Rlc3QnLCAnL2ltYWdlcy9wb2xp emVpLzA5X2ZhdXN0ZS1wcm90ZXN0LnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLXNjaGxhZ3N0 b2NrLWdla3JldXp0JywgJ3BvbGl6ZWknLCAnU2NobGFnc3RvY2sgZ2VrcmV1enQnLCAnL2ltYWdl cy9wb2xpemVpLzEwX3NjaGxhZ3N0b2NrLWdla3JldXp0LnBuZycpLA0KICAgIEAoJ3N5cy1wb2xp emVpLXByb3Rlc3RzY2hpbGQtZmF1c3QnLCAncG9saXplaScsICdQcm90ZXN0c2NoaWxkICYgRmF1 c3QnLCAnL2ltYWdlcy9wb2xpemVpLzExX3Byb3Rlc3RzY2hpbGQtZmF1c3QucG5nJyksDQogICAg QCgnc3lzLXBvbGl6ZWktbWVuc2NoZW4tdHJpYnVlbmUnLCAncG9saXplaScsICdNZW5zY2hlbiBh dWYgVHJpYsO8bmUnLCAnL2ltYWdlcy9wb2xpemVpLzEyX21lbnNjaGVuLXRyaWJ1ZW5lLnBuZycp LA0KICAgIEAoJ3N5cy1wb2xpemVpLW1lZ2Fmb24tbGF1dCcsICdwb2xpemVpJywgJ01lZ2Fmb24g LSBsYXV0JywgJy9pbWFnZXMvcG9saXplaS8xM19tZWdhZm9uLWxhdXQucG5nJyksDQogICAgQCgn c3lzLXBvbGl6ZWktbWVuc2NoZW5tZW5nZS1zY2hpbGRlcicsICdwb2xpemVpJywgJ01lbnNjaGVu bWVuZ2UgbWl0IFNjaGlsZGVybicsICcvaW1hZ2VzL3BvbGl6ZWkvMTRfbWVuc2NoZW5tZW5nZS1z Y2hpbGRlci5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1zdG9wcHNjaGlsZC1ib2RlbicsICdw b2xpemVpJywgJ1N0b3Bwc2NoaWxkIGFtIEJvZGVuJywgJy9pbWFnZXMvcG9saXplaS8xNV9zdG9w cHNjaGlsZC1ib2Rlbi5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1iYW5uZXItc3RvcHAnLCAn cG9saXplaScsICdCYW5uZXIgLSBTdG9wcCcsICcvaW1hZ2VzL3BvbGl6ZWkvMTZfYmFubmVyLXN0 b3BwLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLXN0b3BwLXBpbicsICdwb2xpemVpJywgJ1N0 b3BwLVBpbicsICcvaW1hZ2VzL3BvbGl6ZWkvMTdfc3RvcHAtcGluLnBuZycpLA0KICAgIEAoJ3N5 cy1wb2xpemVpLWRlbW9uc3RyYW50LWp1YmVsJywgJ3BvbGl6ZWknLCAnRGVtb25zdHJhbnQgLSBK dWJlbCcsICcvaW1hZ2VzL3BvbGl6ZWkvMThfZGVtb25zdHJhbnQtanViZWwucG5nJyksDQogICAg QCgnc3lzLXBvbGl6ZWktbGF1dHNwcmVjaGVyYm94ZW4nLCAncG9saXplaScsICdMYXV0c3ByZWNo ZXJib3hlbicsICcvaW1hZ2VzL3BvbGl6ZWkvMTlfbGF1dHNwcmVjaGVyYm94ZW4ucG5nJyksDQog ICAgQCgnc3lzLXBvbGl6ZWktZmF1c3QtZW5lcmdpZScsICdwb2xpemVpJywgJ0ZhdXN0IC0gRW5l cmdpZScsICcvaW1hZ2VzL3BvbGl6ZWkvMjBfZmF1c3QtZW5lcmdpZS5wbmcnKSwNCiAgICBAKCdz eXMtcG9saXplaS1hdXRvLWJsb2NrYWRlJywgJ3BvbGl6ZWknLCAnQXV0by1CbG9ja2FkZScsICcv aW1hZ2VzL3BvbGl6ZWkvMjFfYXV0by1ibG9ja2FkZS5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXpl aS1mYWhuZW50cmFlZ2VyJywgJ3BvbGl6ZWknLCAnRmFobmVudHLDpGdlcicsICcvaW1hZ2VzL3Bv bGl6ZWkvMjJfZmFobmVudHJhZWdlci5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1zcHJ1ZWhk b3NlLXdpcmt1bmcnLCAncG9saXplaScsICdTcHLDvGhkb3NlIC0gV2lya3VuZycsICcvaW1hZ2Vz L3BvbGl6ZWkvMjNfc3BydWVoZG9zZS13aXJrdW5nLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVp LW1lbnNjaGVua2V0dGUnLCAncG9saXplaScsICdNZW5zY2hlbmtldHRlJywgJy9pbWFnZXMvcG9s aXplaS8yNF9tZW5zY2hlbmtldHRlLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLWthbGVuZGVy LXN0b3BwJywgJ3BvbGl6ZWknLCAnS2FsZW5kZXIgLSBTdG9wcCcsICcvaW1hZ2VzL3BvbGl6ZWkv MjVfa2FsZW5kZXItc3RvcHAucG5nJyksDQogICAgQCgnc3lzLXBvbGl6ZWktaGFuZC1zdG9wcCcs ICdwb2xpemVpJywgJ0hhbmQgLSBTdG9wcCcsICcvaW1hZ2VzL3BvbGl6ZWkvMjZfaGFuZC1zdG9w cC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1tZWdhZm9uLWdyb3NzJywgJ3BvbGl6ZWknLCAn TWVnYWZvbiAtIGdyb8OfJywgJy9pbWFnZXMvcG9saXplaS8yN19tZWdhZm9uLWdyb3NzLnBuZycp LA0KICAgIEAoJ3N5cy1wb2xpemVpLWtvcGYtcnVmZXInLCAncG9saXplaScsICdLb3BmIC0gUnVm ZXInLCAnL2ltYWdlcy9wb2xpemVpLzI4X2tvcGYtcnVmZXIucG5nJyksDQogICAgQCgnc3lzLXBv bGl6ZWktZG9rdW1lbnQtc3RvcHAnLCAncG9saXplaScsICdEb2t1bWVudCAtIFN0b3BwJywgJy9p bWFnZXMvcG9saXplaS8yOV9kb2t1bWVudC1zdG9wcC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXpl aS1tZW5zY2hlbi1iYW5uZXInLCAncG9saXplaScsICdNZW5zY2hlbiAtIEJhbm5lcicsICcvaW1h Z2VzL3BvbGl6ZWkvMzBfbWVuc2NoZW4tYmFubmVyLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVp LWRlbW9uc3RyYW50LXBvZGVzdCcsICdwb2xpemVpJywgJ0RlbW9uc3RyYW50IC0gUG9kZXN0Jywg Jy9pbWFnZXMvcG9saXplaS8zMV9kZW1vbnN0cmFudC1wb2Rlc3QucG5nJyksDQogICAgQCgnc3lz LXBvbGl6ZWktbW9sb3Rvdy1jb2NrdGFpbCcsICdwb2xpemVpJywgJ01vbG90b3ctQ29ja3RhaWwn LCAnL2ltYWdlcy9wb2xpemVpLzMyX21vbG90b3ctY29ja3RhaWwucG5nJykNCikNCg0KZnVuY3Rp b24gRGVidWctTG9nKCRDYXRlZ29yeSwgJE1lc3NhZ2UpIHsNCiAgICBpZiAoLW5vdCAkc2NyaXB0 OkRlYnVnTG9nKSB7IHJldHVybiB9DQogICAgJHRzID0gR2V0LURhdGUgLUZvcm1hdCAnSEg6bW06 c3MuZmZmJw0KICAgIFdyaXRlLUhvc3QgIiAgWyR0c10gJCgkQ2F0ZWdvcnkuUGFkTGVmdCg4KSkg ICRNZXNzYWdlIg0KfQ0KDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEhJTEZTRlVOS1RJT05F Tg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpmdW5jdGlvbiBBZGQtU2VjdXJpdHlIZWFkZXJz KCRSZXNwb25zZSkgew0KICAgICMgQXVkaXQtSUktMiBGMzogQUNBTyBzcGllZ2VsdCBkZW4gUmVx dWVzdC1PcmlnaW4gKHNvZmVybiBpbiBXaGl0ZWxpc3QpLA0KICAgICMgc29uc3QgRmFsbGJhY2sg YXVmIGxvY2FsaG9zdC4gJHNjcmlwdDpDb3JzT3JpZ2luRHluYW1pYyB3aXJkIHBybw0KICAgICMg UmVxdWVzdCBpbSBMaXN0ZW5lci1Mb29wIGdlc2V0enQgKHNpZWhlIG5hY2ggJFJlcS1QYXJzaW5n KS4NCiAgICAkYWNhbyA9IGlmICgkc2NyaXB0OkNvcnNPcmlnaW5EeW5hbWljKSB7ICRzY3JpcHQ6 Q29yc09yaWdpbkR5bmFtaWMgfSBlbHNlIHsgJHNjcmlwdDpDb3JzT3JpZ2luIH0NCiAgICAkUmVz cG9uc2UuSGVhZGVycy5BZGQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICRhY2FvKQ0K ICAgICRSZXNwb25zZS5IZWFkZXJzLkFkZCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycs ICdHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBPUFRJT05TJykNCiAgICAkUmVzcG9uc2UuSGVhZGVy cy5BZGQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCAnQ29udGVudC1UeXBlJykNCiAg ICAkUmVzcG9uc2UuSGVhZGVycy5BZGQoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnMnLCAnbm9zbmlm ZicpDQogICAgJFJlc3BvbnNlLkhlYWRlcnMuQWRkKCdYLUZyYW1lLU9wdGlvbnMnLCAnU0FNRU9S SUdJTicpDQp9DQoNCiMgU2NocmVpYnQgQnl0ZXMgYXVmIGRlbiBIdHRwTGlzdGVuZXItT3V0cHV0 U3RyZWFtIHVuZCBiZWhhbmRlbHQNCiMgYWJnZWJyb2NoZW5lIENsaWVudC1Db25uZWN0aW9ucyB0 b2xlcmFudC4gSGludGVyZ3J1bmQ6IGluIEhUVFAuU1lTDQojIChrZXJuZWwtZHJpdmVyIGhpbnRl ciBIdHRwTGlzdGVuZXIpIHdpcmQgZWluIHZvbSBCcm93c2VyIGdlc2NobG9zc2VuZXINCiMgU29j a2V0LVdyaXRlIGFscyBJT0V4Y2VwdGlvbiBtaXQgIkRlciBhbmdlZ2ViZW5lIE5ldHp3ZXJrbmFt ZSBpc3QNCiMgbmljaHQgbWVociB2ZXJmdWVnYmFyIiAvICJBbiBleGlzdGluZyBjb25uZWN0aW9u IHdhcyBmb3JjaWJseSBjbG9zZWQiDQojIGdlbWVsZGV0LiBEYXMgaXN0IEtFSU4gU2VydmVyLUZl aGxlciAtLSBkZXIgQ2xpZW50IGlzdCBoYWx0IHdlZy4NCiMgV2lyIGxvZ2dlbiBkYXMgZWlubWFs IGFscyBIaW53ZWlzIHVuZCByZXR1cm5lbiBzdGlsbCwgZGFtaXQgZGVyDQojIHVtZ2ViZW5kZSBS ZXF1ZXN0LUxvb3AgbmljaHQgaW4gZWluZSA1MDAtS2Fza2FkZSBsYWV1ZnQgKGRpZSBpaHJlcnNl aXRzDQojIHdpZWRlciBhbSB0b3RlbiBTdHJlYW0gc2NoZWl0ZXJuIHd1ZXJkZSkuDQpmdW5jdGlv biBXcml0ZS1SZXNwb25zZUJ1ZmZlcigkUmVzcG9uc2UsIFtieXRlW11dJEJ1ZmZlcikgew0KICAg IHRyeSB7DQogICAgICAgICRSZXNwb25zZS5PdXRwdXRTdHJlYW0uV3JpdGUoJEJ1ZmZlciwgMCwg JEJ1ZmZlci5MZW5ndGgpDQogICAgICAgICRSZXNwb25zZS5PdXRwdXRTdHJlYW0uQ2xvc2UoKQ0K ICAgIH0gY2F0Y2ggW1N5c3RlbS5OZXQuSHR0cExpc3RlbmVyRXhjZXB0aW9uXSwgW1N5c3RlbS5J Ty5JT0V4Y2VwdGlvbl0sIFtTeXN0ZW0uT2JqZWN0RGlzcG9zZWRFeGNlcHRpb25dIHsNCiAgICAg ICAgV3JpdGUtU3RhcnR1cExvZyAiQ2xpZW50LUNvbm5lY3Rpb24gYWJnZWJyb2NoZW4gd2FlaHJl bmQgUmVzcG9uc2UtV3JpdGU6ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIg0KICAgICAgICB0cnkg eyAkUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkgfSBjYXRjaCB7fQ0KICAgIH0NCn0NCg0K ZnVuY3Rpb24gU2VuZC1Kc29uKCRSZXNwb25zZSwgJERhdGEsICRTdGF0dXNDb2RlID0gMjAwKSB7 DQogICAgQWRkLVNlY3VyaXR5SGVhZGVycyAkUmVzcG9uc2UNCiAgICAkUmVzcG9uc2UuU3RhdHVz Q29kZSA9ICRTdGF0dXNDb2RlDQogICAgJFJlc3BvbnNlLkNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0 aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnDQogICAgIyBXSUNIVElHOiBBcnJheXMgbWl0IDAgb2Rl ciAxIEVsZW1lbnQgZXhwbGl6aXQgYWxzIEFycmF5IHNlcmlhbGlzaWVyZW4NCiAgICBpZiAoJG51 bGwgLWVxICREYXRhKSB7DQogICAgICAgICRKc29uID0gJ251bGwnDQogICAgfSBlbHNlaWYgKCRE YXRhIC1pcyBbc3RyaW5nXSkgew0KICAgICAgICAkSnNvbiA9ICREYXRhDQogICAgfSBlbHNlIHsN CiAgICAgICAgJEpzb24gPSAkRGF0YSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAyNSAtQ29tcHJl c3MNCiAgICB9DQogICAgJEJ1ZmZlciA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR2V0 Qnl0ZXMoJEpzb24pDQogICAgJFJlc3BvbnNlLkNvbnRlbnRMZW5ndGg2NCA9ICRCdWZmZXIuTGVu Z3RoDQogICAgV3JpdGUtUmVzcG9uc2VCdWZmZXIgJFJlc3BvbnNlICRCdWZmZXINCn0NCg0KZnVu Y3Rpb24gU2VuZC1Kc29uUmF3KCRSZXNwb25zZSwgJFJhd0pzb24sICRTdGF0dXNDb2RlID0gMjAw KSB7DQogICAgQWRkLVNlY3VyaXR5SGVhZGVycyAkUmVzcG9uc2UNCiAgICAkUmVzcG9uc2UuU3Rh dHVzQ29kZSA9ICRTdGF0dXNDb2RlDQogICAgJFJlc3BvbnNlLkNvbnRlbnRUeXBlID0gJ2FwcGxp Y2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnDQogICAgJEJ1ZmZlciA9IFtTeXN0ZW0uVGV4dC5F bmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJFJhd0pzb24pDQogICAgJFJlc3BvbnNlLkNvbnRlbnRM ZW5ndGg2NCA9ICRCdWZmZXIuTGVuZ3RoDQogICAgV3JpdGUtUmVzcG9uc2VCdWZmZXIgJFJlc3Bv bnNlICRCdWZmZXINCn0NCg0KZnVuY3Rpb24gU2VuZC1FcnJvcigkUmVzcG9uc2UsICRNZXNzYWdl LCAkU3RhdHVzQ29kZSA9IDUwMCkgew0KICAgIFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsgZmVobGVy ID0gJE1lc3NhZ2UgfSAkU3RhdHVzQ29kZQ0KfQ0KDQpmdW5jdGlvbiBTZW5kLUZpbGUoJFJlc3Bv bnNlLCAkRmlsZVBhdGgpIHsNCiAgICBBZGQtU2VjdXJpdHlIZWFkZXJzICRSZXNwb25zZQ0KICAg ICRFeHQgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRFeHRlbnNpb24oJEZpbGVQYXRoKS5Ub0xvd2Vy KCkNCiAgICAkTWltZSA9IGlmICgkc2NyaXB0Ok1pbWVUeXBlcy5Db250YWluc0tleSgkRXh0KSkg eyAkc2NyaXB0Ok1pbWVUeXBlc1skRXh0XSB9IGVsc2UgeyAnYXBwbGljYXRpb24vb2N0ZXQtc3Ry ZWFtJyB9DQogICAgJFJlc3BvbnNlLkNvbnRlbnRUeXBlID0gJE1pbWUNCiAgICAkUmVzcG9uc2Uu SGVhZGVycy5BZGQoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJl dmFsaWRhdGUnKQ0KICAgICRSZXNwb25zZS5IZWFkZXJzLkFkZCgnUHJhZ21hJywgJ25vLWNhY2hl JykNCiAgICAkUmVzcG9uc2UuSGVhZGVycy5BZGQoJ0V4cGlyZXMnLCAnMCcpDQogICAgJFJlc3Bv bnNlLlN0YXR1c0NvZGUgPSAyMDANCiAgICAkQnl0ZXMgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFk QWxsQnl0ZXMoJEZpbGVQYXRoKQ0KICAgICRSZXNwb25zZS5Db250ZW50TGVuZ3RoNjQgPSAkQnl0 ZXMuTGVuZ3RoDQogICAgV3JpdGUtUmVzcG9uc2VCdWZmZXIgJFJlc3BvbnNlICRCeXRlcw0KfQ0K DQpmdW5jdGlvbiBTZW5kLUZpbGVBdHRhY2htZW50KCRSZXNwb25zZSwgJEZpbGVQYXRoLCAkRmls ZU5hbWUpIHsNCiAgICBBZGQtU2VjdXJpdHlIZWFkZXJzICRSZXNwb25zZQ0KICAgICRSZXNwb25z ZS5Db250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Jw0KICAgICRS ZXNwb25zZS5IZWFkZXJzLkFkZCgnQ29udGVudC1EaXNwb3NpdGlvbicsICJhdHRhY2htZW50OyBm aWxlbmFtZT1gIiRGaWxlTmFtZWAiIikNCiAgICAkUmVzcG9uc2UuU3RhdHVzQ29kZSA9IDIwMA0K ICAgICRCeXRlcyA9IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcygkRmlsZVBhdGgpDQog ICAgJFJlc3BvbnNlLkNvbnRlbnRMZW5ndGg2NCA9ICRCeXRlcy5MZW5ndGgNCiAgICBXcml0ZS1S ZXNwb25zZUJ1ZmZlciAkUmVzcG9uc2UgJEJ5dGVzDQp9DQoNCmZ1bmN0aW9uIFJlYWQtQm9keSgk UmVxdWVzdCkgew0KICAgICRMZW5ndGggPSAkUmVxdWVzdC5Db250ZW50TGVuZ3RoNjQNCiAgICBp ZiAoJExlbmd0aCAtZ3QgJHNjcmlwdDpNYXhCb2R5KSB7IHJldHVybiAkbnVsbCB9DQogICAgIyBX SUNIVElHOiBleHBsaXppdCBVVEYtOCBzdGF0dCAkUmVxdWVzdC5Db250ZW50RW5jb2RpbmcuIEJy b3dzZXIgc2VuZGVuDQogICAgIyBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24gKG9obmUg Y2hhcnNldCksIEh0dHBMaXN0ZW5lciBmYWVsbHQgZGFubg0KICAgICMgYXVmIGRlbiBTeXN0ZW0t RGVmYXVsdCAoZGUtREU6IFdpbmRvd3MtMTI1MikgenVydWVjayB1bmQgbWFuZ2VsdCBVbWxhdXRl Lg0KICAgICRSZWFkZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5TdHJlYW1SZWFkZXIoJFJlcXVl c3QuSW5wdXRTdHJlYW0sIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpDQogICAgJEJvZHkg PSAkUmVhZGVyLlJlYWRUb0VuZCgpDQogICAgJFJlYWRlci5DbG9zZSgpDQogICAgcmV0dXJuICRC b2R5DQp9DQoNCmZ1bmN0aW9uIFJlc29sdmUtU2FmZVBhdGgoJFJlbFBhdGgpIHsNCiAgICB0cnkg ew0KICAgICAgICAkRnVsbCA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBh dGggJFJvb3QgJFJlbFBhdGgpKQ0KICAgIH0gY2F0Y2ggew0KICAgICAgICByZXR1cm4gJG51bGwN CiAgICB9DQogICAgJFJvb3ROb3JtID0gJFJvb3QuVHJpbUVuZCgnXCcsJy8nKQ0KICAgIGlmICgt bm90ICgkRnVsbC5TdGFydHNXaXRoKCRSb290Tm9ybSwgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29u XTo6T3JkaW5hbElnbm9yZUNhc2UpKSkgew0KICAgICAgICByZXR1cm4gJG51bGwNCiAgICB9DQog ICAgcmV0dXJuICRGdWxsDQp9DQoNCmZ1bmN0aW9uIFJlYWQtSnNvbkZpbGUoJEZpbGVOYW1lKSB7 DQogICAgJFBhdGggPSBKb2luLVBhdGggJERhdGFEaXIgJEZpbGVOYW1lDQogICAgaWYgKC1ub3Qg KFRlc3QtUGF0aCAkUGF0aCkpIHsgcmV0dXJuICRudWxsIH0NCiAgICAkQ29udGVudCA9IFtTeXN0 ZW0uSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRQYXRoLCBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpV VEY4KQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRDb250ZW50KSkgeyBy ZXR1cm4gJG51bGwgfQ0KICAgIHJldHVybiAkQ29udGVudCB8IENvbnZlcnRGcm9tLUpzb24NCn0N Cg0KZnVuY3Rpb24gV3JpdGUtSnNvbkZpbGUoJEZpbGVOYW1lLCAkRGF0YSkgew0KICAgICRQYXRo ID0gSm9pbi1QYXRoICREYXRhRGlyICRGaWxlTmFtZQ0KICAgICRKc29uID0gJERhdGEgfCBDb252 ZXJ0VG8tSnNvbiAtRGVwdGggMjUNCiAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQo JFBhdGgsICRKc29uLCBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4KQ0KfQ0KDQojIENyb3Nz LXByb2Nlc3MgTG9jayBwZXIgTG9jay1GaWxlLiBWZXJoaW5kZXJ0LCBkYXNzIHp3ZWkgcGFyYWxs ZWxlIFNlcnZlcg0KIyAoei5CLiB6d2VpIFVzZXIgYXVmIGRlbXNlbGJlbiBOZXR6bGF1Zndlcmsp IGdsZWljaHplaXRpZyBkaWVzZWxiZSBEYXRlaQ0KIyByZWFkLW1vZGlmeS13cml0ZW4gdW5kIHNp Y2ggZGFiZWkgemVyc2NoaWVzc2VuLg0KZnVuY3Rpb24gSW52b2tlLVdpdGhGaWxlTG9jaygkTmFt ZSwgJEFjdGlvbiwgJE1heFdhaXRNcyA9IDUwMDAsICRTdGFsZUFmdGVyU2VjID0gMTApIHsNCiAg ICAkTG9ja1BhdGggPSBKb2luLVBhdGggJERhdGFEaXIgKCROYW1lICsgJy5sb2NrJykNCiAgICAk U3RhcnQgPSBHZXQtRGF0ZQ0KICAgIHdoaWxlICgkdHJ1ZSkgew0KICAgICAgICB0cnkgew0KICAg ICAgICAgICAgJFN0cmVhbSA9IFtTeXN0ZW0uSU8uRmlsZV06Ok9wZW4oJExvY2tQYXRoLCBbU3lz dGVtLklPLkZpbGVNb2RlXTo6Q3JlYXRlTmV3LCBbU3lzdGVtLklPLkZpbGVBY2Nlc3NdOjpXcml0 ZSwgW1N5c3RlbS5JTy5GaWxlU2hhcmVdOjpOb25lKQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAg ICAgICAgICAgICByZXR1cm4gJiAkQWN0aW9uDQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAg ICAgICAgICAgICAgICRTdHJlYW0uQ2xvc2UoKQ0KICAgICAgICAgICAgICAgIHRyeSB7IFJlbW92 ZS1JdGVtICRMb2NrUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfSBj YXRjaCB7fQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIFtTeXN0ZW0uSU8uSU9FeGNl cHRpb25dIHsNCiAgICAgICAgICAgIGlmICgoKEdldC1EYXRlKSAtICRTdGFydCkuVG90YWxNaWxs aXNlY29uZHMgLWd0ICRNYXhXYWl0TXMpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAiU3BlcnJl IGF1ZiAkTmFtZSBrb25udGUgbmljaHQgZXJsYW5ndCB3ZXJkZW4iDQogICAgICAgICAgICB9DQog ICAgICAgICAgICAjIFN0YWxlLUxvY2stRXJrZW5udW5nOiBhbHRlciBhbHMgTiBTZWt1bmRlbiAt PiBlbnRmZXJuZW4NCiAgICAgICAgICAgIGlmIChUZXN0LVBhdGggJExvY2tQYXRoKSB7DQogICAg ICAgICAgICAgICAgJEFnZSA9ICgoR2V0LURhdGUpIC0gKEdldC1JdGVtICRMb2NrUGF0aCkuTGFz dFdyaXRlVGltZSkuVG90YWxTZWNvbmRzDQogICAgICAgICAgICAgICAgaWYgKCRBZ2UgLWd0ICRT dGFsZUFmdGVyU2VjKSB7DQogICAgICAgICAgICAgICAgICAgIHRyeSB7IFJlbW92ZS1JdGVtICRM b2NrUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfSBjYXRjaCB7fQ0K ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIFN0YXJ0LVNsZWVwIC1NaWxsaXNlY29uZHMgNTANCiAgICAgICAg fQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gV3JpdGUtTG9nRWludHJhZygkQWt0aW9uLCAkRGV0YWls cykgew0KICAgICRMb2dQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdsb2didWNoLmpzb24nDQog ICAgJExvZyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgIGlm IChUZXN0LVBhdGggJExvZ1BhdGgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICRMb2dD b250ZW50ID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJExvZ1BhdGgsIFtTeXN0ZW0u VGV4dC5FbmNvZGluZ106OlVURjgpLlRyaW0oKQ0KICAgICAgICAgICAgaWYgKCRMb2dDb250ZW50 Lkxlbmd0aCAtZ3QgMSkgew0KICAgICAgICAgICAgICAgICRQYXJzZWQgPSAkTG9nQ29udGVudCB8 IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkRSBpbiBAKCRQYXJz ZWQpKSB7IFt2b2lkXSRMb2cuQWRkKCRFKSB9DQogICAgICAgICAgICB9DQogICAgICAgIH0gY2F0 Y2ggew0KICAgICAgICAgICAgIyBLb3JydXB0ZSBEYXRlaTogZWlubWFsaWcgc2ljaGVybiwgbWl0 IGxlZXJlciBMaXN0ZSB3ZWl0ZXJtYWNoZW4uDQogICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICAgICRiayA9ICRMb2dQYXRoICsgJy5rb3JydXB0XycgKyAoR2V0LURhdGUgLUZvcm1hdCAn eXl5eU1NZGRfSEhtbXNzJykNCiAgICAgICAgICAgICAgICBDb3B5LUl0ZW0gLUxpdGVyYWxQYXRo ICRMb2dQYXRoIC1EZXN0aW5hdGlvbiAkYmsgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNv bnRpbnVlDQogICAgICAgICAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAibG9nYnVjaC5qc29uIHdh ciBrYXB1dHQgLS0gZ2VzaWNoZXJ0IG5hY2ggJyRiaycsIExvZ2J1Y2ggd2lyZCBuZXUgYW5nZWxl Z3QiDQogICAgICAgICAgICB9IGNhdGNoIHt9DQogICAgICAgIH0NCiAgICB9DQogICAgJEVpbnRy YWcgPSBbb3JkZXJlZF1Aew0KICAgICAgICB6ZWl0c3RlbXBlbCA9IChHZXQtRGF0ZSAtRm9ybWF0 ICd5eXl5LU1NLWRkIEhIOm1tOnNzJykNCiAgICAgICAgYmVudXR6ZXIgICAgPSBHZXQtQWt0dWVs bGVyQmVudXR6ZXINCiAgICAgICAgYWt0aW9uICAgICAgPSAkQWt0aW9uDQogICAgfQ0KICAgIGlm ICgkRGV0YWlscykgew0KICAgICAgICBmb3JlYWNoICgkS2V5IGluICREZXRhaWxzLktleXMpIHsg JEVpbnRyYWdbJEtleV0gPSAkRGV0YWlsc1skS2V5XSB9DQogICAgfQ0KICAgIFt2b2lkXSRMb2cu QWRkKFtQU0N1c3RvbU9iamVjdF0kRWludHJhZykNCiAgICAjIFBTLTUuMS1RdWlyazogQ29udmVy dFRvLUpzb24gdW53cmFwcGVkIFNpbmdsZS1FbGVtZW50LUFycmF5cy4NCiAgICAjIERhaGVyIFNv bmRlcnBmYWQgZnVlciBDb3VudD09MS4NCiAgICBpZiAoJExvZy5Db3VudCAtZXEgMSkgew0KICAg ICAgICAkSnNvbiA9ICdbJyArIChDb252ZXJ0VG8tSnNvbiAtSW5wdXRPYmplY3QgJExvZ1swXSAt RGVwdGggMjUpICsgJ10nDQogICAgfSBlbHNlIHsNCiAgICAgICAgJEpzb24gPSBDb252ZXJ0VG8t SnNvbiAtSW5wdXRPYmplY3QgJExvZy5Ub0FycmF5KCkgLURlcHRoIDI1DQogICAgfQ0KICAgIFtT eXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkTG9nUGF0aCwgJEpzb24sIFtTeXN0ZW0uVGV4 dC5FbmNvZGluZ106OlVURjgpDQp9DQoNCmZ1bmN0aW9uIEdldC1Ba3R1ZWxsZXJCZW51dHplciB7 DQogICAgJERvbWFpbiA9IGlmICgkZW52OlVTRVJET01BSU4pIHsgJGVudjpVU0VSRE9NQUlOIH0g ZWxzZSB7ICcqJyB9DQogICAgcmV0dXJuICIkRG9tYWluXCRlbnY6VVNFUk5BTUUiDQp9DQoNCiMg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KIyBNZWRpZW4tVmVyd2FsdHVuZyAoQWRtaW4tVGFiICJNZWRpZW4iKQ0K IyBTdG9yYWdlOiBkYXRhL21lZGllbi88a2F0ZWdvcmllPi88aWQ+PGV4dD4gKyBNZXRhZGF0YSBp biBkYXRhL21lZGllbi5qc29uDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KZnVuY3Rpb24gR2V0LU1lZGll bkRpciB7DQogICAgJHAgPSBKb2luLVBhdGggJHNjcmlwdDpEYXRhRGlyICdtZWRpZW4nDQogICAg aWYgKC1ub3QgKFRlc3QtUGF0aCAkcCkpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAt UGF0aCAkcCAtRm9yY2UgfCBPdXQtTnVsbCB9DQogICAgcmV0dXJuICRwDQp9DQoNCmZ1bmN0aW9u IEdldC1NZWRpZW5LYXRlZ29yaWVLZXlzIHsNCiAgICAjIFNvdXJjZS1vZi1UcnV0aDogYWRtaW4u anNvbjptZWRpZW5LYXRlZ29yaWVuLiBGYWxsYmFjazogRGVmYXVsdHMuDQogICAgIyBTcGllZ2Vs IHZvbiBzZXJ2ZXIucHk6bWVkaWVuX2thdGVnb3JpZV9rZXlzIChBdWRpdC1JdGVyLUIpLg0KICAg IHRyeSB7DQogICAgICAgICRhZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAg ICAgIGlmICgkbnVsbCAtbmUgJGFkbWluIC1hbmQgJGFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNb J21lZGllbkthdGVnb3JpZW4nXSkgew0KICAgICAgICAgICAgJGtleXMgPSBAKCkNCiAgICAgICAg ICAgIGZvcmVhY2ggKCRrIGluIEAoJGFkbWluLm1lZGllbkthdGVnb3JpZW4pKSB7DQogICAgICAg ICAgICAgICAgaWYgKCRrIC1hbmQgJGsuUFNPYmplY3QuUHJvcGVydGllc1sna2V5J10pIHsNCiAg ICAgICAgICAgICAgICAgICAgJGtleSA9IChbc3RyaW5nXSRrLmtleSkuVHJpbSgpLlRvTG93ZXIo KQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJGtleSkgeyAka2V5cyArPSAka2V5IH0NCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJGtleXMuQ291bnQg LWd0IDApIHsgcmV0dXJuICRrZXlzIH0NCiAgICAgICAgfQ0KICAgIH0gY2F0Y2ggeyB9DQogICAg cmV0dXJuICRzY3JpcHQ6TWVkaWVuS2F0ZWdvcmllbkRlZmF1bHRzDQp9DQoNCmZ1bmN0aW9uIElu dm9rZS1NZWRpZW5TeXN0ZW1JbXBvcnRGYWxsc05vZXRpZyB7DQogICAgIyBTcGllZ2VsIHZvbiBz ZXJ2ZXIucHk6bWVkaWVuX3N5c3RlbV9pbXBvcnRpZXJlbl9mYWxsc19ub2V0aWcuDQogICAgIyBC ZWltIGVyc3RlbiBHRVQgL2FwaS9tZWRpZW4gd2VyZGVuIGRpZSBpbSBJbnZlbnRhciBkZWZpbmll cnRlbiAvaW1hZ2VzLy0NCiAgICAjIERhdGVpZW4gZWlubWFsaWcgaW4gbWVkaWVuLmpzb24gcmVn aXN0cmllcnQgKG1pdCBgcGZhZGAtRmVsZCwgb2huZSBEYXRlaS0NCiAgICAjIGtvcGllKS4gRGFu YWNoIG5vcm1hbCBlZGl0aWVyYmFyIC0gREVMRVRFIGVudGZlcm50IG51ciBkZW4gTWV0YS1FaW50 cmFnLA0KICAgICMgZGllIERhdGVpIGluIC9pbWFnZXMvIGJsZWlidCBsaWVnZW4uDQogICAgJG1l dGEgPSBSZWFkLU1lZGllbk1ldGENCiAgICBpZiAoJG1ldGEuUFNPYmplY3QuUHJvcGVydGllc1sn c3lzdGVtSW1wb3J0ZWRWMSddIC1hbmQgJG1ldGEuc3lzdGVtSW1wb3J0ZWRWMSkgew0KICAgICAg ICByZXR1cm4gJGZhbHNlDQogICAgfQ0KICAgICRiZXN0ZWhlbmRlID0gQHt9DQogICAgaWYgKCRt ZXRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ21lZGllbiddKSB7DQogICAgICAgIGZvcmVhY2ggKCRt IGluIEAoJG1ldGEubWVkaWVuKSkgew0KICAgICAgICAgICAgaWYgKCRtIC1hbmQgJG0uUFNPYmpl Y3QuUHJvcGVydGllc1snaWQnXSkgeyAkYmVzdGVoZW5kZVtbc3RyaW5nXSRtLmlkXSA9ICR0cnVl IH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICAkbmV1ID0gQCgpDQogICAgJGpldHp0ID0gR2V0LURh dGUgLUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycNCiAgICBmb3JlYWNoICgkZWludHJhZyBp biAkc2NyaXB0OlN5c3RlbU1lZGllbkludmVudGFyKSB7DQogICAgICAgICRtaWQgPSAkZWludHJh Z1swXTsgJGthdCA9ICRlaW50cmFnWzFdOyAkYmV6ID0gJGVpbnRyYWdbMl07ICRwZmFkID0gJGVp bnRyYWdbM10NCiAgICAgICAgaWYgKCRiZXN0ZWhlbmRlLkNvbnRhaW5zS2V5KCRtaWQpKSB7IGNv bnRpbnVlIH0NCiAgICAgICAgJHJlbCA9ICRwZmFkLlRyaW1TdGFydCgnLycpDQogICAgICAgICRm dWxsID0gSm9pbi1QYXRoICRzY3JpcHQ6Um9vdCAkcmVsDQogICAgICAgIGlmICgtbm90IChUZXN0 LVBhdGggJGZ1bGwpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJGZpID0gR2V0LUl0ZW0gJGZ1bGwg LUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUNCiAgICAgICAgaWYgKCRudWxsIC1lcSAkZmkp IHsgY29udGludWUgfQ0KICAgICAgICAkZXh0ID0gJGZpLkV4dGVuc2lvbi5Ub0xvd2VyKCkNCiAg ICAgICAgJG1pbWUgPSBpZiAoJHNjcmlwdDpNZWRpZW5TdWZmaXhadU1pbWUuQ29udGFpbnNLZXko JGV4dCkpIHsgJHNjcmlwdDpNZWRpZW5TdWZmaXhadU1pbWVbJGV4dF0gfSBlbHNlIHsgJ2FwcGxp Y2F0aW9uL29jdGV0LXN0cmVhbScgfQ0KICAgICAgICAkbmV1ICs9IFtQU0N1c3RvbU9iamVjdF1b b3JkZXJlZF1Aew0KICAgICAgICAgICAgaWQgICAgICAgICAgICAgID0gJG1pZA0KICAgICAgICAg ICAga2F0ZWdvcmllICAgICAgID0gJGthdA0KICAgICAgICAgICAgYmV6ZWljaG51bmcgICAgID0g JGJleg0KICAgICAgICAgICAgZGF0ZWluYW1lICAgICAgID0gJGZpLk5hbWUNCiAgICAgICAgICAg IG1pbWVUeXBlICAgICAgICA9ICRtaW1lDQogICAgICAgICAgICBncm9lc3NlICAgICAgICAgPSBb aW50NjRdJGZpLkxlbmd0aA0KICAgICAgICAgICAgcGZhZCAgICAgICAgICAgID0gJHBmYWQNCiAg ICAgICAgICAgIHN5c3RlbSAgICAgICAgICA9ICR0cnVlDQogICAgICAgICAgICBob2NoZ2VsYWRl bkFtICAgPSAkamV0enQNCiAgICAgICAgICAgIGhvY2hnZWxhZGVuVm9uICA9ICdzeXN0ZW0nDQog ICAgICAgIH0NCiAgICB9DQogICAgaWYgKC1ub3QgJG1ldGEuUFNPYmplY3QuUHJvcGVydGllc1sn bWVkaWVuJ10pIHsNCiAgICAgICAgJG1ldGEgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ cm9wZXJ0eSAtTmFtZSAnbWVkaWVuJyAtVmFsdWUgQCgpDQogICAgfQ0KICAgIGlmICgkbmV1LkNv dW50IC1ndCAwKSB7DQogICAgICAgICRtZXRhLm1lZGllbiA9IEAoQCgkbWV0YS5tZWRpZW4pICsg JG5ldSkNCiAgICB9DQogICAgaWYgKCRtZXRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N5c3RlbUlt cG9ydGVkVjEnXSkgew0KICAgICAgICAkbWV0YS5zeXN0ZW1JbXBvcnRlZFYxID0gJHRydWUNCiAg ICB9IGVsc2Ugew0KICAgICAgICAkbWV0YSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICdzeXN0ZW1JbXBvcnRlZFYxJyAtVmFsdWUgJHRydWUNCiAgICB9DQogICAg V3JpdGUtTWVkaWVuTWV0YSAkbWV0YQ0KICAgIHJldHVybiAoJG5ldS5Db3VudCAtZ3QgMCkNCn0N Cg0KZnVuY3Rpb24gUmVhZC1NZWRpZW5NZXRhIHsNCiAgICAkcCA9IEpvaW4tUGF0aCAkc2NyaXB0 OkRhdGFEaXIgJ21lZGllbi5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggJHApKSB7IHJl dHVybiBbUFNDdXN0b21PYmplY3RdQHsgbWVkaWVuID0gQCgpIH0gfQ0KICAgIHRyeSB7DQogICAg ICAgICRjb250ZW50ID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJHAsIFtTeXN0ZW0u VGV4dC5FbmNvZGluZ106OlVURjgpDQogICAgICAgIHJldHVybiAoJGNvbnRlbnQgfCBDb252ZXJ0 RnJvbS1Kc29uKQ0KICAgIH0gY2F0Y2ggew0KICAgICAgICByZXR1cm4gW1BTQ3VzdG9tT2JqZWN0 XUB7IG1lZGllbiA9IEAoKSB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1NZWRpZW5NZXRh KCRNZXRhKSB7DQogICAgJHAgPSBKb2luLVBhdGggJHNjcmlwdDpEYXRhRGlyICdtZWRpZW4uanNv bicNCiAgICAkSnNvbiA9IENvbnZlcnRUby1Kc29uIC1JbnB1dE9iamVjdCAkTWV0YSAtRGVwdGgg MTINCiAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQoJHAsICRKc29uLCBbU3lzdGVt LlRleHQuRW5jb2RpbmddOjpVVEY4KQ0KfQ0KDQpmdW5jdGlvbiBHZXQtTWVkaWVuUGZhZCgkRWlu dHJhZykgew0KICAgICMgTWl0IGBwZmFkYCAoVVJMLVBmYWQgcmVsYXRpdiB6dSAvKSAtPiBhdWYg c3RhdGlzY2hlcyBBc3NldCBhdWZsw7ZzZW4uDQogICAgIyBPaG5lIGBwZmFkYCAtPiBkYXRhL21l ZGllbi88a2F0ZWdvcmllPi88aWQ+PGV4dD4uDQogICAgaWYgKCRFaW50cmFnLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ3BmYWQnXSAtYW5kIC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShb c3RyaW5nXSRFaW50cmFnLnBmYWQpKSB7DQogICAgICAgICRyZWwgPSAoW3N0cmluZ10kRWludHJh Zy5wZmFkKS5UcmltU3RhcnQoJy8nKQ0KICAgICAgICByZXR1cm4gKEpvaW4tUGF0aCAkc2NyaXB0 OlJvb3QgJHJlbCkNCiAgICB9DQogICAgJGthdCA9IGlmICgkRWludHJhZy5rYXRlZ29yaWUpIHsg W3N0cmluZ10kRWludHJhZy5rYXRlZ29yaWUgfSBlbHNlIHsgJ3NvbnN0aWdlcycgfQ0KICAgICRt aW1lID0gaWYgKCRFaW50cmFnLm1pbWVUeXBlKSB7IFtzdHJpbmddJEVpbnRyYWcubWltZVR5cGUg fSBlbHNlIHsgJycgfQ0KICAgICRleHQgPSBpZiAoJHNjcmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVz LkNvbnRhaW5zS2V5KCRtaW1lKSkgeyAkc2NyaXB0Ok1lZGllbkVybGF1YnRlTWltZXNbJG1pbWVd IH0gZWxzZSB7ICcuYmluJyB9DQogICAgJGRpciA9IEpvaW4tUGF0aCAoR2V0LU1lZGllbkRpcikg JGthdA0KICAgIGlmICgtbm90IChUZXN0LVBhdGggJGRpcikpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBl IERpcmVjdG9yeSAtUGF0aCAkZGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0NCiAgICByZXR1cm4gKEpv aW4tUGF0aCAkZGlyIChbc3RyaW5nXSRFaW50cmFnLmlkICsgJGV4dCkpDQp9DQoNCmZ1bmN0aW9u IEdldC1NZWRpZW5JbWFnZXNPcmRuZXIoJEthdGVnb3JpZSkgew0KICAgICMgTGllZmVydCBkZW4g UGZhZCB6dSBJbWFnZXMvPGthdGVnb3JpZT4vLCBmYWxscyBhdWYgRGlzayB2b3JoYW5kZW4sIHNv bnN0ICRudWxsLg0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRLYXRlZ29y aWUpKSB7IHJldHVybiAkbnVsbCB9DQogICAgJHAgPSBKb2luLVBhdGggKEpvaW4tUGF0aCAkc2Ny aXB0OlJvb3QgJ0ltYWdlcycpICRLYXRlZ29yaWUNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFs UGF0aCAkcCAtUGF0aFR5cGUgQ29udGFpbmVyKSB7IHJldHVybiAkcCB9DQogICAgcmV0dXJuICRu dWxsDQp9DQoNCmZ1bmN0aW9uIEdldC1NZWRpZW5EYXRlaW5hbWVTYW5pdGl6ZSgkTmFtZSkgew0K ICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCROYW1lKSkgeyByZXR1cm4gJycg fQ0KICAgICRuID0gJE5hbWUuVHJpbSgpDQogICAgJG4gPSAkbiAtcmVwbGFjZSAnw6QnLCdhZScg LXJlcGxhY2UgJ8O2Jywnb2UnIC1yZXBsYWNlICfDvCcsJ3VlJw0KICAgICRuID0gJG4gLXJlcGxh Y2UgJ8OEJywnQWUnIC1yZXBsYWNlICfDlicsJ09lJyAtcmVwbGFjZSAnw5wnLCdVZScgLXJlcGxh Y2UgJ8OfJywnc3MnDQogICAgJG4gPSAkbiAtcmVwbGFjZSAnW15BLVphLXowLTkuXy1dKycsJ18n DQogICAgJG4gPSAkbiAtcmVwbGFjZSAnXysnLCdfJw0KICAgICRuID0gJG4uVHJpbSgnXycpLlRy aW0oJy4nKQ0KICAgIGlmICgkbi5MZW5ndGggLWd0IDEwMCkgeyAkbiA9ICRuLlN1YnN0cmluZygw LCAxMDApIH0NCiAgICByZXR1cm4gJG4NCn0NCg0KZnVuY3Rpb24gR2V0LU1lZGllbkJhc2VuYW1l QXVzVXBsb2FkKCREYXRlaW5hbWVPZGVyQmV6ZWljaG51bmcpIHsNCiAgICBpZiAoW3N0cmluZ106 OklzTnVsbE9yV2hpdGVTcGFjZSgkRGF0ZWluYW1lT2RlckJlemVpY2hudW5nKSkgeyByZXR1cm4g J21lZGl1bScgfQ0KICAgICRiYXNlID0gR2V0LU1lZGllbkRhdGVpbmFtZVNhbml0aXplICREYXRl aW5hbWVPZGVyQmV6ZWljaG51bmcNCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj ZSgkYmFzZSkpIHsgcmV0dXJuICdtZWRpdW0nIH0NCiAgICAkYmFzZUxvd2VyID0gJGJhc2UuVG9M b3dlcigpDQogICAgZm9yZWFjaCAoJGUgaW4gJHNjcmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVzLlZh bHVlcykgew0KICAgICAgICBpZiAoJGJhc2VMb3dlci5FbmRzV2l0aCgkZS5Ub0xvd2VyKCkpKSB7 DQogICAgICAgICAgICAkY3V0ID0gJGJhc2UuU3Vic3RyaW5nKDAsICRiYXNlLkxlbmd0aCAtICRl Lkxlbmd0aCkNCiAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRj dXQpKSB7IHJldHVybiAnbWVkaXVtJyB9DQogICAgICAgICAgICByZXR1cm4gJGN1dA0KICAgICAg ICB9DQogICAgfQ0KICAgIHJldHVybiAkYmFzZQ0KfQ0KDQpmdW5jdGlvbiBHZXQtTWVkaWVuRnJl aWVyRGF0ZWluYW1lKCRaaWVsb3JkbmVyLCAkQmFzZW5hbWUsICRFeHQpIHsNCiAgICAka2FuZGlk YXQgPSBKb2luLVBhdGggJFppZWxvcmRuZXIgKCRCYXNlbmFtZSArICRFeHQpDQogICAgaWYgKC1u b3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGthbmRpZGF0KSkgeyByZXR1cm4gJGthbmRpZGF0 IH0NCiAgICBmb3IgKCRpID0gMDsgJGkgLWx0IDIwOyAkaSsrKSB7DQogICAgICAgICRieXRlcyA9 IE5ldy1PYmplY3QgYnl0ZVtdIDINCiAgICAgICAgKE5ldy1PYmplY3QgU3lzdGVtLlNlY3VyaXR5 LkNyeXB0b2dyYXBoeS5STkdDcnlwdG9TZXJ2aWNlUHJvdmlkZXIpLkdldEJ5dGVzKCRieXRlcykN CiAgICAgICAgJHN1ZmZpeCA9IC1qb2luICgkYnl0ZXMgfCBGb3JFYWNoLU9iamVjdCB7ICd7MDp4 Mn0nIC1mICRfIH0pDQogICAgICAgICRrYW5kaWRhdCA9IEpvaW4tUGF0aCAkWmllbG9yZG5lciAo JEJhc2VuYW1lICsgJ18nICsgJHN1ZmZpeCArICRFeHQpDQogICAgICAgIGlmICgtbm90IChUZXN0 LVBhdGggLUxpdGVyYWxQYXRoICRrYW5kaWRhdCkpIHsgcmV0dXJuICRrYW5kaWRhdCB9DQogICAg fQ0KICAgIHRocm93ICdLb25udGUga2VpbmVuIGZyZWllbiBEYXRlaW5hbWVuIGZpbmRlbicNCn0N Cg0KZnVuY3Rpb24gTmV3LU1lZGllbklkIHsgcmV0dXJuIChbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0 cmluZygnTicpKSB9DQoNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgUk9MTEVOLUhJRVJBUkNI SUU6IHN1cGVyID4gZmFjaGF1ZnNpY2h0ID4gYWRtaW4gPiB1c2VyDQojIE5vdGZhbGwtU3VwZXJV c2VyLUxpc3RlIChzaWVoZSB1bnRlbikgaGViZWx0IGplZGUgYWRtaW4uanNvbiBhdXMsIGZhbGxz IGRpZQ0KIyBrYXB1dHQgaXN0LiBGYWNoYXVmc2ljaHRlbiBsZWJlbiBpbiBhZG1pbi5qc29uLmZh Y2hhdWZzaWNodGVuW10gdW5kIGR1ZXJmZW4NCiMgZnJlbWRlICsgUGZsaWNodC1aZWxsZW4gdWVi ZXJzY2hyZWliZW4gKHNpZWhlIFBoYXNlIEIpLg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpm dW5jdGlvbiBUZXN0LUlzdEZhY2hhdWZzaWNodCB7DQogICAgaWYgKFRlc3QtSXN0U3VwZXJVc2Vy KSB7IHJldHVybiAkdHJ1ZSB9DQogICAgIyBBdXRvOiBQZXJzb25lbiBtaXQgRnVua3Rpb24gIjEu IEVCIiBvZGVyICIxLiBFQiBWLiINCiAgICAkVXNlckxvd2VyID0gKFtzdHJpbmddJGVudjpVU0VS TkFNRSkuVG9Mb3dlcigpDQogICAgJEJlbkxvd2VyICA9IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIp LlRvTG93ZXIoKQ0KICAgICRrZW5udW5nZW4gPSBHZXQtUGVyc29uZW5LZW5udW5nZW5NaXRGdW5r dGlvbiBAKCcxLiBFQicsICcxLiBFQiBWLicpDQogICAgZm9yZWFjaCAoJGtuIGluICRrZW5udW5n ZW4pIHsNCiAgICAgICAgaWYgKCRrbiAtZXEgJFVzZXJMb3dlciAtb3IgJGtuIC1lcSAkQmVuTG93 ZXIpIHsgcmV0dXJuICR0cnVlIH0NCiAgICB9DQogICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAn YWRtaW4uanNvbicNCiAgICBpZiAoJG51bGwgLWVxICRBZG1pbiAtb3IgJG51bGwgLWVxICRBZG1p bi5mYWNoYXVmc2ljaHRlbikgeyByZXR1cm4gJGZhbHNlIH0NCiAgICBmb3JlYWNoICgkSyBpbiBA KCRBZG1pbi5mYWNoYXVmc2ljaHRlbikpIHsNCiAgICAgICAgJEtlbm51bmcgPSBpZiAoJEsgLWlz IFtQU0N1c3RvbU9iamVjdF0pIHsgW3N0cmluZ10kSy5ud0tlbm51bmcgfSBlbHNlIHsgW3N0cmlu Z10kSyB9DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRLZW5udW5n KSkgeyBjb250aW51ZSB9DQogICAgICAgIGlmICgkS2VubnVuZyAtaWVxICRlbnY6VVNFUk5BTUUg LW9yICRLZW5udW5nIC1pZXEgKEdldC1Ba3R1ZWxsZXJCZW51dHplcikpIHsgcmV0dXJuICR0cnVl IH0NCiAgICB9DQogICAgcmV0dXJuICRmYWxzZQ0KfQ0KDQpmdW5jdGlvbiBHZXQtVXNlclJvbGxl IHsNCiAgICBpZiAoVGVzdC1Jc3RTdXBlclVzZXIpICAgIHsgcmV0dXJuICdzdXBlcicgfQ0KICAg IGlmIChUZXN0LUlzdEZhY2hhdWZzaWNodCkgeyByZXR1cm4gJ2ZhY2hhdWZzaWNodCcgfQ0KICAg IGlmIChUZXN0LUlzdEFkbWluKSAgICAgICAgeyByZXR1cm4gJ2FkbWluJyB9DQogICAgcmV0dXJu ICd1c2VyJw0KfQ0KDQpmdW5jdGlvbiBUZXN0LURhcmZVZWJlcnNjaHJlaWJlbigkUm9sbGUpIHsN CiAgICByZXR1cm4gKCRSb2xsZSAtZXEgJ3N1cGVyJyAtb3IgJFJvbGxlIC1lcSAnZmFjaGF1ZnNp Y2h0JykNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBST0xMRU4tU1lOQzogUGVyc29u LUZ1bmt0aW9uIC0+IGFkbWluLnN1cGVyVXNlciAvIGFkbWluLmZhY2hhdWZzaWNodGVuDQojIFdp cmQgbmFjaCBQZXJzb24tQW5sZWdlbi8tQWVuZGVybiBhdWZnZXJ1ZmVuLiBFeHRlcm5lIChtYW51 ZWxsIGdlcGZsZWd0ZSkNCiMgRWludHJhZWdlIGJsZWliZW4gdW5hbmdldGFzdGV0Lg0KIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KDQokc2NyaXB0OlJvbGxlblN5bmNNYXBwaW5nID0gQHsNCiAgICAn REdMJyAgICAgID0gJ3N1cGVyVXNlcicNCiAgICAnMS4gRUInICAgID0gJ3N1cGVyVXNlcicNCiAg ICAnMS4gRUIgVi4nID0gJ2ZhY2hhdWZzaWNodGVuJw0KfQ0KDQpmdW5jdGlvbiBHZXQtUGVyc29u TmFjaG5hbWUoJFBlcnNvbikgew0KICAgIGlmICgkbnVsbCAtZXEgJFBlcnNvbikgeyByZXR1cm4g JycgfQ0KICAgIGlmICgkUGVyc29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hY2huYW1lJ10gLWFu ZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kUGVyc29uLm5hY2hu YW1lKSkgew0KICAgICAgICByZXR1cm4gKFtzdHJpbmddJFBlcnNvbi5uYWNobmFtZSkuVHJpbSgp DQogICAgfQ0KICAgIGlmICgkUGVyc29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hbWUnXSAtYW5k IC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRQZXJzb24ubmFtZSkp IHsNCiAgICAgICAgcmV0dXJuIChbc3RyaW5nXSRQZXJzb24ubmFtZSkuVHJpbSgpDQogICAgfQ0K ICAgIHJldHVybiAnJw0KfQ0KDQpmdW5jdGlvbiBHZXQtUGVyc29uVm9sbE5hbWUoJFBlcnNvbikg ew0KICAgICRuID0gR2V0LVBlcnNvbk5hY2huYW1lICRQZXJzb24NCiAgICAkdiA9IGlmICgkUGVy c29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Zvcm5hbWUnXSkgeyAoW3N0cmluZ10kUGVyc29uLnZv cm5hbWUpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo aXRlU3BhY2UoJG4pKSB7IHJldHVybiAnJyB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo aXRlU3BhY2UoJHYpKSB7IHJldHVybiAkbiB9DQogICAgcmV0dXJuICIkbiwgJHYiDQp9DQoNCmZ1 bmN0aW9uIFN5bmMtUm9sbGVuQXVzUGVyc29uZW4oJFBsYW51bmcsICRBZG1pbikgew0KICAgICMg TXV0YXRlcyAkQWRtaW4gaW4tcGxhY2UuIFJldHVybnMgJHRydWUgd2VubiBzaWNoIGV0d2FzIGdl YWVuZGVydCBoYXQuDQogICAgaWYgKCRudWxsIC1lcSAkQWRtaW4pIHsgcmV0dXJuICRmYWxzZSB9 DQogICAgJFNVID0gaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydzdXBlclVzZXInXSkg eyBAKCRBZG1pbi5zdXBlclVzZXIpIH0gZWxzZSB7IEAoKSB9DQogICAgJEZBID0gaWYgKCRBZG1p bi5QU09iamVjdC5Qcm9wZXJ0aWVzWydmYWNoYXVmc2ljaHRlbiddKSB7IEAoJEFkbWluLmZhY2hh dWZzaWNodGVuKSB9IGVsc2UgeyBAKCkgfQ0KDQogICAgJFBlcnNvbmVuQWt0aXYgPSBAKCkNCiAg ICBpZiAoJG51bGwgLW5lICRQbGFudW5nIC1hbmQgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGll c1sncGVyc29uZW4nXSkgew0KICAgICAgICBmb3JlYWNoICgkUCBpbiBAKCRQbGFudW5nLnBlcnNv bmVuKSkgew0KICAgICAgICAgICAgJEFrdGl2ID0gJHRydWUNCiAgICAgICAgICAgIGlmICgkUC5Q U09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddKSB7ICRBa3RpdiA9IFtib29sXSRQLmFrdGl2IH0N CiAgICAgICAgICAgIGlmICgkQWt0aXYpIHsgJFBlcnNvbmVuQWt0aXYgKz0gJFAgfQ0KICAgICAg ICB9DQogICAgfQ0KDQogICAgIyBJbmRleCBuYWNoIE5hbWUgKyBud0tlbm51bmcNCiAgICAkQnlO YW1lID0gQHt9DQogICAgJEJ5S2VubnVuZyA9IEB7fQ0KICAgIGZvcmVhY2ggKCRQIGluICRQZXJz b25lbkFrdGl2KSB7DQogICAgICAgICRObSA9IChHZXQtUGVyc29uVm9sbE5hbWUgJFApLlRvTG93 ZXIoKQ0KICAgICAgICBpZiAoJE5tKSB7ICRCeU5hbWVbJE5tXSA9ICRQIH0NCiAgICAgICAgJEtu ID0gaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ253S2VubnVuZyddKSB7IChbc3RyaW5nXSRQ Lm53S2VubnVuZykuVHJpbSgpLlRvTG93ZXIoKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlmICgk S24pIHsgJEJ5S2VubnVuZ1skS25dID0gJFAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIF9QYXNz dFp1UGVyc29uKCRFaW50cmFnLCAkQnlOYW1lLCAkQnlLZW5udW5nKSB7DQogICAgICAgIGlmICgk bnVsbCAtZXEgJEVpbnRyYWcpIHsgcmV0dXJuICRudWxsIH0NCiAgICAgICAgJE5tID0gaWYgKCRF aW50cmFnLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hbWUnXSkgeyAoW3N0cmluZ10kRWludHJhZy5u YW1lKS5UcmltKCkuVG9Mb3dlcigpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgJEtuID0gaWYgKCRF aW50cmFnLlBTT2JqZWN0LlByb3BlcnRpZXNbJ253S2VubnVuZyddKSB7IChbc3RyaW5nXSRFaW50 cmFnLm53S2VubnVuZykuVHJpbSgpLlRvTG93ZXIoKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlm ICgkS24gLWFuZCAkQnlLZW5udW5nLkNvbnRhaW5zS2V5KCRLbikpIHsgcmV0dXJuICRCeUtlbm51 bmdbJEtuXSB9DQogICAgICAgIGlmICgkTm0gLWFuZCAkQnlOYW1lLkNvbnRhaW5zS2V5KCRObSkp ICAgIHsgcmV0dXJuICRCeU5hbWVbJE5tXSB9DQogICAgICAgIHJldHVybiAkbnVsbA0KICAgIH0N Cg0KICAgICRHZWFlbmRlcnQgPSAkZmFsc2UNCg0KICAgICMgMSkgQmVzdGVoZW5kZSBFaW50cmFl Z2UgYmVyZWluaWdlbiAoU1UpDQogICAgJFNVTmV1ID0gQCgpDQogICAgZm9yZWFjaCAoJEUgaW4g JFNVKSB7DQogICAgICAgICRQYXNzUCA9IF9QYXNzdFp1UGVyc29uICRFICRCeU5hbWUgJEJ5S2Vu bnVuZw0KICAgICAgICBpZiAoJG51bGwgLWVxICRQYXNzUCkgew0KICAgICAgICAgICAgJFNVTmV1 ICs9ICRFICAgIyBleHRlcm4gLT4gYmVoYWx0ZW4NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICRGdW5rID0gaWYgKCRQYXNzUC5QU09iamVjdC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7 IFtzdHJpbmddJFBhc3NQLmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICRaaWVs ID0gJHNjcmlwdDpSb2xsZW5TeW5jTWFwcGluZ1skRnVua10NCiAgICAgICAgICAgIGlmICgkWmll bCAtZXEgJ3N1cGVyVXNlcicpIHsNCiAgICAgICAgICAgICAgICAjIG53S2VubnVuZyBlcmdhZW56 ZW4gZmFsbHMgZmVobHQNCiAgICAgICAgICAgICAgICAkSGF0S2VubnVuZyA9ICRFLlBTT2JqZWN0 LlByb3BlcnRpZXNbJ253S2VubnVuZyddIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0 ZVNwYWNlKFtzdHJpbmddJEUubndLZW5udW5nKQ0KICAgICAgICAgICAgICAgICRQS2VubnVuZyA9 IGlmICgkUGFzc1AuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgW3N0cmluZ10k UGFzc1AubndLZW5udW5nIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk SGF0S2VubnVuZyAtYW5kICRQS2VubnVuZykgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJEUu UFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgJEUubndLZW5udW5nID0gJFBLZW5u dW5nIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRFIHwgQWRkLU1lbWJlciAtTWVtYmVy VHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ253S2VubnVuZycgLVZhbHVlICRQS2VubnVuZyB9DQog ICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAkRUZ1bmsgPSBpZiAoJEUuUFNPYmplY3QuUHJvcGVydGllc1snZnVu a3Rpb24nXSkgeyBbc3RyaW5nXSRFLmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAg ICAgICBpZiAoJEZ1bmsgLWFuZCAkRUZ1bmsgLW5lICRGdW5rKSB7DQogICAgICAgICAgICAgICAg ICAgIGlmICgkRS5QU09iamVjdC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7ICRFLmZ1bmt0aW9u ID0gJEZ1bmsgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJEUgfCBBZGQtTWVtYmVyIC1N ZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZnVua3Rpb24nIC1WYWx1ZSAkRnVuayB9DQog ICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAkU1VOZXUgKz0gJEUNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAg ICAgICAgICAgICAgJEdlYWVuZGVydCA9ICR0cnVlICAgIyBGdW5rdGlvbiB2ZXJsb3JlbiAtPiBy YXVzDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgJFNVID0gJFNVTmV1DQoN CiAgICAjIDFiKSBGYWNoYXVmc2ljaHRlbiBiZXJlaW5pZ2VuDQogICAgJEZBTmV1ID0gQCgpDQog ICAgZm9yZWFjaCAoJEUgaW4gJEZBKSB7DQogICAgICAgICRQYXNzUCA9IF9QYXNzdFp1UGVyc29u ICRFICRCeU5hbWUgJEJ5S2VubnVuZw0KICAgICAgICBpZiAoJG51bGwgLWVxICRQYXNzUCkgew0K ICAgICAgICAgICAgJEZBTmV1ICs9ICRFDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAk RnVuayA9IGlmICgkUGFzc1AuUFNPYmplY3QuUHJvcGVydGllc1snZnVua3Rpb24nXSkgeyBbc3Ry aW5nXSRQYXNzUC5mdW5rdGlvbiB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAkWmllbCA9ICRz Y3JpcHQ6Um9sbGVuU3luY01hcHBpbmdbJEZ1bmtdDQogICAgICAgICAgICBpZiAoJFppZWwgLWVx ICdmYWNoYXVmc2ljaHRlbicpIHsNCiAgICAgICAgICAgICAgICAkSGF0S2VubnVuZyA9ICRFLlBT T2JqZWN0LlByb3BlcnRpZXNbJ253S2VubnVuZyddIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxs T3JXaGl0ZVNwYWNlKFtzdHJpbmddJEUubndLZW5udW5nKQ0KICAgICAgICAgICAgICAgICRQS2Vu bnVuZyA9IGlmICgkUGFzc1AuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgW3N0 cmluZ10kUGFzc1AubndLZW5udW5nIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICBpZiAo LW5vdCAkSGF0S2VubnVuZyAtYW5kICRQS2VubnVuZykgew0KICAgICAgICAgICAgICAgICAgICBp ZiAoJEUuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgJEUubndLZW5udW5nID0g JFBLZW5udW5nIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRFIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ253S2VubnVuZycgLVZhbHVlICRQS2VubnVu ZyB9DQogICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAkRUZ1bmsgPSBpZiAoJEUuUFNPYmplY3QuUHJvcGVydGll c1snZnVua3Rpb24nXSkgeyBbc3RyaW5nXSRFLmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAg ICAgICAgICAgICBpZiAoJEZ1bmsgLWFuZCAkRUZ1bmsgLW5lICRGdW5rKSB7DQogICAgICAgICAg ICAgICAgICAgIGlmICgkRS5QU09iamVjdC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7ICRFLmZ1 bmt0aW9uID0gJEZ1bmsgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJEUgfCBBZGQtTWVt YmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZnVua3Rpb24nIC1WYWx1ZSAkRnVu ayB9DQogICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAkRkFOZXUgKz0gJEUNCiAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgJEdlYWVuZGVydCA9ICR0cnVlDQogICAgICAgICAgICB9DQogICAg ICAgIH0NCiAgICB9DQogICAgJEZBID0gJEZBTmV1DQoNCiAgICAjIDIpIEZlaGxlbmRlIEVpbnRy YWVnZSBlcmdhZW56ZW4NCiAgICAkU1VTZWVuID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlv bnMuR2VuZXJpYy5IYXNoU2V0W3N0cmluZ10NCiAgICBmb3JlYWNoICgkRSBpbiAkU1UpIHsNCiAg ICAgICAgaWYgKCRudWxsIC1lcSAkRSkgeyBjb250aW51ZSB9DQogICAgICAgICRObSA9IGlmICgk RS5QU09iamVjdC5Qcm9wZXJ0aWVzWyduYW1lJ10pIHsgKFtzdHJpbmddJEUubmFtZSkuVHJpbSgp LlRvTG93ZXIoKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICRLbiA9IGlmICgkRS5QU09iamVjdC5Q cm9wZXJ0aWVzWydud0tlbm51bmcnXSkgeyAoW3N0cmluZ10kRS5ud0tlbm51bmcpLlRyaW0oKS5U b0xvd2VyKCkgfSBlbHNlIHsgJycgfQ0KICAgICAgICBpZiAoJE5tKSB7IFt2b2lkXSRTVVNlZW4u QWRkKCRObSkgfQ0KICAgICAgICBpZiAoJEtuKSB7IFt2b2lkXSRTVVNlZW4uQWRkKCRLbikgfQ0K ICAgIH0NCiAgICAkRkFTZWVuID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJp Yy5IYXNoU2V0W3N0cmluZ10NCiAgICBmb3JlYWNoICgkRSBpbiAkRkEpIHsNCiAgICAgICAgaWYg KCRudWxsIC1lcSAkRSkgeyBjb250aW51ZSB9DQogICAgICAgICRObSA9IGlmICgkRS5QU09iamVj dC5Qcm9wZXJ0aWVzWyduYW1lJ10pIHsgKFtzdHJpbmddJEUubmFtZSkuVHJpbSgpLlRvTG93ZXIo KSB9IGVsc2UgeyAnJyB9DQogICAgICAgICRLbiA9IGlmICgkRS5QU09iamVjdC5Qcm9wZXJ0aWVz Wydud0tlbm51bmcnXSkgeyAoW3N0cmluZ10kRS5ud0tlbm51bmcpLlRyaW0oKS5Ub0xvd2VyKCkg fSBlbHNlIHsgJycgfQ0KICAgICAgICBpZiAoJE5tKSB7IFt2b2lkXSRGQVNlZW4uQWRkKCRObSkg fQ0KICAgICAgICBpZiAoJEtuKSB7IFt2b2lkXSRGQVNlZW4uQWRkKCRLbikgfQ0KICAgIH0NCg0K ICAgIGZvcmVhY2ggKCRQIGluICRQZXJzb25lbkFrdGl2KSB7DQogICAgICAgICRGdW5rID0gaWYg KCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2Z1bmt0aW9uJ10pIHsgKFtzdHJpbmddJFAuZnVua3Rp b24pLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlmICgtbm90ICRzY3JpcHQ6Um9sbGVu U3luY01hcHBpbmcuQ29udGFpbnNLZXkoJEZ1bmspKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJFpp ZWwgPSAkc2NyaXB0OlJvbGxlblN5bmNNYXBwaW5nWyRGdW5rXQ0KICAgICAgICAkTm0gPSBHZXQt UGVyc29uVm9sbE5hbWUgJFANCiAgICAgICAgJE5tTG93ID0gJE5tLlRvTG93ZXIoKQ0KICAgICAg ICAkS25Mb3cgPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgKFtz dHJpbmddJFAubndLZW5udW5nKS5UcmltKCkuVG9Mb3dlcigpIH0gZWxzZSB7ICcnIH0NCiAgICAg ICAgJE5ldWVyRWludHJhZyA9IFtQU0N1c3RvbU9iamVjdF1Aew0KICAgICAgICAgICAgbmFtZSAg ICAgID0gJE5tDQogICAgICAgICAgICBud0tlbm51bmcgPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVy dGllc1snbndLZW5udW5nJ10pIHsgW3N0cmluZ10kUC5ud0tlbm51bmcgfSBlbHNlIHsgJycgfQ0K ICAgICAgICAgICAgZnVua3Rpb24gID0gJEZ1bmsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJFpp ZWwgLWVxICdzdXBlclVzZXInKSB7DQogICAgICAgICAgICBpZiAoJFNVU2Vlbi5Db250YWlucygk Tm1Mb3cpIC1vciAoJEtuTG93IC1hbmQgJFNVU2Vlbi5Db250YWlucygkS25Mb3cpKSkgeyBjb250 aW51ZSB9DQogICAgICAgICAgICAkU1UgKz0gJE5ldWVyRWludHJhZw0KICAgICAgICAgICAgW3Zv aWRdJFNVU2Vlbi5BZGQoJE5tTG93KQ0KICAgICAgICAgICAgaWYgKCRLbkxvdykgeyBbdm9pZF0k U1VTZWVuLkFkZCgkS25Mb3cpIH0NCiAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAg ICAgICB9IGVsc2VpZiAoJFppZWwgLWVxICdmYWNoYXVmc2ljaHRlbicpIHsNCiAgICAgICAgICAg IGlmICgkRkFTZWVuLkNvbnRhaW5zKCRObUxvdykgLW9yICgkS25Mb3cgLWFuZCAkRkFTZWVuLkNv bnRhaW5zKCRLbkxvdykpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICRGQSArPSAkTmV1ZXJF aW50cmFnDQogICAgICAgICAgICBbdm9pZF0kRkFTZWVuLkFkZCgkTm1Mb3cpDQogICAgICAgICAg ICBpZiAoJEtuTG93KSB7IFt2b2lkXSRGQVNlZW4uQWRkKCRLbkxvdykgfQ0KICAgICAgICAgICAg JEdlYWVuZGVydCA9ICR0cnVlDQogICAgICAgIH0NCiAgICB9DQoNCiAgICBpZiAoJEdlYWVuZGVy dCkgew0KICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N1cGVyVXNlcidd KSB7ICRBZG1pbi5zdXBlclVzZXIgPSBbb2JqZWN0W11dJFNVIH0NCiAgICAgICAgZWxzZSB7ICRB ZG1pbiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdzdXBlclVz ZXInIC1WYWx1ZSAoW29iamVjdFtdXSRTVSkgfQ0KICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0 LlByb3BlcnRpZXNbJ2ZhY2hhdWZzaWNodGVuJ10pIHsgJEFkbWluLmZhY2hhdWZzaWNodGVuID0g W29iamVjdFtdXSRGQSB9DQogICAgICAgIGVsc2UgeyAkQWRtaW4gfCBBZGQtTWVtYmVyIC1NZW1i ZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZmFjaGF1ZnNpY2h0ZW4nIC1WYWx1ZSAoW29iamVj dFtdXSRGQSkgfQ0KICAgIH0NCiAgICByZXR1cm4gJEdlYWVuZGVydA0KfQ0KDQpmdW5jdGlvbiBH ZXQtVmVyYmluZGxpY2hrZWl0QW5rZXIoJEFkbWluRGF0YSkgew0KICAgICMgTGllZmVydCBkYXMg RGF0ZVRpbWUgZGVzIGVyc3RlbiBUYWdlcywgYW4gZGVtIHJlZ3VsYWVyZSBVc2VyIHdpZWRlciBl ZGl0aWVyZW4gZHVlcmZlbi4NCiAgICAjICRudWxsIHdlbm4gZGFzIEZlbnN0ZXIgZGVha3Rpdmll cnQgaXN0Lg0KICAgIGlmICgkbnVsbCAtZXEgJEFkbWluRGF0YSkgeyByZXR1cm4gJG51bGwgfQ0K ICAgICR2ZiA9ICRBZG1pbkRhdGEuUFNPYmplY3QuUHJvcGVydGllc1sndmVyYmluZGxpY2hrZWl0 c2ZlbnN0ZXInXSB8IEZvckVhY2gtT2JqZWN0IHsgJF8uVmFsdWUgfSB8IFNlbGVjdC1PYmplY3Qg LUZpcnN0IDENCiAgICBpZiAoJG51bGwgLWVxICR2ZikgeyByZXR1cm4gJG51bGwgfQ0KICAgICRh a3RpdiA9ICRmYWxzZQ0KICAgIGlmICgkdmYuUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSkg eyAkYWt0aXYgPSBbYm9vbF0kdmYuYWt0aXYgfQ0KICAgIGlmICgtbm90ICRha3RpdikgeyByZXR1 cm4gJG51bGwgfQ0KICAgICRoZXV0ZSA9IChHZXQtRGF0ZSkuRGF0ZQ0KICAgICRlaW5oZWl0ID0g J3dvY2hlbicNCiAgICBpZiAoJHZmLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbmhlaXQnXSAtYW5k ICR2Zi5laW5oZWl0KSB7ICRlaW5oZWl0ID0gW3N0cmluZ10kdmYuZWluaGVpdCB9DQogICAgJHdl cnQgPSAyDQogICAgaWYgKCR2Zi5QU09iamVjdC5Qcm9wZXJ0aWVzWyd3ZXJ0J10gLWFuZCAkdmYu d2VydCkgeyAkd2VydCA9IFtpbnRdJHZmLndlcnQgfQ0KICAgIGlmICgkZWluaGVpdCAtZXEgJ3dv Y2hlbicpIHsNCiAgICAgICAgJHppZWwgPSAxDQogICAgICAgIGlmICgkdmYuUFNPYmplY3QuUHJv cGVydGllc1snd29jaGVuc3RhcnQnXSAtYW5kICR2Zi53b2NoZW5zdGFydCkgeyAkemllbCA9IFtp bnRdJHZmLndvY2hlbnN0YXJ0IH0NCiAgICAgICAgIyBQUyBEYXlPZldlZWs6IFN1bmRheT0wLCBN b25kYXk9MSwgLi4uLCBTYXR1cmRheT02IOKGkiBJU08gTW89MS4uU289Nw0KICAgICAgICAkaXNv VGFnID0gW2ludF0kaGV1dGUuRGF5T2ZXZWVrDQogICAgICAgIGlmICgkaXNvVGFnIC1lcSAwKSB7 ICRpc29UYWcgPSA3IH0NCiAgICAgICAgJGRpZmYgPSAoJHppZWwgLSAkaXNvVGFnICsgNykgJSA3 DQogICAgICAgIGlmICgkZGlmZiAtZXEgMCkgeyAkZGlmZiA9IDcgfQ0KICAgICAgICByZXR1cm4g JGhldXRlLkFkZERheXMoJGRpZmYgKyAkd2VydCAqIDcpDQogICAgfQ0KICAgIHJldHVybiAkaGV1 dGUuQWRkRGF5cygkd2VydCkNCn0NCg0KZnVuY3Rpb24gVGVzdC1EYXR1bUluVmVyYmluZGxpY2hr ZWl0KCREYXR1bUlzbywgJEFkbWluRGF0YSkgew0KICAgICRhbmtlciA9IEdldC1WZXJiaW5kbGlj aGtlaXRBbmtlciAkQWRtaW5EYXRhDQogICAgaWYgKCRudWxsIC1lcSAkYW5rZXIpIHsgcmV0dXJu ICRmYWxzZSB9DQogICAgdHJ5IHsgJGQgPSBbZGF0ZXRpbWVdOjpQYXJzZSgkRGF0dW1Jc28pIH0g Y2F0Y2ggeyByZXR1cm4gJGZhbHNlIH0NCiAgICByZXR1cm4gKCRkIC1sdCAkYW5rZXIpDQp9DQoN CmZ1bmN0aW9uIEdldC1FcnN0ZXJGcmVpZXJUYWdJc28oJEFkbWluRGF0YSkgew0KICAgICRhbmtl ciA9IEdldC1WZXJiaW5kbGljaGtlaXRBbmtlciAkQWRtaW5EYXRhDQogICAgaWYgKCRudWxsIC1l cSAkYW5rZXIpIHsgcmV0dXJuICRudWxsIH0NCiAgICByZXR1cm4gJGFua2VyLlRvU3RyaW5nKCd5 eXl5LU1NLWRkJykNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBaRUxMLUxPQ0sgU1lT VEVNIChQZXNzaW1pc3RpYyBMb2NraW5nIGF1ZiBaZWxsLUViZW5lKQ0KIyBTdG9yYWdlOiBkYXRh Ly5sb2Nrcy96ZWxsZV88WVlZWS1NTS1ERD5fPHBlcnNvbklkPi5sb2NrDQojIFN0YWxlIG5hY2gg NjBzIG9obmUgQnJvd3Nlci1IZWFydGJlYXQgKENyYXNoLVNjaHV0eikuDQojIEZvcmNlLUxvY2sg ZnVlciBGYWNoYXVmc2ljaHQvU3VwZXJVc2VyIChQaGFzZSBCNSkuDQojID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQoNCiRzY3JpcHQ6Q2VsbExvY2tEaXIgPSBKb2luLVBhdGggJERhdGFEaXIgJy5sb2Nr cycNCiRzY3JpcHQ6Q2VsbExvY2tTdGFsZVNlYyA9IDYwDQoNCmZ1bmN0aW9uIEluaXRpYWxpemUt Q2VsbExvY2tEaXIgew0KICAgIGlmICgtbm90IChUZXN0LVBhdGggJHNjcmlwdDpDZWxsTG9ja0Rp cikpIHsNCiAgICAgICAgdHJ5IHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAk c2NyaXB0OkNlbGxMb2NrRGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0gY2F0Y2gge30NCiAgICB9DQp9 DQoNCmZ1bmN0aW9uIEdldC1DZWxsTG9ja1BhdGgoJERhdHVtLCAkUGVyc29uSWQpIHsNCiAgICBJ bml0aWFsaXplLUNlbGxMb2NrRGlyDQogICAgIyBEYXR1bSArIFBlcnNvbklkIGtvZW5uZW4gbnVy IHNpY2hlcmUgWmVpY2hlbiBlbnRoYWx0ZW4gKFZhbGlkaWVydW5nIGltIEVuZHBvaW50KQ0KICAg ICRTYWZlID0gInplbGxlXyQoJERhdHVtKV8kKCRQZXJzb25JZCkubG9jayINCiAgICByZXR1cm4g Sm9pbi1QYXRoICRzY3JpcHQ6Q2VsbExvY2tEaXIgJFNhZmUNCn0NCg0KZnVuY3Rpb24gVGVzdC1M b2NrU2FmZUlkKCRXZXJ0KSB7DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo JFdlcnQpKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgIHJldHVybiAoJFdlcnQgLW1hdGNoICdeW0Et WmEtejAtOV9cLV0rJCcpDQp9DQoNCmZ1bmN0aW9uIFRlc3QtTG9ja1NhZmVEYXR1bSgkV2VydCkg ew0KICAgIHJldHVybiAoJFdlcnQgLW1hdGNoICdeXGR7NH0tXGR7Mn0tXGR7Mn0kJykNCn0NCg0K ZnVuY3Rpb24gUmVhZC1DZWxsTG9jaygkRGF0dW0sICRQZXJzb25JZCkgew0KICAgICRQYXRoID0g R2V0LUNlbGxMb2NrUGF0aCAkRGF0dW0gJFBlcnNvbklkDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0 aCAkUGF0aCkpIHsgcmV0dXJuICRudWxsIH0NCiAgICB0cnkgew0KICAgICAgICAkQ29udGVudCA9 IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRQYXRoLCBbU3lzdGVtLlRleHQuRW5jb2Rp bmddOjpVVEY4KQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQ29u dGVudCkpIHsgcmV0dXJuICRudWxsIH0NCiAgICAgICAgJExvY2sgPSAkQ29udGVudCB8IENvbnZl cnRGcm9tLUpzb24NCiAgICAgICAgJExhc3RCZWF0ID0gW0RhdGVUaW1lXTo6UGFyc2UoJExvY2su bGFzdEJlYXQpLlRvVW5pdmVyc2FsVGltZSgpDQogICAgICAgICRBZ2VTZWMgPSAoKEdldC1EYXRl KS5Ub1VuaXZlcnNhbFRpbWUoKSAtICRMYXN0QmVhdCkuVG90YWxTZWNvbmRzDQogICAgICAgIGlm ICgkQWdlU2VjIC1ndCAkc2NyaXB0OkNlbGxMb2NrU3RhbGVTZWMpIHsNCiAgICAgICAgICAgIHRy eSB7IFJlbW92ZS1JdGVtICRQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51 ZSB9IGNhdGNoIHt9DQogICAgICAgICAgICByZXR1cm4gJG51bGwNCiAgICAgICAgfQ0KICAgICAg ICByZXR1cm4gJExvY2sNCiAgICB9IGNhdGNoIHsNCiAgICAgICAgdHJ5IHsgUmVtb3ZlLUl0ZW0g JFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0gY2F0Y2gge30NCiAg ICAgICAgcmV0dXJuICRudWxsDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1DZWxsTG9jaygk TG9jaykgew0KICAgICRQYXRoID0gR2V0LUNlbGxMb2NrUGF0aCAkTG9jay5kYXR1bSAkTG9jay5w ZXJzb25JZA0KICAgICRKc29uID0gJExvY2sgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggNSAtQ29t cHJlc3MNCiAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQoJFBhdGgsICRKc29uLCBb U3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4KQ0KfQ0KDQpmdW5jdGlvbiBBY3F1aXJlLUNlbGxM b2NrKCREYXR1bSwgJFBlcnNvbklkLCAkVXNlcm5hbWUsICRSb2xsZSwgJEZvcmNlID0gJGZhbHNl KSB7DQogICAgJEV4aXN0aW5nID0gUmVhZC1DZWxsTG9jayAkRGF0dW0gJFBlcnNvbklkDQogICAg aWYgKCRudWxsIC1uZSAkRXhpc3RpbmcpIHsNCiAgICAgICAgJFNlbGJzdExvY2sgPSAoJEV4aXN0 aW5nLnVzZXJuYW1lIC1pZXEgJFVzZXJuYW1lKQ0KICAgICAgICBpZiAoLW5vdCAkU2VsYnN0TG9j ayAtYW5kIC1ub3QgJEZvcmNlKSB7DQogICAgICAgICAgICByZXR1cm4gQHsgb2sgPSAkZmFsc2U7 IGV4aXN0aW5nID0gJEV4aXN0aW5nIH0NCiAgICAgICAgfQ0KICAgICAgICAjIGVpZ2VuZXIgTG9j ayBvZGVyIEZvcmNlIC0+IHVlYmVyc2NocmVpYmVuIChhbHRlciBUb2tlbiB3aXJkIHVuZ3VlbHRp ZykNCiAgICB9DQogICAgJE5vdyA9IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJp bmcoJ28nKQ0KICAgICRMb2NrID0gW29yZGVyZWRdQHsNCiAgICAgICAgdG9rZW4gICAgPSBbR3Vp ZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQogICAgICAgIGRhdHVtICAgID0gJERhdHVtDQogICAg ICAgIHBlcnNvbklkID0gJFBlcnNvbklkDQogICAgICAgIHVzZXJuYW1lID0gJFVzZXJuYW1lDQog ICAgICAgIHJvbGxlICAgID0gJFJvbGxlDQogICAgICAgIGxvY2tlZEF0ID0gJE5vdw0KICAgICAg ICBsYXN0QmVhdCA9ICROb3cNCiAgICB9DQogICAgV3JpdGUtQ2VsbExvY2sgJExvY2sNCiAgICBp ZiAoJG51bGwgLW5lICRFeGlzdGluZyAtYW5kIC1ub3QgKCRFeGlzdGluZy51c2VybmFtZSAtaWVx ICRVc2VybmFtZSkpIHsNCiAgICAgICAgQWRkLUNoYW5nZUxvZ0VudHJ5ICdsb2NrX2ZvcmNlJyAk RGF0dW0gJFBlcnNvbklkICRudWxsICRVc2VybmFtZSAkUm9sbGUgQHsNCiAgICAgICAgICAgIHZl cmRyYWVuZ3QgPSAkRXhpc3RpbmcudXNlcm5hbWUNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1 cm4gQHsgb2sgPSAkdHJ1ZTsgbG9jayA9ICRMb2NrIH0NCn0NCg0KZnVuY3Rpb24gRmluZC1DZWxs TG9ja0J5VG9rZW4oJFRva2VuKSB7DQogICAgSW5pdGlhbGl6ZS1DZWxsTG9ja0Rpcg0KICAgIGlm IChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUb2tlbikpIHsgcmV0dXJuICRudWxsIH0N CiAgICBmb3JlYWNoICgkRiBpbiBHZXQtQ2hpbGRJdGVtIC1QYXRoICRzY3JpcHQ6Q2VsbExvY2tE aXIgLUZpbHRlciAnemVsbGVfKi5sb2NrJyAtRmlsZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250 aW51ZSkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgJExvY2sgPSBbU3lzdGVtLklPLkZp bGVdOjpSZWFkQWxsVGV4dCgkRi5GdWxsTmFtZSwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRG OCkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICBpZiAoJExvY2sudG9rZW4gLWVxICRU b2tlbikgeyByZXR1cm4gQHsgbG9jayA9ICRMb2NrOyBwYXRoID0gJEYuRnVsbE5hbWUgfSB9DQog ICAgICAgIH0gY2F0Y2gge30NCiAgICB9DQogICAgcmV0dXJuICRudWxsDQp9DQoNCmZ1bmN0aW9u IFJlZnJlc2gtQ2VsbExvY2soJFRva2VuKSB7DQogICAgJEZvdW5kID0gRmluZC1DZWxsTG9ja0J5 VG9rZW4gJFRva2VuDQogICAgaWYgKCRudWxsIC1lcSAkRm91bmQpIHsgcmV0dXJuIEB7IG9rID0g JGZhbHNlIH0gfQ0KICAgICRMb2NrID0gJEZvdW5kLmxvY2sNCiAgICAkTG9jay5sYXN0QmVhdCA9 IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgIFdyaXRlLUNl bGxMb2NrICRMb2NrDQogICAgcmV0dXJuIEB7IG9rID0gJHRydWU7IGxvY2sgPSAkTG9jayB9DQp9 DQoNCmZ1bmN0aW9uIFJlbGVhc2UtQ2VsbExvY2soJFRva2VuKSB7DQogICAgJEZvdW5kID0gRmlu ZC1DZWxsTG9ja0J5VG9rZW4gJFRva2VuDQogICAgaWYgKCRudWxsIC1lcSAkRm91bmQpIHsgcmV0 dXJuIEB7IG9rID0gJGZhbHNlIH0gfQ0KICAgIHRyeSB7IFJlbW92ZS1JdGVtICRGb3VuZC5wYXRo IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9IGNhdGNoIHt9DQogICAgcmV0 dXJuIEB7IG9rID0gJHRydWU7IGxvY2sgPSAkRm91bmQubG9jayB9DQp9DQoNCmZ1bmN0aW9uIEdl dC1BbGxBY3RpdmVDZWxsTG9ja3Mgew0KICAgIEluaXRpYWxpemUtQ2VsbExvY2tEaXINCiAgICAk UmVzdWx0ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgZm9y ZWFjaCAoJEYgaW4gR2V0LUNoaWxkSXRlbSAtUGF0aCAkc2NyaXB0OkNlbGxMb2NrRGlyIC1GaWx0 ZXIgJ3plbGxlXyoubG9jaycgLUZpbGUgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUpIHsN CiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICRMb2NrID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVh ZEFsbFRleHQoJEYuRnVsbE5hbWUsIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpIHwgQ29u dmVydEZyb20tSnNvbg0KICAgICAgICAgICAgJExhc3RCZWF0ID0gW0RhdGVUaW1lXTo6UGFyc2Uo JExvY2subGFzdEJlYXQpLlRvVW5pdmVyc2FsVGltZSgpDQogICAgICAgICAgICAkQWdlU2VjID0g KChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkgLSAkTGFzdEJlYXQpLlRvdGFsU2Vjb25kcw0K ICAgICAgICAgICAgaWYgKCRBZ2VTZWMgLWd0ICRzY3JpcHQ6Q2VsbExvY2tTdGFsZVNlYykgew0K ICAgICAgICAgICAgICAgIHRyeSB7IFJlbW92ZS1JdGVtICRGLkZ1bGxOYW1lIC1Gb3JjZSAtRXJy b3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9IGNhdGNoIHt9DQogICAgICAgICAgICAgICAgY29u dGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFt2b2lkXSRSZXN1bHQuQWRkKFtvcmRl cmVkXUB7DQogICAgICAgICAgICAgICAgZGF0dW0gICAgPSAkTG9jay5kYXR1bQ0KICAgICAgICAg ICAgICAgIHBlcnNvbklkID0gJExvY2sucGVyc29uSWQNCiAgICAgICAgICAgICAgICB1c2VybmFt ZSA9ICRMb2NrLnVzZXJuYW1lDQogICAgICAgICAgICAgICAgcm9sbGUgICAgPSAkTG9jay5yb2xs ZQ0KICAgICAgICAgICAgICAgIGxvY2tlZEF0ID0gJExvY2subG9ja2VkQXQNCiAgICAgICAgICAg ICAgICBsYXN0QmVhdCA9ICRMb2NrLmxhc3RCZWF0DQogICAgICAgICAgICB9KQ0KICAgICAgICB9 IGNhdGNoIHt9DQogICAgfQ0KICAgIHJldHVybiAsKFtvYmplY3RbXV0kUmVzdWx0LlRvQXJyYXko KSkNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBDSEFOR0UtTE9HIChJbi1NZW1vcnkt UmluZ2J1ZmZlciBmdWVyIExpdmUtU3luYy1Qb2xsaW5nLCBQaGFzZSBBNCkNCiMgQnJvd3NlciBw b2xsdCAvYXBpL3BsYW51bmcvY2hhbmdlcz9zZWl0PTxpc28tdHM+IGFsbGUgfjVzIHVuZCBtZXJn ZWQgRGVsdGFzLg0KIyBEYXRlaS1QZXJzaXN0ZW56IHVubm9ldGlnIC0gYmVpIFNlcnZlci1SZXN0 YXJ0IGxhZWQgQnJvd3NlciBlaCAvYXBpL3BsYW51bmcgbmV1Lg0KIyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KDQokc2NyaXB0OkNoYW5nZUxvZyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25z LkFycmF5TGlzdA0KJHNjcmlwdDpDaGFuZ2VMb2dNYXhTaXplID0gNTAwDQokc2NyaXB0OkNoYW5n ZUxvZ0xvY2sgPSBOZXctT2JqZWN0IE9iamVjdA0KDQpmdW5jdGlvbiBBZGQtQ2hhbmdlTG9nRW50 cnkoJEtpbmQsICREYXR1bSwgJFBlcnNvbklkLCAkTmV1ZXJXZXJ0LCAkVm9uLCAkUm9sbGUsICRF eHRyYSA9ICRudWxsKSB7DQogICAgJEVpbnRyYWcgPSBbb3JkZXJlZF1Aew0KICAgICAgICB0cyAg ICAgICA9IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAg ICBraW5kICAgICA9ICRLaW5kDQogICAgICAgIGRhdHVtICAgID0gJERhdHVtDQogICAgICAgIHBl cnNvbklkID0gJFBlcnNvbklkDQogICAgICAgIG5ldSAgICAgID0gJE5ldWVyV2VydA0KICAgICAg ICB2b24gICAgICA9ICRWb24NCiAgICAgICAgcm9sbGUgICAgPSAkUm9sbGUNCiAgICB9DQogICAg aWYgKCRFeHRyYSkgew0KICAgICAgICBmb3JlYWNoICgkSyBpbiAkRXh0cmEuS2V5cykgeyAkRWlu dHJhZ1skS10gPSAkRXh0cmFbJEtdIH0NCiAgICB9DQogICAgW1N5c3RlbS5UaHJlYWRpbmcuTW9u aXRvcl06OkVudGVyKCRzY3JpcHQ6Q2hhbmdlTG9nTG9jaykNCiAgICB0cnkgew0KICAgICAgICBb dm9pZF0kc2NyaXB0OkNoYW5nZUxvZy5BZGQoJEVpbnRyYWcpDQogICAgICAgIHdoaWxlICgkc2Ny aXB0OkNoYW5nZUxvZy5Db3VudCAtZ3QgJHNjcmlwdDpDaGFuZ2VMb2dNYXhTaXplKSB7DQogICAg ICAgICAgICAkc2NyaXB0OkNoYW5nZUxvZy5SZW1vdmVBdCgwKQ0KICAgICAgICB9DQogICAgfSBm aW5hbGx5IHsNCiAgICAgICAgW1N5c3RlbS5UaHJlYWRpbmcuTW9uaXRvcl06OkV4aXQoJHNjcmlw dDpDaGFuZ2VMb2dMb2NrKQ0KICAgIH0NCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBQ SEFTRSBHOiBUQU1QRVItU0NIVVRaIChITUFDIHBybyBFaW50cmFnKQ0KIyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KDQokc2NyaXB0OkludGVncml0eUtleUZpbGUgPSBKb2luLVBhdGggJERhdGFEaXIg Jy5pbnRlZ3JpdHlfa2V5Jw0KJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNoZSA9ICRudWxsDQokc2Ny aXB0OkludGVncml0eVZlcmlmeUNhY2hlID0gJG51bGwNCiRzY3JpcHQ6SW50ZWdyaXR5VmVyaWZ5 VHRsUyA9IDMwDQoNCmZ1bmN0aW9uIEdldC1JbnRlZ3JpdHlLZXkgew0KICAgIGlmICgkbnVsbCAt bmUgJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNoZSkgeyByZXR1cm4gJHNjcmlwdDpJbnRlZ3JpdHlL ZXlDYWNoZSB9DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkc2NyaXB0OkludGVncml0eUtleUZp bGUpKSB7DQogICAgICAgICRybmcgPSBOZXctT2JqZWN0IFN5c3RlbS5TZWN1cml0eS5DcnlwdG9n cmFwaHkuUk5HQ3J5cHRvU2VydmljZVByb3ZpZGVyDQogICAgICAgICRieXRlcyA9IE5ldy1PYmpl Y3QgYnl0ZVtdIDMyDQogICAgICAgICRybmcuR2V0Qnl0ZXMoJGJ5dGVzKQ0KICAgICAgICBbU3lz dGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQoJHNjcmlwdDpJbnRlZ3JpdHlLZXlGaWxlLCBbQ29u dmVydF06OlRvQmFzZTY0U3RyaW5nKCRieXRlcyksIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OkFT Q0lJKQ0KICAgIH0NCiAgICB0cnkgew0KICAgICAgICAkYjY0ID0gW1N5c3RlbS5JTy5GaWxlXTo6 UmVhZEFsbFRleHQoJHNjcmlwdDpJbnRlZ3JpdHlLZXlGaWxlLCBbU3lzdGVtLlRleHQuRW5jb2Rp bmddOjpBU0NJSSkuVHJpbSgpDQogICAgICAgICRzY3JpcHQ6SW50ZWdyaXR5S2V5Q2FjaGUgPSBb Q29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoJGI2NCkNCiAgICB9IGNhdGNoIHsNCiAgICAgICAg IyBLb3JydXB0IC0+IG5ldSBlcnpldWdlbg0KICAgICAgICAkcm5nID0gTmV3LU9iamVjdCBTeXN0 ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LlJOR0NyeXB0b1NlcnZpY2VQcm92aWRlcg0KICAgICAg ICAkYnl0ZXMgPSBOZXctT2JqZWN0IGJ5dGVbXSAzMg0KICAgICAgICAkcm5nLkdldEJ5dGVzKCRi eXRlcykNCiAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCRzY3JpcHQ6SW50 ZWdyaXR5S2V5RmlsZSwgW0NvbnZlcnRdOjpUb0Jhc2U2NFN0cmluZygkYnl0ZXMpLCBbU3lzdGVt LlRleHQuRW5jb2RpbmddOjpBU0NJSSkNCiAgICAgICAgJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNo ZSA9ICRieXRlcw0KICAgIH0NCiAgICByZXR1cm4gJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNoZQ0K fQ0KDQokc2NyaXB0OkhtYWNJbnN0YW5jZSA9ICRudWxsDQpmdW5jdGlvbiBDb21wdXRlLUhtYWNT dHIgew0KICAgIHBhcmFtKFtzdHJpbmdbXV0kUGFydHMpDQogICAgIyBITUFDLUluc3RhbnogbnVy IGVpbm1hbCBlcnpldWdlbiAobWFzc2l2ZSBCZXNjaGxldW5pZ3VuZyBiZWltIEJ1bGstU2lnbiku DQogICAgIyBITUFDU0hBMjU2IGlzdCBuaWNodCB0aHJlYWQtc2FmZSwgYWJlciB1bnNlciBTZXJ2 ZXIgaXN0IHNpbmdsZS10aHJlYWRlZC4NCiAgICBpZiAoJG51bGwgLWVxICRzY3JpcHQ6SG1hY0lu c3RhbmNlKSB7DQogICAgICAgICRzY3JpcHQ6SG1hY0luc3RhbmNlID0gTmV3LU9iamVjdCBTeXN0 ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LkhNQUNTSEEyNTYNCiAgICAgICAgJHNjcmlwdDpIbWFj SW5zdGFuY2UuS2V5ID0gKEdldC1JbnRlZ3JpdHlLZXkpDQogICAgfQ0KICAgICRtc2cgPSAoJFBh cnRzIC1qb2luICd8JykNCiAgICAkYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4 LkdldEJ5dGVzKCRtc2cpDQogICAgJGhhc2ggPSAkc2NyaXB0OkhtYWNJbnN0YW5jZS5Db21wdXRl SGFzaCgkYnl0ZXMpDQogICAgcmV0dXJuIChbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5n KCRoYXNoKSAtcmVwbGFjZSAnLScsICcnKS5Ub0xvd2VyKCkNCn0NCg0KZnVuY3Rpb24gQ29tcHV0 ZS1QbGFudW5nSW50ZWdyaXRhZXQoJFBsYW51bmcpIHsNCiAgICAjIFBlcmZvcm1hbmNlLU9wdGlt aWVydW5nIGZ1ZXIgUFMgNS4xOiBIYXNodGFibGVzIHN0YXR0IFBTT2JqZWN0ICsgQWRkLU1lbWJl ci4NCiAgICAjIEFkZC1NZW1iZXIgaXN0IGltIGlubmVyZW4gTG9vcCBzaWduaWZpa2FudCBsYW5n c2FtZXIgKE8obl4yKS1hZWhubGljaCkuDQogICAgIyBBbSBFbmRlIGVpbm1hbGlnIHZpYSBDb252 ZXJ0VG8tSnNvbiArIENvbnZlcnRGcm9tLUpzb24genUgUFNPYmplY3QgLSBkaWVzZQ0KICAgICMg Lk5FVC1pbnRlcm5hbCBLb252ZXJ0aWVydW5nIGlzdCBkZXV0bGljaCBzY2huZWxsZXIgYWxzIEFk ZC1NZW1iZXItTG9vcHMuDQogICAgJG91dCA9IEB7DQogICAgICAgIGVpbnRyYWVnZSAgPSBAe30N CiAgICAgICAgcGZsaWNodCAgICA9IEB7fQ0KICAgICAgICBrb21tZW50YXJlID0gQHt9DQogICAg ICAgIGRzbSAgICAgICAgPSBAe30NCiAgICB9DQogICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ2VpbnRyYWVnZSddKSB7DQogICAgICAgIGZvcmVhY2ggKCRkIGluICRQbGFudW5n LmVpbnRyYWVnZS5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAkZGF0dW0gPSAk ZC5OYW1lDQogICAgICAgICAgICAkcGVyT2JqID0gQHt9DQogICAgICAgICAgICBmb3JlYWNoICgk cCBpbiAkZC5WYWx1ZS5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgJHBl ck9ialskcC5OYW1lXSA9IENvbXB1dGUtSG1hY1N0ciBAKCd6ZWxsZScsICRkYXR1bSwgJHAuTmFt ZSwgW3N0cmluZ10kcC5WYWx1ZSkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRvdXQuZWlu dHJhZWdlWyRkYXR1bV0gPSAkcGVyT2JqDQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKCRQbGFu dW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQnXSkgew0KICAgICAgICBmb3JlYWNoICgk ZCBpbiAkUGxhbnVuZy5wZmxpY2h0LlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAg ICRkYXR1bSA9ICRkLk5hbWUNCiAgICAgICAgICAgICRwZXJPYmogPSBAe30NCiAgICAgICAgICAg IGZvcmVhY2ggKCRwIGluICRkLlZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAg ICAgICAgICBpZiAoW2Jvb2xdJHAuVmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgJHBlck9i alskcC5OYW1lXSA9IENvbXB1dGUtSG1hY1N0ciBAKCdwZmxpY2h0JywgJGRhdHVtLCAkcC5OYW1l LCAnMScpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJG91 dC5wZmxpY2h0WyRkYXR1bV0gPSAkcGVyT2JqDQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKCRQ bGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRhcmUnXSkgew0KICAgICAgICBmb3Jl YWNoICgkZCBpbiAkUGxhbnVuZy5rb21tZW50YXJlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAg ICAgICAgICAgICRkYXR1bSA9ICRkLk5hbWUNCiAgICAgICAgICAgICRwZXJPYmogPSBAe30NCiAg ICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRkLlZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsN CiAgICAgICAgICAgICAgICAkdmFsID0gJHAuVmFsdWUNCiAgICAgICAgICAgICAgICAkdHh0ID0g aWYgKCR2YWwgLWlzIFtzdHJpbmddKSB7IFtzdHJpbmddJHZhbCB9IGVsc2VpZiAoJHZhbC5QU09i amVjdC5Qcm9wZXJ0aWVzWyd0ZXh0J10pIHsgW3N0cmluZ10kdmFsLnRleHQgfSBlbHNlIHsgJycg fQ0KICAgICAgICAgICAgICAgIGlmICgkdHh0KSB7DQogICAgICAgICAgICAgICAgICAgICRwZXJP YmpbJHAuTmFtZV0gPSBDb21wdXRlLUhtYWNTdHIgQCgna29tbWVudGFyJywgJGRhdHVtLCAkcC5O YW1lLCAkdHh0KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICRvdXQua29tbWVudGFyZVskZGF0dW1dID0gJHBlck9iag0KICAgICAgICB9DQogICAgfQ0KICAg IGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydkc20nXSkgew0KICAgICAgICBmb3Jl YWNoICgkZCBpbiAkUGxhbnVuZy5kc20uUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAg ICAgaWYgKFtib29sXSRkLlZhbHVlKSB7DQogICAgICAgICAgICAgICAgJG91dC5kc21bJGQuTmFt ZV0gPSBDb21wdXRlLUhtYWNTdHIgQCgnZHNtJywgJGQuTmFtZSwgJzEnKQ0KICAgICAgICAgICAg fQ0KICAgICAgICB9DQogICAgfQ0KICAgICMgSGFzaHRhYmxlIC0+IFBTQ3VzdG9tT2JqZWN0IHZp YSBKU09OLVJvdW5kLVRyaXAgKG1hc3NpdiBzY2huZWxsZXIgYWxzIEFkZC1NZW1iZXIpLg0KICAg IHJldHVybiAoJG91dCB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAxMCAtQ29tcHJlc3MgfCBDb252 ZXJ0RnJvbS1Kc29uKQ0KfQ0KDQojIFNjaHJlaWJ0IHBsYW51bmcuanNvbiBtaXQgYWt0dWFsaXNp ZXJ0ZW4gSE1BQ3MuDQojICRCZXRyb2ZmZW5lID0gJG51bGwgIC0+IEFMTEUgSE1BQ3MgbmV1IChC dWxrOiBSZXNldC9EdW1teS9SZXN0b3JlKQ0KIyAkQmV0cm9mZmVuZSA9IExpc3RlICAtPiBOVVIg ZGllIGdlbmFubnRlbiBITUFDcyBha3R1YWxpc2llcmVuDQojIEZvcm1hdDogQCggQHtraW5kPSdl aW50cmFlZ2UnO2RhdHVtPScuLi4nO3BlcnNvbklkPScuLi4nfSwgLi4uICkNCmZ1bmN0aW9uIFdy aXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCgkUGxhbnVuZywgJEJldHJvZmZlbmUgPSAkbnVsbCkg ew0KICAgIGlmICgkbnVsbCAtZXEgJEJldHJvZmZlbmUpIHsNCiAgICAgICAgJFBsYW51bmcgfCBB ZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnX2ludGVncml0YWV0JyAt VmFsdWUgKENvbXB1dGUtUGxhbnVuZ0ludGVncml0YWV0ICRQbGFudW5nKSAtRm9yY2UNCiAgICB9 IGVsc2Ugew0KICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydf aW50ZWdyaXRhZXQnXSkgew0KICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1i ZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnX2ludGVncml0YWV0JyAtVmFsdWUgKFtQU0N1c3Rv bU9iamVjdF1bb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgIGVpbnRyYWVnZSA9IE5ldy1PYmpl Y3QgUFNPYmplY3Q7IHBmbGljaHQgPSBOZXctT2JqZWN0IFBTT2JqZWN0DQogICAgICAgICAgICAg ICAga29tbWVudGFyZSA9IE5ldy1PYmplY3QgUFNPYmplY3Q7IGRzbSA9IE5ldy1PYmplY3QgUFNP YmplY3QNCiAgICAgICAgICAgIH0pDQogICAgICAgIH0NCiAgICAgICAgJGludGVnID0gJFBsYW51 bmcuX2ludGVncml0YWV0DQogICAgICAgIGZvcmVhY2ggKCRyZWYgaW4gJEJldHJvZmZlbmUpIHsN CiAgICAgICAgICAgICRraW5kID0gW3N0cmluZ10kcmVmLmtpbmQNCiAgICAgICAgICAgICRkYXR1 bSA9IFtzdHJpbmddJHJlZi5kYXR1bQ0KICAgICAgICAgICAgJHBlcnNJZCA9IFtzdHJpbmddJHJl Zi5wZXJzb25JZA0KICAgICAgICAgICAgaWYgKC1ub3QgJGludGVnLlBTT2JqZWN0LlByb3BlcnRp ZXNbJGtpbmRdKSB7DQogICAgICAgICAgICAgICAgJGludGVnIHwgQWRkLU1lbWJlciAtTWVtYmVy VHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJGtpbmQgLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0 KQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGtpbmRPYmogPSAkaW50ZWcuJGtpbmQNCiAg ICAgICAgICAgIGlmICgka2luZCAtZXEgJ2VpbnRyYWVnZScpIHsNCiAgICAgICAgICAgICAgICAk d2VydCA9ICcnDQogICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRp ZXNbJ2VpbnRyYWVnZSddIC1hbmQgJFBsYW51bmcuZWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRp ZXNbJGRhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcuZWludHJhZWdl LiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAkd2VydCA9IFtzdHJpbmddJFBsYW51bmcuZWludHJhZWdlLiRkYXR1bS4kcGVyc0lk DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgaWYgKCR3ZXJ0KSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRraW5kT2JqLlBT T2JqZWN0LlByb3BlcnRpZXNbJGRhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGtp bmRPYmogfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkZGF0dW0g LVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICRoID0gQ29tcHV0ZS1IbWFjU3RyIEAoJ3plbGxlJywgJGRhdHVtLCAk cGVyc0lkLCAkd2VydCkNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRraW5kT2JqLiRkYXR1bS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7ICRraW5kT2JqLiRkYXR1bS4kcGVyc0lkID0g JGggfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJGtpbmRPYmouJGRhdHVtIHwgQWRkLU1l bWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJHBlcnNJZCAtVmFsdWUgJGggfQ0K ICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgka2luZE9i ai5QU09iamVjdC5Qcm9wZXJ0aWVzWyRkYXR1bV0gLWFuZCAka2luZE9iai4kZGF0dW0uUFNPYmpl Y3QuUHJvcGVydGllc1skcGVyc0lkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGtpbmRP YmouJGRhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRwZXJzSWQpDQogICAgICAgICAg ICAgICAgICAgICAgICBpZiAoQCgka2luZE9iai4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllcyku Q291bnQgLWVxIDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAka2luZE9iai5QU09i amVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkZGF0dW0pDQogICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 IGVsc2VpZiAoJGtpbmQgLWVxICdwZmxpY2h0Jykgew0KICAgICAgICAgICAgICAgICRmbGFnID0g JGZhbHNlDQogICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNb J3BmbGljaHQnXSAtYW5kICRQbGFudW5nLnBmbGljaHQuUFNPYmplY3QuUHJvcGVydGllc1skZGF0 dW1dKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5wZmxpY2h0LiRkYXR1bS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAk ZmxhZyA9IFtib29sXSRQbGFudW5nLnBmbGljaHQuJGRhdHVtLiRwZXJzSWQNCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJGZsYWcp IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJGtpbmRPYmouUFNPYmplY3QuUHJvcGVy dGllc1skZGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAka2luZE9iaiB8IEFkZC1N ZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRkYXR1bSAtVmFsdWUgKE5ldy1P YmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgJGggPSBDb21wdXRlLUhtYWNTdHIgQCgncGZsaWNodCcsICRkYXR1bSwgJHBlcnNJZCwgJzEn KQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJGtpbmRPYmouJGRhdHVtLlBTT2JqZWN0LlByb3Bl cnRpZXNbJHBlcnNJZF0pIHsgJGtpbmRPYmouJGRhdHVtLiRwZXJzSWQgPSAkaCB9DQogICAgICAg ICAgICAgICAgICAgIGVsc2UgeyAka2luZE9iai4kZGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJU eXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkcGVyc0lkIC1WYWx1ZSAkaCB9DQogICAgICAgICAgICAg ICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRraW5kT2JqLlBTT2JqZWN0LlBy b3BlcnRpZXNbJGRhdHVtXSAtYW5kICRraW5kT2JqLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVz WyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAka2luZE9iai4kZGF0dW0uUFNP YmplY3QuUHJvcGVydGllcy5SZW1vdmUoJHBlcnNJZCkNCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIChAKCRraW5kT2JqLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzKS5Db3VudCAtZXEgMCkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRraW5kT2JqLlBTT2JqZWN0LlByb3BlcnRp ZXMuUmVtb3ZlKCRkYXR1bSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZWlmICgka2lu ZCAtZXEgJ2tvbW1lbnRhcmUnKSB7DQogICAgICAgICAgICAgICAgJHR4dCA9ICcnDQogICAgICAg ICAgICAgICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRhcmUnXSAt YW5kICRQbGFudW5nLmtvbW1lbnRhcmUuUFNPYmplY3QuUHJvcGVydGllc1skZGF0dW1dKSB7DQog ICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5rb21tZW50YXJlLiRkYXR1bS5QU09iamVj dC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0g JFBsYW51bmcua29tbWVudGFyZS4kZGF0dW0uJHBlcnNJZA0KICAgICAgICAgICAgICAgICAgICAg ICAgIyBCYWNrd2FyZC1Db21wYXQ6IFN0cmluZyBvZGVyIHt0ZXh0LC4uLn0NCiAgICAgICAgICAg ICAgICAgICAgICAgICR0eHQgPSBpZiAoJHZhbCAtaXMgW3N0cmluZ10pIHsgW3N0cmluZ10kdmFs IH0gZWxzZWlmICgkdmFsLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RleHQnXSkgeyBbc3RyaW5nXSR2 YWwudGV4dCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCR0eHQpIHsNCiAgICAgICAgICAgICAgICAgICAg aWYgKC1ub3QgJGtpbmRPYmouUFNPYmplY3QuUHJvcGVydGllc1skZGF0dW1dKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAka2luZE9iaiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICRkYXR1bSAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgJGggPSBDb21wdXRlLUhtYWNTdHIg QCgna29tbWVudGFyJywgJGRhdHVtLCAkcGVyc0lkLCAkdHh0KQ0KICAgICAgICAgICAgICAgICAg ICBpZiAoJGtpbmRPYmouJGRhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBlcnNJZF0pIHsgJGtp bmRPYmouJGRhdHVtLiRwZXJzSWQgPSAkaCB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UgeyAk a2luZE9iai4kZGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFt ZSAkcGVyc0lkIC1WYWx1ZSAkaCB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICAgICAgICAgaWYgKCRraW5kT2JqLlBTT2JqZWN0LlByb3BlcnRpZXNbJGRhdHVtXSAtYW5k ICRraW5kT2JqLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAka2luZE9iai4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1v dmUoJHBlcnNJZCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAKCRraW5kT2JqLiRkYXR1 bS5QU09iamVjdC5Qcm9wZXJ0aWVzKS5Db3VudCAtZXEgMCkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRraW5kT2JqLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRkYXR1bSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZWlmICgka2luZCAtZXEgJ2RzbScpIHsNCiAgICAg ICAgICAgICAgICAkZmxhZyA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5Q U09iamVjdC5Qcm9wZXJ0aWVzWydkc20nXSAtYW5kICRQbGFudW5nLmRzbS5QU09iamVjdC5Qcm9w ZXJ0aWVzWyRkYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgJGZsYWcgPSBbYm9vbF0kUGxh bnVuZy5kc20uJGRhdHVtDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgk ZmxhZykgew0KICAgICAgICAgICAgICAgICAgICAkaCA9IENvbXB1dGUtSG1hY1N0ciBAKCdkc20n LCAkZGF0dW0sICcxJykNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRraW5kT2JqLlBTT2JqZWN0 LlByb3BlcnRpZXNbJGRhdHVtXSkgeyAka2luZE9iai4kZGF0dW0gPSAkaCB9DQogICAgICAgICAg ICAgICAgICAgIGVsc2UgeyAka2luZE9iaiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICRkYXR1bSAtVmFsdWUgJGggfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgICAgIGlmICgka2luZE9iai5QU09iamVjdC5Qcm9wZXJ0aWVzWyRk YXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRraW5kT2JqLlBTT2JqZWN0LlByb3Bl cnRpZXMuUmVtb3ZlKCRkYXR1bSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBXcml0ZS1Kc29uRmls ZSAncGxhbnVuZy5qc29uJyAkUGxhbnVuZw0KICAgICMgQXVkaXQtSUktMyBGNjogQ2FjaGUgaW52 YWxpZGllcmVuLCBkYW1pdCAvYXBpL2ludGVncml0YWV0L3N0YXR1cyBuaWNodA0KICAgICMgYmlz IHp1IDMwcyBsYW5nIHZlcmFsdGV0ZSBWZXJsZXR6dW5ncy1Db3VudHMgbGllZmVydC4NCiAgICAk c2NyaXB0OkludGVncml0eVZlcmlmeUNhY2hlID0gJG51bGwNCn0NCg0KZnVuY3Rpb24gVmVyaWZ5 LVBsYW51bmdJbnRlZ3JpdGFldCgkUGxhbnVuZykgew0KICAgIGlmICgkbnVsbCAtZXEgJFBsYW51 bmcpIHsgcmV0dXJuIEAoKSB9DQogICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVy dGllc1snX2ludGVncml0YWV0J10pIHsNCiAgICAgICAgcmV0dXJuIEAoW1BTQ3VzdG9tT2JqZWN0 XUB7DQogICAgICAgICAgICBraW5kID0gJ21pZ3JhdGlvbicNCiAgICAgICAgICAgIG1lbGR1bmcg PSAncGxhbnVuZy5qc29uIGhhdCBub2NoIGtlaW5lIEhNQUMtU2lnbmF0dXIuIFN1cGVyVXNlciBi aXR0ZSAiSW50ZWdyaXRhZXQgbmV1IHNpZ25pZXJlbiIgYXVzZnVlaHJlbi4nDQogICAgICAgIH0p DQogICAgfQ0KICAgICRzb2xsID0gQ29tcHV0ZS1QbGFudW5nSW50ZWdyaXRhZXQgJFBsYW51bmcN CiAgICAkaXN0ID0gJFBsYW51bmcuX2ludGVncml0YWV0DQogICAgJHZlcmxldHp1bmdlbiA9IE5l dy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgIGZvcmVhY2ggKCRraW5k IGluIEAoJ2VpbnRyYWVnZScsJ3BmbGljaHQnLCdrb21tZW50YXJlJywnZHNtJykpIHsNCiAgICAg ICAgJGlzdEtpbmQgID0gaWYgKCRpc3QuUFNPYmplY3QuUHJvcGVydGllc1ska2luZF0pICB7ICRp c3QuJGtpbmQgfSAgZWxzZSB7IE5ldy1PYmplY3QgUFNPYmplY3QgfQ0KICAgICAgICAkc29sbEtp bmQgPSBpZiAoJHNvbGwuUFNPYmplY3QuUHJvcGVydGllc1ska2luZF0pIHsgJHNvbGwuJGtpbmQg fSBlbHNlIHsgTmV3LU9iamVjdCBQU09iamVjdCB9DQogICAgICAgIGlmICgka2luZCAtZXEgJ2Rz bScpIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRzb2xsS2luZC5QU09iamVjdC5Qcm9w ZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgJGlzdFYgPSBpZiAoJGlzdEtpbmQuUFNPYmplY3Qu UHJvcGVydGllc1skcC5OYW1lXSkgeyBbc3RyaW5nXSRpc3RLaW5kLigkcC5OYW1lKSB9IGVsc2Ug eyAkbnVsbCB9DQogICAgICAgICAgICAgICAgaWYgKCRpc3RWIC1uZSBbc3RyaW5nXSRwLlZhbHVl KSB7DQogICAgICAgICAgICAgICAgICAgIFt2b2lkXSR2ZXJsZXR6dW5nZW4uQWRkKFtQU0N1c3Rv bU9iamVjdF1AeyBraW5kID0gJGtpbmQ7IGRhdHVtID0gJHAuTmFtZTsgZXJ3YXJ0ZXQgPSBbc3Ry aW5nXSRwLlZhbHVlOyBnZWZ1bmRlbiA9ICRpc3RWIH0pDQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJGlzdEtpbmQuUFNPYmplY3Qu UHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRzb2xsS2luZC5QU09iamVj dC5Qcm9wZXJ0aWVzWyRwLk5hbWVdKSB7DQogICAgICAgICAgICAgICAgICAgIFt2b2lkXSR2ZXJs ZXR6dW5nZW4uQWRkKFtQU0N1c3RvbU9iamVjdF1AeyBraW5kID0gJGtpbmQ7IGRhdHVtID0gJHAu TmFtZTsgZXJ3YXJ0ZXQgPSAkbnVsbDsgZ2VmdW5kZW4gPSBbc3RyaW5nXSRwLlZhbHVlOyBtZWxk dW5nID0gJ3ZlcndhaXN0ZXIgSE1BQycgfSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBmb3JlYWNoICgkZCBpbiAkc29sbEtp bmQuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICRpc3RQZXIgPSBpZiAo JGlzdEtpbmQuUFNPYmplY3QuUHJvcGVydGllc1skZC5OYW1lXSkgeyAkaXN0S2luZC4oJGQuTmFt ZSkgfSBlbHNlIHsgTmV3LU9iamVjdCBQU09iamVjdCB9DQogICAgICAgICAgICAgICAgZm9yZWFj aCAoJHAgaW4gJGQuVmFsdWUuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAg ICAgICAkaXN0ViA9IGlmICgkaXN0UGVyLlBTT2JqZWN0LlByb3BlcnRpZXNbJHAuTmFtZV0pIHsg W3N0cmluZ10kaXN0UGVyLigkcC5OYW1lKSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAg ICAgICAgIGlmICgkaXN0ViAtbmUgW3N0cmluZ10kcC5WYWx1ZSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgW3ZvaWRdJHZlcmxldHp1bmdlbi5BZGQoW1BTQ3VzdG9tT2JqZWN0XUB7IGtpbmQg PSAka2luZDsgZGF0dW0gPSAkZC5OYW1lOyBwZXJzb25JZCA9ICRwLk5hbWU7IGVyd2FydGV0ID0g W3N0cmluZ10kcC5WYWx1ZTsgZ2VmdW5kZW4gPSAkaXN0ViB9KQ0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yZWFj aCAoJGQgaW4gJGlzdEtpbmQuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAg ICRzb2xsUGVyID0gaWYgKCRzb2xsS2luZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRkLk5hbWVdKSB7 ICRzb2xsS2luZC4oJGQuTmFtZSkgfSBlbHNlIHsgTmV3LU9iamVjdCBQU09iamVjdCB9DQogICAg ICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJGQuVmFsdWUuUFNPYmplY3QuUHJvcGVydGllcykg ew0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkc29sbFBlci5QU09iamVjdC5Qcm9wZXJ0 aWVzWyRwLk5hbWVdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kdmVybGV0enVu Z2VuLkFkZChbUFNDdXN0b21PYmplY3RdQHsga2luZCA9ICRraW5kOyBkYXR1bSA9ICRkLk5hbWU7 IHBlcnNvbklkID0gJHAuTmFtZTsgZXJ3YXJ0ZXQgPSAkbnVsbDsgZ2VmdW5kZW4gPSBbc3RyaW5n XSRwLlZhbHVlOyBtZWxkdW5nID0gJ3ZlcndhaXN0ZXIgSE1BQycgfSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg IH0NCiAgICByZXR1cm4gLChbb2JqZWN0W11dJHZlcmxldHp1bmdlbi5Ub0FycmF5KCkpDQp9DQoN CmZ1bmN0aW9uIEludm9rZS1JbnRlZ3JpdGFldFBydWVmdW5nKFtib29sXSRGb3JjZSA9ICRmYWxz ZSkgew0KICAgICRub3cgPSAoR2V0LURhdGUpLlRvVW5pdmVyc2FsVGltZSgpDQogICAgaWYgKC1u b3QgJEZvcmNlIC1hbmQgJG51bGwgLW5lICRzY3JpcHQ6SW50ZWdyaXR5VmVyaWZ5Q2FjaGUpIHsN CiAgICAgICAgJGNhY2hlVHMgPSAkc2NyaXB0OkludGVncml0eVZlcmlmeUNhY2hlLnRzDQogICAg ICAgIGlmICgoJG5vdyAtICRjYWNoZVRzKS5Ub3RhbFNlY29uZHMgLWx0ICRzY3JpcHQ6SW50ZWdy aXR5VmVyaWZ5VHRsUykgew0KICAgICAgICAgICAgcmV0dXJuICRzY3JpcHQ6SW50ZWdyaXR5VmVy aWZ5Q2FjaGUuZXJnZWJuaXMNCiAgICAgICAgfQ0KICAgIH0NCiAgICAkUGxhbnVuZyA9IFJlYWQt SnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAkdmVybGV0enVuZ2VuID0gQCgpDQogICAgaWYg KCRudWxsIC1uZSAkUGxhbnVuZykgew0KICAgICAgICAkdmVybGV0enVuZ2VuID0gVmVyaWZ5LVBs YW51bmdJbnRlZ3JpdGFldCAkUGxhbnVuZw0KICAgIH0NCiAgICAkZXJnZWJuaXMgPSBbb3JkZXJl ZF1Aew0KICAgICAgICBvayAgICAgICAgICAgICAgICA9IChAKCR2ZXJsZXR6dW5nZW4pLkNvdW50 IC1lcSAwKQ0KICAgICAgICBsZXR6dGVWZXJpZmlrYXRpb24gPSAkbm93LlRvU3RyaW5nKCdvJykN CiAgICAgICAgdmVybGV0enVuZ2VuICAgICAgPSAkdmVybGV0enVuZ2VuDQogICAgICAgIGFuemFo bCAgICAgICAgICAgID0gQCgkdmVybGV0enVuZ2VuKS5Db3VudA0KICAgIH0NCiAgICAkc2NyaXB0 OkludGVncml0eVZlcmlmeUNhY2hlID0gQHsgdHMgPSAkbm93OyBlcmdlYm5pcyA9ICRlcmdlYm5p cyB9DQogICAgaWYgKEAoJHZlcmxldHp1bmdlbikuQ291bnQgLWd0IDAgLWFuZCAoJHZlcmxldHp1 bmdlblswXS5raW5kIC1uZSAnbWlncmF0aW9uJykpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAg ICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ21hbmlwdWxhdGlvbi5lcmthbm50JyBAew0KICAgICAgICAg ICAgICAgIGFuemFobCA9IEAoJHZlcmxldHp1bmdlbikuQ291bnQNCiAgICAgICAgICAgICAgICBi ZWlzcGllbCA9ICR2ZXJsZXR6dW5nZW5bMF0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBjYXRj aCB7fQ0KICAgICAgICB0cnkgeyBTZW5kLUludGVncml0YWV0c0FsYXJtICR2ZXJsZXR6dW5nZW4g fSBjYXRjaCB7fQ0KICAgIH0NCiAgICByZXR1cm4gJGVyZ2VibmlzDQp9DQoNCmZ1bmN0aW9uIFNl bmQtSW50ZWdyaXRhZXRzQWxhcm0oJFZlcmxldHp1bmdlbikgew0KICAgICRBZG1pbiA9IFJlYWQt SnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgaWYgKCRudWxsIC1lcSAkQWRtaW4pIHsgcmV0dXJu IH0NCiAgICAkRW1wZmFlbmdlciA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5 TGlzdA0KICAgIGZvcmVhY2ggKCRuYW1lIGluIEAoJ3N1cGVyVXNlcicsJ2ZhY2hhdWZzaWNodGVu JykpIHsNCiAgICAgICAgaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRuYW1lXSkgew0K ICAgICAgICAgICAgZm9yZWFjaCAoJGUgaW4gQCgkQWRtaW4uJG5hbWUpKSB7DQogICAgICAgICAg ICAgICAgJG1haWwgPSBpZiAoJGUuUFNPYmplY3QgLWFuZCAkZS5QU09iamVjdC5Qcm9wZXJ0aWVz WydlbWFpbCddKSB7IFtzdHJpbmddJGUuZW1haWwgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAg ICAgIGlmICgkbWFpbCkgew0KICAgICAgICAgICAgICAgICAgICBbdm9pZF0kRW1wZmFlbmdlci5B ZGQoQHsgbmFtZSA9IFtzdHJpbmddJGUubmFtZTsgZW1haWwgPSAkbWFpbCB9KQ0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoJEVtcGZh ZW5nZXIuQ291bnQgLWVxIDApIHsgcmV0dXJuIH0NCiAgICAkYmVpc3BpZWwgPSAkVmVybGV0enVu Z2VuWzBdIHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzIC1EZXB0aCA1DQogICAgJG5hY2hyaWNo dCA9ICI8c3Ryb25nPkFjaHR1bmc6PC9zdHJvbmc+ICQoJFZlcmxldHp1bmdlbi5Db3VudCkgbW9l Z2xpY2hlIE1hbmlwdWxhdGlvbihlbikgaW4gZGVyIFNjaGljaHRwbGFudW5nIGVya2FubnQuPGJy Pjxicj5FcnN0ZXMgQmVpc3BpZWw6IDxjb2RlPiRiZWlzcGllbDwvY29kZT48YnI+PGJyPkJpdHRl IGltIEFkbWluLVRhYiBwcnVlZmVuIHVuZCBnZ2YuIGRpZSBJbnRlZ3JpdGFldCBuZXUgc2lnbmll cmVuLiINCiAgICBmb3JlYWNoICgkZW0gaW4gJEVtcGZhZW5nZXIpIHsNCiAgICAgICAgdHJ5IHsg U2VuZC1BZW5kZXJ1bmdzTWFpbCAkZW0uZW1haWwgJGVtLm5hbWUgJ0ZMRDogTWFuaXB1bGF0aW9u IGluIGRlciBQbGFudW5nIGVya2FubnQnICRuYWNocmljaHQgfSBjYXRjaCB7fQ0KICAgIH0NCn0N Cg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBQSEFTRSBEOiBCYXNlbGluZS1Db21wbGlhbmNl IChXaXBlLVNjaHV0eiwgQmFja3VwLVJvdGF0aW9uLCBlcnJvcklkKQ0KIyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KDQpmdW5jdGlvbiBUZXN0LVdpcGVTY2h1dHooJEFsdGVMaXN0ZSwgJE5ldWVMaXN0 ZSwgJENvbmZpcm1SZXNldCA9ICRmYWxzZSkgew0KICAgICMgVmVyaGluZGVydCB2ZXJzZWhlbnRs aWNoZXMgTG9lc2NoZW4gZWluZXIgYmVmdWVsbHRlbiBMaXN0ZSBkdXJjaCBsZWVyZXMgUFVULg0K ICAgICMgQXVmcnVmZXIgbXVzcyBleHBsaXppdCBjb25maXJtUmVzZXQ9dHJ1ZSBtaXRnZWJlbiwg dW0gZWluZSBMaXN0ZSB6dSBsZWVyZW4uDQogICAgaWYgKEAoJE5ldWVMaXN0ZSkuQ291bnQgLWd0 IDApIHsgcmV0dXJuICR0cnVlIH0gICAjIGJlZnVlbGx0IC0+IG9rDQogICAgaWYgKEAoJEFsdGVM aXN0ZSkuQ291bnQgLWVxIDApIHsgcmV0dXJuICR0cnVlIH0gICAjIHdhciBlaCBsZWVyIC0+IG9r DQogICAgaWYgKCRDb25maXJtUmVzZXQpIHsgcmV0dXJuICR0cnVlIH0gICAgICAgICAgICAgICAj IGV4cGxpeml0IGJlc3RhZXRpZ3QgLT4gb2sNCiAgICByZXR1cm4gJGZhbHNlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJsb2NrDQp9DQoNCmZ1bmN0aW9uIEludm9rZS1C YWNrdXBSb3RhdGlvbigkR2xvYiwgJEJlaGFsdGVuID0gMjApIHsNCiAgICBHZXQtQ2hpbGRJdGVt IC1QYXRoICREYXRhRGlyIC1GaWx0ZXIgJEdsb2IgLUZpbGUgLUVycm9yQWN0aW9uIFNpbGVudGx5 Q29udGludWUgfA0KICAgICAgICBTb3J0LU9iamVjdCBMYXN0V3JpdGVUaW1lIC1EZXNjZW5kaW5n IHwNCiAgICAgICAgU2VsZWN0LU9iamVjdCAtU2tpcCAkQmVoYWx0ZW4gfA0KICAgICAgICBGb3JF YWNoLU9iamVjdCB7IHRyeSB7IFJlbW92ZS1JdGVtICRfLkZ1bGxOYW1lIC1Gb3JjZSAtRXJyb3JB Y3Rpb24gU2lsZW50bHlDb250aW51ZSB9IGNhdGNoIHt9IH0NCn0NCg0KZnVuY3Rpb24gTmV3LUVy cm9ySWQgeyByZXR1cm4gW0d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKSB9DQoNCmZ1bmN0aW9u IEdldC1DaGFuZ2VzU2luY2UoJElzb1RzKSB7DQogICAgW1N5c3RlbS5UaHJlYWRpbmcuTW9uaXRv cl06OkVudGVyKCRzY3JpcHQ6Q2hhbmdlTG9nTG9jaykNCiAgICB0cnkgew0KICAgICAgICBpZiAo W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkSXNvVHMpKSB7DQogICAgICAgICAgICByZXR1 cm4gLChbb2JqZWN0W11dJHNjcmlwdDpDaGFuZ2VMb2cuVG9BcnJheSgpKQ0KICAgICAgICB9DQog ICAgICAgIHRyeSB7ICRTZWl0ID0gW0RhdGVUaW1lXTo6UGFyc2UoJElzb1RzKS5Ub1VuaXZlcnNh bFRpbWUoKSB9IGNhdGNoIHsgcmV0dXJuICwoW29iamVjdFtdXUAoKSkgfQ0KICAgICAgICAkT3V0 ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgIGZvcmVh Y2ggKCRFIGluICRzY3JpcHQ6Q2hhbmdlTG9nKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAg ICAgICAgICAgICRUID0gW0RhdGVUaW1lXTo6UGFyc2UoJEUudHMpLlRvVW5pdmVyc2FsVGltZSgp DQogICAgICAgICAgICAgICAgaWYgKCRUIC1ndCAkU2VpdCkgeyBbdm9pZF0kT3V0LkFkZCgkRSkg fQ0KICAgICAgICAgICAgfSBjYXRjaCB7fQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiAsKFtv YmplY3RbXV0kT3V0LlRvQXJyYXkoKSkNCiAgICB9IGZpbmFsbHkgew0KICAgICAgICBbU3lzdGVt LlRocmVhZGluZy5Nb25pdG9yXTo6RXhpdCgkc2NyaXB0OkNoYW5nZUxvZ0xvY2spDQogICAgfQ0K fQ0KDQojIE5vdGZhbGwtU3VwZXJVc2VyOiBkaWVzZSBLZW5udW5nZW4gc2luZCBJTU1FUiBTdXBl clVzZXIsIGVnYWwgd2FzIGluDQojIGFkbWluLmpzb24gc3RlaHQuIFNjaHVldHp0IGRhdm9yLCBz aWNoIHNlbGJzdCB2ZXJzZWhlbnRsaWNoIGF1cyBkZXINCiMgU3VwZXJVc2VyLUxpc3RlIHJhdXN6 dW5laG1lbiAob2RlciBkdXJjaCBrYXB1dHRlIGFkbWluLmpzb24gYXVzenVzcGVycmVuKS4NCiRz Y3JpcHQ6Tm90ZmFsbFN1cGVyVXNlciA9IEAoJ05XMDUzNjA5JywgJ3JoaW5vJykNCg0KZnVuY3Rp b24gR2V0LVBlcnNvbmVuS2VubnVuZ2VuTWl0RnVua3Rpb24oW3N0cmluZ1tdXSRGdW5rdGlvbmVu KSB7DQogICAgJG91dCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSGFz aFNldFtzdHJpbmddDQogICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24n DQogICAgaWYgKCRudWxsIC1lcSAkUGxhbnVuZyAtb3IgJG51bGwgLWVxICRQbGFudW5nLnBlcnNv bmVuKSB7IHJldHVybiAkb3V0IH0NCiAgICAkZnVua1NldCA9IEB7fQ0KICAgIGZvcmVhY2ggKCRm IGluICRGdW5rdGlvbmVuKSB7ICRmdW5rU2V0WyRmLlRvTG93ZXIoKV0gPSAkdHJ1ZSB9DQogICAg Zm9yZWFjaCAoJHAgaW4gQCgkUGxhbnVuZy5wZXJzb25lbikpIHsNCiAgICAgICAgJGFrdGl2ID0g aWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgW2Jvb2xdJHAuYWt0aXYgfSBl bHNlIHsgJHRydWUgfQ0KICAgICAgICBpZiAoLW5vdCAkYWt0aXYpIHsgY29udGludWUgfQ0KICAg ICAgICAkZnVuayA9IGlmICgkcC5mdW5rdGlvbikgeyAoW3N0cmluZ10kcC5mdW5rdGlvbikuVG9M b3dlcigpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlmICgkZnVua1NldFskZnVua10p IHsNCiAgICAgICAgICAgICRrbiA9IGlmICgkcC5ud0tlbm51bmcpIHsgKFtzdHJpbmddJHAubndL ZW5udW5nKS5Ub0xvd2VyKCkuVHJpbSgpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgIGlmICgk a24pIHsgW3ZvaWRdJG91dC5BZGQoJGtuKSB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJu ICRvdXQNCn0NCg0KZnVuY3Rpb24gVGVzdC1Jc3RTdXBlclVzZXIgew0KICAgICRVc2VyID0gJGVu djpVU0VSTkFNRQ0KICAgIGlmICgkVXNlcikgew0KICAgICAgICAkVXNlckxvd2VyID0gJFVzZXIu VG9Mb3dlcigpDQogICAgICAgICMgMSkgTm90ZmFsbC1IYXJkY29kZQ0KICAgICAgICBmb3JlYWNo ICgkayBpbiAkc2NyaXB0Ok5vdGZhbGxTdXBlclVzZXIpIHsNCiAgICAgICAgICAgIGlmICgkay5U b0xvd2VyKCkgLWVxICRVc2VyTG93ZXIpIHsgcmV0dXJuICR0cnVlIH0NCiAgICAgICAgfQ0KICAg ICAgICAjIDIpIEF1dG86IFBlcnNvbmVuIG1pdCBGdW5rdGlvbiBER0wNCiAgICAgICAgJGtlbm51 bmdlbiA9IEdldC1QZXJzb25lbktlbm51bmdlbk1pdEZ1bmt0aW9uIEAoJ0RHTCcpDQogICAgICAg ICRCZW51dHplciA9IEdldC1Ba3R1ZWxsZXJCZW51dHplcg0KICAgICAgICBmb3JlYWNoICgka24g aW4gJGtlbm51bmdlbikgew0KICAgICAgICAgICAgaWYgKCRrbiAtZXEgJFVzZXJMb3dlciAtb3Ig JGtuIC1lcSAkQmVudXR6ZXIuVG9Mb3dlcigpKSB7IHJldHVybiAkdHJ1ZSB9DQogICAgICAgIH0N CiAgICB9DQogICAgIyAzKSBFeHBsaXppdGUgYWRtaW4uc3VwZXJVc2VyW10tTGlzdGUNCiAgICAk QWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgIGlmICgkbnVsbCAtZXEgJEFk bWluIC1vciAkbnVsbCAtZXEgJEFkbWluLnN1cGVyVXNlcikgeyByZXR1cm4gJGZhbHNlIH0NCiAg ICAkQmVudXR6ZXIgPSBHZXQtQWt0dWVsbGVyQmVudXR6ZXINCiAgICBmb3JlYWNoICgkU1UgaW4g QCgkQWRtaW4uc3VwZXJVc2VyKSkgew0KICAgICAgICAkS2VubnVuZyA9IFtzdHJpbmddJFNVLm53 S2VubnVuZw0KICAgICAgICBpZiAoJEtlbm51bmcgLWllcSAkZW52OlVTRVJOQU1FIC1vciAkS2Vu bnVuZyAtaWVxICRCZW51dHplcikgeyByZXR1cm4gJHRydWUgfQ0KICAgIH0NCiAgICByZXR1cm4g JGZhbHNlDQp9DQoNCmZ1bmN0aW9uIFRlc3QtSXN0QWRtaW4gew0KICAgICMgU3VwZXJVc2VyIGRh cmYgaW1tZXIgKE5vdGZhbGwtV2hpdGVsaXN0IE5XMDUzNjA5L3JoaW5vIGZhZWxsdCBuaWNodCBk dXJjaCkuDQogICAgaWYgKFRlc3QtSXN0U3VwZXJVc2VyKSB7IHJldHVybiAkdHJ1ZSB9DQogICAg IyBILjM6IGJlaSBrYXB1dHRlciAvIGZlaGxlbmRlciBhZG1pbi5qc29uIHdpcmQgZGllIFR1ZXIg TklDSFQgbWVociBhdXRvbWF0aXNjaA0KICAgICMgZ2VvZWZmbmV0LiBOb3RmYWxsLVN1cGVyVXNl ciBibGVpYnQgZGVyIGVpbnppZ2UgV2VnIHJlaW4uDQogICAgJEFkbWluID0gUmVhZC1Kc29uRmls ZSAnYWRtaW4uanNvbicNCiAgICBpZiAoJG51bGwgLWVxICRBZG1pbiAtb3IgJG51bGwgLWVxICRB ZG1pbi5hZG1pbktlbm51bmdlbikgeyByZXR1cm4gJGZhbHNlIH0NCiAgICAkQmVudXR6ZXIgPSBH ZXQtQWt0dWVsbGVyQmVudXR6ZXINCiAgICBmb3JlYWNoICgkSyBpbiAkQWRtaW4uYWRtaW5LZW5u dW5nZW4pIHsNCiAgICAgICAgaWYgKCRLIC1pZXEgJEJlbnV0emVyKSB7IHJldHVybiAkdHJ1ZSB9 DQogICAgfQ0KICAgIHJldHVybiAkZmFsc2UNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K IyBFLU1BSUwtQkVOQUNIUklDSFRJR1VORw0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpmdW5j dGlvbiBTdHJpcC1NYWlsSGVhZGVyKFtzdHJpbmddJFdlcnQpIHsNCiAgICAjIENSL0xGIGF1cyBI ZWFkZXItV2VydGVuIGVudGZlcm5lbiAtIFNjaHV0eiB2b3IgRS1NYWlsLUhlYWRlci1JbmplY3Rp b24uDQogICAgIyAuTkVUIE1haWxBZGRyZXNzIHdpcmZ0IHp3YXIgYmVpIENSTEYsIGFiZXIgRGVm ZW5zZS1pbi1EZXB0aC4NCiAgICBpZiAoJG51bGwgLWVxICRXZXJ0KSB7IHJldHVybiAnJyB9DQog ICAgcmV0dXJuICgkV2VydCAtcmVwbGFjZSAiW1xyXG5dIiwgJyAnKS5UcmltKCkNCn0NCg0KZnVu Y3Rpb24gU2VuZC1BZW5kZXJ1bmdzTWFpbCgkRW1wZmFlbmdlckVtYWlsLCAkRW1wZmFlbmdlck5h bWUsICRCZXRyZWZmLCAkTmFjaHJpY2h0KSB7DQogICAgdHJ5IHsNCiAgICAgICAgJEFkbWluID0g UmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgaWYgKCRudWxsIC1lcSAkQWRtaW4p IHsgcmV0dXJuIH0NCiAgICAgICAgJENmZyA9ICRBZG1pbi5lbWFpbEJlbmFjaHJpY2h0aWd1bmcN CiAgICAgICAgaWYgKCRudWxsIC1lcSAkQ2ZnIC1vciAtbm90ICRDZmcuYWt0aXYpIHsgcmV0dXJu IH0NCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJENmZy5zbXRwU2Vy dmVyKSAtb3IgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkRW1wZmFlbmdlckVtYWlsKSkg eyByZXR1cm4gfQ0KDQogICAgICAgICRTbXRwUG9ydCAgICAgPSBpZiAoJENmZy5zbXRwUG9ydCkg eyBbaW50XSRDZmcuc210cFBvcnQgfSBlbHNlIHsgNTg3IH0NCiAgICAgICAgJEFic2VuZGVyICAg ICA9IFN0cmlwLU1haWxIZWFkZXIgKFtzdHJpbmddJENmZy5hYnNlbmRlckFkcmVzc2UpDQogICAg ICAgICRBYnNlbmRlck5hbWUgPSBTdHJpcC1NYWlsSGVhZGVyICQoaWYgKCRDZmcuYWJzZW5kZXJO YW1lKSB7IFtzdHJpbmddJENmZy5hYnNlbmRlck5hbWUgfSBlbHNlIHsgJ1BsYW51bmcnIH0pDQog ICAgICAgICRFbXBmYWVuZ2VyRW1haWwgPSBTdHJpcC1NYWlsSGVhZGVyICRFbXBmYWVuZ2VyRW1h aWwNCiAgICAgICAgJEJldHJlZmYgICAgICA9IFN0cmlwLU1haWxIZWFkZXIgJEJldHJlZmYNCg0K ICAgICAgICAkSHRtbCA9IEAiDQo8aHRtbD48Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6U2Vnb2Ug VUksQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMkMzRTUwIj4NCjxoMyBzdHlsZT0iY29sb3I6IzJD M0U1MCI+RkxELVBsYW51bmcgJm1kYXNoOyAmQXVtbDtuZGVydW5nc21pdHRlaWx1bmc8L2gzPg0K PHA+SGFsbG8gJEVtcGZhZW5nZXJOYW1lLDwvcD4NCjxwPiROYWNocmljaHQ8L3A+DQo8cCBzdHls ZT0iY29sb3I6Izk1QTVBNjtmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjI0cHgiPg0KRGllc2Ug TmFjaHJpY2h0IHd1cmRlIGF1dG9tYXRpc2NoIGdlbmVyaWVydC4gQmVpIEZyYWdlbiB3ZW5kZW4g U2llIHNpY2ggYml0dGUgYW4gZGllIERpZW5zdHBsYW51bmcuPC9wPg0KPC9ib2R5PjwvaHRtbD4N CiJADQoNCiAgICAgICAgJFNtdHAgPSBOZXctT2JqZWN0IFN5c3RlbS5OZXQuTWFpbC5TbXRwQ2xp ZW50KCRDZmcuc210cFNlcnZlciwgJFNtdHBQb3J0KQ0KICAgICAgICAkU210cC5UaW1lb3V0ID0g NTAwMCAgIyA1IFNla3VuZGVuLCBkYW1pdCBlaW4gdG90ZXIgU01UUC1TZXJ2ZXIgZGVuIFNlcnZl ciBuaWNodCBibG9ja2llcnQNCiAgICAgICAgaWYgKCRTbXRwUG9ydCAtZXEgNTg3KSB7ICRTbXRw LkVuYWJsZVNzbCA9ICR0cnVlIH0NCiAgICAgICAgJEJlbnV0emVyID0gW3N0cmluZ10kQ2ZnLnNt dHBCZW51dHplcg0KICAgICAgICAkUGFzc3dvcnQgPSBbc3RyaW5nXSRDZmcuc210cFBhc3N3b3J0 DQogICAgICAgIGlmICgkQmVudXR6ZXIgLWFuZCAkUGFzc3dvcnQpIHsNCiAgICAgICAgICAgICRT bXRwLkNyZWRlbnRpYWxzID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0Lk5ldHdvcmtDcmVkZW50aWFs KCRCZW51dHplciwgJFBhc3N3b3J0KQ0KICAgICAgICB9DQogICAgICAgICRNc2cgPSBOZXctT2Jq ZWN0IFN5c3RlbS5OZXQuTWFpbC5NYWlsTWVzc2FnZQ0KICAgICAgICAkTXNnLkZyb20gPSBOZXct T2JqZWN0IFN5c3RlbS5OZXQuTWFpbC5NYWlsQWRkcmVzcygkQWJzZW5kZXIsICRBYnNlbmRlck5h bWUpDQogICAgICAgICRNc2cuVG8uQWRkKCRFbXBmYWVuZ2VyRW1haWwpDQogICAgICAgICRNc2cu U3ViamVjdCA9ICRCZXRyZWZmDQogICAgICAgICRNc2cuQm9keSA9ICRIdG1sDQogICAgICAgICRN c2cuSXNCb2R5SHRtbCA9ICR0cnVlDQogICAgICAgICRNc2cuU3ViamVjdEVuY29kaW5nID0gW1N5 c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOA0KICAgICAgICAkTXNnLkJvZHlFbmNvZGluZyA9IFtT eXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgNCiAgICAgICAgJFNtdHAuU2VuZCgkTXNnKQ0KICAg ICAgICBEZWJ1Zy1Mb2cgJ01BSUwnICJFLU1haWwgYW4gJEVtcGZhZW5nZXJFbWFpbCBnZXNlbmRl dCINCiAgICB9IGNhdGNoIHsNCiAgICAgICAgRGVidWctTG9nICdNQUlMJyAiRmVobGVyOiAkXyIN CiAgICB9DQp9DQoNCmZ1bmN0aW9uIE5vdGlmeS1BZW5kZXJ1bmcoJFBsYW51bmcsICRQZXJzb25J ZCwgJERhdHVtLCAkQWx0ZXJXZXJ0LCAkTmV1ZXJXZXJ0KSB7DQogICAgJFBlcnNvbiA9ICRudWxs DQogICAgZm9yZWFjaCAoJFAgaW4gJFBsYW51bmcucGVyc29uZW4pIHsNCiAgICAgICAgaWYgKFtz dHJpbmddJFAuaWQgLWVxIFtzdHJpbmddJFBlcnNvbklkKSB7ICRQZXJzb24gPSAkUDsgYnJlYWsg fQ0KICAgIH0NCiAgICBpZiAoJG51bGwgLWVxICRQZXJzb24pIHsgcmV0dXJuIH0NCiAgICAkRW1h aWwgPSBbc3RyaW5nXSRQZXJzb24uZW1haWwNCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hp dGVTcGFjZSgkRW1haWwpKSB7IHJldHVybiB9DQoNCiAgICB0cnkgew0KICAgICAgICAkRGF0dW1E ZSA9IFtEYXRlVGltZV06OlBhcnNlRXhhY3QoJERhdHVtLCAneXl5eS1NTS1kZCcsICRudWxsKS5U b1N0cmluZygnZGQuTU0ueXl5eScpDQogICAgfSBjYXRjaCB7DQogICAgICAgICREYXR1bURlID0g JERhdHVtDQogICAgfQ0KICAgICROYW1lID0gaWYgKCRQZXJzb24udm9ybmFtZSkgeyBbc3RyaW5n XSRQZXJzb24udm9ybmFtZSB9IGVsc2UgeyBbc3RyaW5nXSRQZXJzb24ubmFtZSB9DQogICAgJEJl dHJlZmYgPSAiRGllbnN0cGxhbmFlbmRlcnVuZyBhbSAkRGF0dW1EZSINCiAgICAkQWx0ID0gaWYg KFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJEFsdGVyV2VydCkpIHsgJyhsZWVyKScgfSBl bHNlIHsgJEFsdGVyV2VydCB9DQogICAgJE5ldSA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0 ZVNwYWNlKCROZXVlcldlcnQpKSB7ICcobGVlciknIH0gZWxzZSB7ICROZXVlcldlcnQgfQ0KICAg ICRCZW51dHplciA9IEdldC1Ba3R1ZWxsZXJCZW51dHplcg0KDQogICAgJE5hY2hyaWNodCA9IEAi DQpJaHIgRGllbnN0IGFtIDxzdHJvbmc+JERhdHVtRGU8L3N0cm9uZz4gd3VyZGUgZ2UmYXVtbDtu ZGVydDo8YnI+PGJyPg0KPHRhYmxlIHN0eWxlPSdib3JkZXItY29sbGFwc2U6Y29sbGFwc2UnPg0K PHRyPjx0ZCBzdHlsZT0ncGFkZGluZzo0cHggMTJweDtjb2xvcjojOTVBNUE2Jz5Wb3JoZXI6PC90 ZD48dGQgc3R5bGU9J3BhZGRpbmc6NHB4IDEycHg7Zm9udC13ZWlnaHQ6NjAwJz4kQWx0PC90ZD48 L3RyPg0KPHRyPjx0ZCBzdHlsZT0ncGFkZGluZzo0cHggMTJweDtjb2xvcjojOTVBNUE2Jz5OYWNo aGVyOjwvdGQ+PHRkIHN0eWxlPSdwYWRkaW5nOjRweCAxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xv cjojQjcxQzFDJz4kTmV1PC90ZD48L3RyPg0KPC90YWJsZT48YnI+DQpHZSZhdW1sO25kZXJ0IHZv bjogPHN0cm9uZz4kQmVudXR6ZXI8L3N0cm9uZz4NCiJADQoNCiAgICAjIFN5bmNocm9uIHNlbmRl biAobWl0IDVzIFNNVFAtVGltZW91dCkuIEUtTWFpbC1CZW5hY2hyaWNodGlndW5nIGlzdCBwZXIg RGVmYXVsdA0KICAgICMgZGVha3RpdmllcnQ7IHdlbm4gYWt0aXYgdW5kIFNNVFAgYW50d29ydGV0 IGxhbmdzYW0sIGthbm4gZGFzIGRlbiBSZXF1ZXN0IGxlaWNodA0KICAgICMgdmVyem9lZ2VybiAt IGFremVwdGFiZWwgZnVlciBkaWVzZW4gTG9rYWwtU2VydmVyLg0KICAgIFNlbmQtQWVuZGVydW5n c01haWwgJEVtYWlsICROYW1lICRCZXRyZWZmICROYWNocmljaHQNCn0NCg0KIyA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KIyBQRVJTT05FTiAtIEhlbHBlcg0KIyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K DQpmdW5jdGlvbiBHZXQtUGVyc29uZW5BcnJheSgkUGxhbnVuZykgew0KICAgIGlmICgkbnVsbCAt ZXEgJFBsYW51bmcucGVyc29uZW4pIHsgcmV0dXJuIEAoKSB9DQogICAgcmV0dXJuIEAoJFBsYW51 bmcucGVyc29uZW4pDQp9DQoNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgU1RBVElTVElLDQoj ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQoNCmZ1bmN0aW9uIEhhbmRsZS1TdGF0aXN0aWsoJFJlc3Bv bnNlKSB7DQogICAgdHJ5IHsNCiAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFu dW5nLmpzb24nDQogICAgICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQoN CiAgICAgICAgIyBOdXIgYWt0aXZlIEZlaWVydGFnZSB6YWVobGVuIChkZWZhdWx0IGFrdGl2PXRy dWUgd2VubiBGZWxkIGZlaGx0KSAtLSAxOjEgenUgc2VydmVyLnB5Lg0KICAgICAgICAkRmVpZXJ0 YWdlU2V0ID0gQHt9DQogICAgICAgIGlmICgkQWRtaW4gLWFuZCAkQWRtaW4uZmVpZXJ0YWdlKSB7 DQogICAgICAgICAgICBmb3JlYWNoICgkRiBpbiAkQWRtaW4uZmVpZXJ0YWdlKSB7DQogICAgICAg ICAgICAgICAgaWYgKC1ub3QgJEYgLW9yIC1ub3QgJEYuZGF0dW0pIHsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgICRha3RpdiA9ICR0cnVlDQogICAgICAgICAgICAgICAgaWYgKCRGLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgJGFrdGl2ID0gW2Jvb2xdJEYuYWt0aXYgfQ0KICAg ICAgICAgICAgICAgIGlmICgkYWt0aXYpIHsgJEZlaWVydGFnZVNldFtbc3RyaW5nXSRGLmRhdHVt XSA9ICR0cnVlIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICRTb3J0aWVy dGVEYXRlbiA9IEAoKQ0KICAgICAgICBpZiAoJFBsYW51bmcgLWFuZCAkUGxhbnVuZy5laW50cmFl Z2UpIHsNCiAgICAgICAgICAgICROYW1lcyA9IEAoJFBsYW51bmcuZWludHJhZWdlLlBTT2JqZWN0 LlByb3BlcnRpZXMgfCBGb3JFYWNoLU9iamVjdCB7ICRfLk5hbWUgfSkNCiAgICAgICAgICAgICRT b3J0aWVydGVEYXRlbiA9IEAoJE5hbWVzIHwgU29ydC1PYmplY3QpDQogICAgICAgIH0NCg0KICAg ICAgICAjIEZMRC1TY2hpY2h0Y29kZXMgKFNvdXJjZS1vZi1UcnV0aDogc2VydmVyLnB5Ol9oYW5k bGVfc3RhdGlzdGlrKToNCiAgICAgICAgIyAgIEZydWVoOiBGLCBGL0EsIEYvQiwgRi9DLCBGTCAg ICBTcGFldDogUywgUy9BLCBTL0IsIFMvQywgU0wgICAgTmFjaHQ6IE4sIE4vQSwgTi9CLCBOL0MN CiAgICAgICAgIyAgIFNEIHphZWhsdCBhbHMgRGllbnN0IChnZXNhbXQpLCBhYmVyIGtlaW5lIFNj aGljaHQtS2F0ZWdvcmllLg0KICAgICAgICAkRnJ1ZWhDb2RlcyA9IEAoJ0YnLCdGL0EnLCdGL0In LCdGL0MnLCdGTCcpDQogICAgICAgICRTcGFldENvZGVzID0gQCgnUycsJ1MvQScsJ1MvQicsJ1Mv QycsJ1NMJykNCiAgICAgICAgJE5hY2h0Q29kZXMgPSBAKCdOJywnTi9BJywnTi9CJywnTi9DJykN Cg0KICAgICAgICAkU3RhdGlzdGlrZW4gPSBAKCkNCiAgICAgICAgJFBlcnNvbmVuID0gQChHZXQt UGVyc29uZW5BcnJheSAkUGxhbnVuZykNCg0KICAgICAgICBmb3JlYWNoICgkUGVyc29uIGluICRQ ZXJzb25lbikgew0KICAgICAgICAgICAgaWYgKC1ub3QgJFBlcnNvbi5ha3RpdikgeyBjb250aW51 ZSB9DQogICAgICAgICAgICAkUGVyc0lkID0gW3N0cmluZ10kUGVyc29uLmlkDQoNCiAgICAgICAg ICAgICRmcnVlaCA9IDA7ICRzcGFldCA9IDA7ICRuYWNodCA9IDA7ICRnZXNhbXQgPSAwDQogICAg ICAgICAgICAka3JhbmsgPSAwOyAkdXJsYXViID0gMDsgJGxlaHJnYW5nID0gMDsgJHNvbmRlclUg PSAwDQogICAgICAgICAgICAkd2VUYWdlID0gMDsgJGZ0VGFnZSA9IDA7ICR2b3JGdFRhZ2UgPSAw DQogICAgICAgICAgICAka3JhbmtQZXJpb2RlbiA9IEAoKQ0KDQogICAgICAgICAgICAkS3JhbmtT dGFydCA9ICRudWxsDQogICAgICAgICAgICAkTGV0enRlcktyYW5rVGFnID0gJG51bGwNCg0KICAg ICAgICAgICAgZm9yZWFjaCAoJERhdHVtIGluICRTb3J0aWVydGVEYXRlbikgew0KICAgICAgICAg ICAgICAgICRFaW50cmFnID0gJFBsYW51bmcuZWludHJhZWdlLiREYXR1bQ0KICAgICAgICAgICAg ICAgICRIYXNQaWQgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICBpZiAoJEVpbnRyYWcpIHsNCiAg ICAgICAgICAgICAgICAgICAgJEhhc1BpZCA9IFtib29sXSgkRWludHJhZy5QU09iamVjdC5Qcm9w ZXJ0aWVzLk5hbWUgLWNvbnRhaW5zICRQZXJzSWQpDQogICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIGlmICgtbm90ICRIYXNQaWQpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRu dWxsIC1uZSAkS3JhbmtTdGFydCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGtyYW5rUGVy aW9kZW4gKz0gLChbUFNDdXN0b21PYmplY3RdQHsgdm9uID0gJEtyYW5rU3RhcnQ7IGJpcyA9ICRM ZXR6dGVyS3JhbmtUYWcgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICRLcmFua1N0YXJ0ID0g JG51bGwNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjb250aW51 ZQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRXZXJ0ID0gW3N0cmluZ10k RWludHJhZy4kUGVyc0lkDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAg ICAgJERhdHVtT2JqID0gW0RhdGVUaW1lXTo6UGFyc2VFeGFjdCgkRGF0dW0sICd5eXl5LU1NLWRk JywgJG51bGwpDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7IGNvbnRpbnVlIH0NCg0KICAgICAg ICAgICAgICAgICREb3cgPSAkRGF0dW1PYmouRGF5T2ZXZWVrDQogICAgICAgICAgICAgICAgJElz dFdlID0gKCREb3cgLWVxIFtTeXN0ZW0uRGF5T2ZXZWVrXTo6U2F0dXJkYXkgLW9yICREb3cgLWVx IFtTeXN0ZW0uRGF5T2ZXZWVrXTo6U3VuZGF5KQ0KICAgICAgICAgICAgICAgICRJc3RGdCA9ICRG ZWllcnRhZ2VTZXQuQ29udGFpbnNLZXkoJERhdHVtKQ0KICAgICAgICAgICAgICAgICRNb3JnZW4g PSAkRGF0dW1PYmouQWRkRGF5cygxKS5Ub1N0cmluZygneXl5eS1NTS1kZCcpDQogICAgICAgICAg ICAgICAgJElzdFZvckZ0ID0gJEZlaWVydGFnZVNldC5Db250YWluc0tleSgkTW9yZ2VuKQ0KDQog ICAgICAgICAgICAgICAgJElzdEZydWVoICA9ICRGcnVlaENvZGVzIC1jb250YWlucyAkV2VydA0K ICAgICAgICAgICAgICAgICRJc3RTcGFldCAgPSAkU3BhZXRDb2RlcyAtY29udGFpbnMgJFdlcnQN CiAgICAgICAgICAgICAgICAkSXN0TmFjaHQgID0gJE5hY2h0Q29kZXMgLWNvbnRhaW5zICRXZXJ0 DQogICAgICAgICAgICAgICAgJElzdERpZW5zdCA9ICRJc3RGcnVlaCAtb3IgJElzdFNwYWV0IC1v ciAkSXN0TmFjaHQgLW9yICgkV2VydCAtZXEgJ1NEJykNCg0KICAgICAgICAgICAgICAgIGlmICAg ICAoJElzdEZydWVoKSAgICAgIHsgJGZydWVoKys7ICRnZXNhbXQrKyB9DQogICAgICAgICAgICAg ICAgZWxzZWlmICgkSXN0U3BhZXQpICAgICAgeyAkc3BhZXQrKzsgJGdlc2FtdCsrIH0NCiAgICAg ICAgICAgICAgICBlbHNlaWYgKCRJc3ROYWNodCkgICAgICB7ICRuYWNodCsrOyAkZ2VzYW10Kysg fQ0KICAgICAgICAgICAgICAgIGVsc2VpZiAoJFdlcnQgLWVxICdTRCcpIHsgJGdlc2FtdCsrIH0N Cg0KICAgICAgICAgICAgICAgIGlmICgkV2VydCAtZXEgJ0snKSB7DQogICAgICAgICAgICAgICAg ICAgICRrcmFuaysrDQogICAgICAgICAgICAgICAgICAgICRMZXR6dGVyS3JhbmtUYWcgPSAkRGF0 dW0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkS3JhbmtTdGFydCkgeyAkS3Jh bmtTdGFydCA9ICREYXR1bSB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAg ICAgICAgICAgaWYgKCRudWxsIC1uZSAkS3JhbmtTdGFydCkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgJGtyYW5rUGVyaW9kZW4gKz0gLChbUFNDdXN0b21PYmplY3RdQHsgdm9uID0gJEtyYW5r U3RhcnQ7IGJpcyA9ICRMZXR6dGVyS3JhbmtUYWcgfSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICRLcmFua1N0YXJ0ID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJFdlcnQgLWVxICdVJykgICAgICAgICAgICAgICAg ICAgICAgIHsgJHVybGF1YisrIH0NCiAgICAgICAgICAgICAgICBpZiAoJFdlcnQgLWVxICdTVScp ICAgICAgICAgICAgICAgICAgICAgIHsgJHNvbmRlclUrKyB9DQogICAgICAgICAgICAgICAgaWYg KCRXZXJ0IC1lcSAnRkInIC1vciAkV2VydCAtZXEgJ0VaJykgICB7ICRsZWhyZ2FuZysrIH0NCg0K ICAgICAgICAgICAgICAgIGlmICgkSXN0V2UgICAgLWFuZCAkSXN0RGllbnN0KSB7ICR3ZVRhZ2Ur KyB9DQogICAgICAgICAgICAgICAgaWYgKCRJc3RGdCAgICAtYW5kICRJc3REaWVuc3QpIHsgJGZ0 VGFnZSsrIH0NCiAgICAgICAgICAgICAgICBpZiAoJElzdFZvckZ0IC1hbmQgJElzdERpZW5zdCkg eyAkdm9yRnRUYWdlKysgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRudWxsIC1u ZSAkS3JhbmtTdGFydCkgew0KICAgICAgICAgICAgICAgICRrcmFua1BlcmlvZGVuICs9ICwoW1BT Q3VzdG9tT2JqZWN0XUB7IHZvbiA9ICRLcmFua1N0YXJ0OyBiaXMgPSAkTGV0enRlcktyYW5rVGFn IH0pDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRTdGF0aXN0aWtlbiArPSBbUFNDdXN0 b21PYmplY3RdQHsNCiAgICAgICAgICAgICAgICBwZXJzb25JZCAgICAgICAgPSAkUGVyc29uLmlk DQogICAgICAgICAgICAgICAgbmFtZSAgICAgICAgICAgID0gKEdldC1QZXJzb25Wb2xsTmFtZSAk UGVyc29uKQ0KICAgICAgICAgICAgICAgIGZydWVoICAgICAgICAgICA9ICRmcnVlaA0KICAgICAg ICAgICAgICAgIHNwYWV0ICAgICAgICAgICA9ICRzcGFldA0KICAgICAgICAgICAgICAgIG5hY2h0 ICAgICAgICAgICA9ICRuYWNodA0KICAgICAgICAgICAgICAgIGdlc2FtdCAgICAgICAgICA9ICRn ZXNhbXQNCiAgICAgICAgICAgICAgICBrcmFuayAgICAgICAgICAgPSAka3JhbmsNCiAgICAgICAg ICAgICAgICB1cmxhdWIgICAgICAgICAgPSAkdXJsYXViDQogICAgICAgICAgICAgICAgbGVocmdh bmcgICAgICAgID0gJGxlaHJnYW5nDQogICAgICAgICAgICAgICAgYXpBdXNnbGVpY2ggICAgID0g MA0KICAgICAgICAgICAgICAgIHNvbmRlcnVybGF1YiAgICA9ICRzb25kZXJVDQogICAgICAgICAg ICAgICAgd29jaGVuZW5kVGFnZSAgID0gJHdlVGFnZQ0KICAgICAgICAgICAgICAgIGZlaWVydGFn VGFnZSAgICA9ICRmdFRhZ2UNCiAgICAgICAgICAgICAgICB2b3JGZWllcnRhZ1RhZ2UgPSAkdm9y RnRUYWdlDQogICAgICAgICAgICAgICAga3JhbmtQZXJpb2RlbiAgID0gJGtyYW5rUGVyaW9kZW4N CiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICMgUFMtNS4xLVF1aXJrOiBDb252 ZXJ0VG8tSnNvbiB1bndyYXBwZWQgMC0gdW5kIDEtRWxlbWVudC1BcnJheXMuDQogICAgICAgIGlm ICgkU3RhdGlzdGlrZW4uQ291bnQgLWVxIDApIHsNCiAgICAgICAgICAgICRKc29uID0gJ1tdJw0K ICAgICAgICB9IGVsc2VpZiAoJFN0YXRpc3Rpa2VuLkNvdW50IC1lcSAxKSB7DQogICAgICAgICAg ICAkSnNvbiA9ICdbJyArIChDb252ZXJ0VG8tSnNvbiAtSW5wdXRPYmplY3QgJFN0YXRpc3Rpa2Vu WzBdIC1EZXB0aCAxNSAtQ29tcHJlc3MpICsgJ10nDQogICAgICAgIH0gZWxzZSB7DQogICAgICAg ICAgICAkSnNvbiA9IENvbnZlcnRUby1Kc29uIC1JbnB1dE9iamVjdCAkU3RhdGlzdGlrZW4gLURl cHRoIDE1IC1Db21wcmVzcw0KICAgICAgICB9DQogICAgICAgIFNlbmQtSnNvblJhdyAkUmVzcG9u c2UgJEpzb24NCiAgICAgICAgRGVidWctTG9nICdBUEknICJHRVQgL2FwaS9zdGF0aXN0aWsgLT4g JCgkU3RhdGlzdGlrZW4uQ291bnQpIFBlcnNvbmVuIg0KICAgIH0gY2F0Y2ggew0KICAgICAgICAk RGV0YWlsID0gIlN0YXRpc3Rpay1GZWhsZXI6ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIHwgWmVp bGU6ICQoJF8uSW52b2NhdGlvbkluZm8uU2NyaXB0TGluZU51bWJlcikgfCAkKCRfLkludm9jYXRp b25JbmZvLkxpbmUuVHJpbSgpKSINCiAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAkRGV0YWlsDQog ICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICREZXRhaWwgNTAwDQogICAgfQ0KfQ0KDQojID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQojIERVTU1ZREFURU4NCiMgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cg0KZnVuY3Rpb24gSGFuZGxlLUR1bW15ZGF0ZW4oJFJlc3BvbnNlKSB7DQogICAgJFBsYW51bmcg PSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgJEFkbWluID0gUmVhZC1Kc29uRmls ZSAnYWRtaW4uanNvbicNCg0KICAgICRQbGFudW5nUGF0aCA9IEpvaW4tUGF0aCAkRGF0YURpciAn cGxhbnVuZy5qc29uJw0KICAgICRUcyA9IEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXlNTWRkX0hIbW1z cycNCiAgICAkQmFja3VwTmFtZSA9ICJwbGFudW5nX2JhY2t1cF92b3JfZHVtbXlfJFRzLmpzb24i DQogICAgQ29weS1JdGVtIC1QYXRoICRQbGFudW5nUGF0aCAtRGVzdGluYXRpb24gKEpvaW4tUGF0 aCAkRGF0YURpciAkQmFja3VwTmFtZSkgLUZvcmNlDQogICAgSW52b2tlLUJhY2t1cFJvdGF0aW9u ICdwbGFudW5nX2JhY2t1cF8qLmpzb24nIDIwDQoNCiAgICAkUGVyc29uZW4gPSBAKEdldC1QZXJz b25lbkFycmF5ICRQbGFudW5nIHwgV2hlcmUtT2JqZWN0IHsgJF8uYWt0aXYgfSkNCg0KICAgICRG ZWllcnRhZ2VTZXQgPSBAe30NCiAgICBpZiAoJEFkbWluIC1hbmQgJEFkbWluLmZlaWVydGFnZSkg ew0KICAgICAgICBmb3JlYWNoICgkRiBpbiAkQWRtaW4uZmVpZXJ0YWdlKSB7IGlmICgkRi5kYXR1 bSkgeyAkRmVpZXJ0YWdlU2V0W1tzdHJpbmddJEYuZGF0dW1dID0gJHRydWUgfSB9DQogICAgfQ0K DQogICAgJFZvbiA9IFtEYXRlVGltZV0nMjAyNi0wMS0wMScNCiAgICAkQmlzID0gW0RhdGVUaW1l XScyMDI2LTA2LTMwJw0KICAgICRUb3RhbERheXMgPSAoJEJpcyAtICRWb24pLkRheXMgKyAxDQoN CiAgICAkRGllbnN0Q29kZXMgPSBAKCdGLURHTCcsJ1MtREdMJywnTi1ER0wnLCdGLVdERicsJ1Mt V0RGJywnTi1XREYnLCdGLUZCUCcsJ1MtRkJQJywnTi1GQlAnKQ0KICAgICRBYndlc2VuaGVpdENv ZGVzID0gQCgnVXJsJywna3InLCdLdXInLCdMRycsJ0FaQScsJ0VUTScsJ1NlbScsJ1NEJywnQkFP JywnYWJnJywnU1UnLCdITycsJ0JWJykNCiAgICAkRnJlaUNvZGVzID0gQCgnd2ZyJywnZGZyJykN Cg0KICAgICRSbmQgPSBOZXctT2JqZWN0IFN5c3RlbS5SYW5kb20NCg0KICAgICMgUGVyc29uZW4t QmxvZWNrZSBnZW5lcmllcmVuDQogICAgJFBlcnNvbkJsb2Vja2UgPSBAe30NCiAgICAkUGVyc29u UHJhZWZlcmVueiA9IEB7fQ0KICAgIGZvcmVhY2ggKCRQIGluICRQZXJzb25lbikgew0KICAgICAg ICAkUGVyc0lkID0gW3N0cmluZ10kUC5pZA0KICAgICAgICAkQmxvZWNrZSA9IE5ldy1PYmplY3Qg U3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KDQogICAgICAgICMgMi00IFVybGF1YnNibG9l Y2tlDQogICAgICAgICROVXJsID0gJFJuZC5OZXh0KDIsIDUpDQogICAgICAgIGZvciAoJGkgPSAw OyAkaSAtbHQgJE5Vcmw7ICRpKyspIHsNCiAgICAgICAgICAgICRTdGFydCA9ICRSbmQuTmV4dCgw LCAkVG90YWxEYXlzIC0gMTQpDQogICAgICAgICAgICAkTGFlbmdlID0gJFJuZC5OZXh0KDUsIDE1 KQ0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkTGFlbmdlLCAnVXJs JykpDQogICAgICAgIH0NCiAgICAgICAgIyA0MCUgQ2hhbmNlIGF1ZiAxLTIgS3JhbmtoZWl0c2Js b2Vja2UNCiAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgpIC1sdCAwLjQwKSB7DQogICAgICAg ICAgICAkTktyID0gJFJuZC5OZXh0KDEsIDMpDQogICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkg LWx0ICROS3I7ICRpKyspIHsNCiAgICAgICAgICAgICAgICAkU3RhcnQgPSAkUm5kLk5leHQoMCwg JFRvdGFsRGF5cyAtIDE1KQ0KICAgICAgICAgICAgICAgICRMYWVuZ2UgPSAkUm5kLk5leHQoMiwg MTYpDQogICAgICAgICAgICAgICAgJENvZGUgPSBpZiAoJExhZW5nZSAtZ3QgMTAgLWFuZCAkUm5k Lk5leHREb3VibGUoKSAtbHQgMC4yNSkgeyAnS3VyJyB9IGVsc2UgeyAna3InIH0NCiAgICAgICAg ICAgICAgICBbdm9pZF0kQmxvZWNrZS5BZGQoQCgkU3RhcnQsICRMYWVuZ2UsICRDb2RlKSkNCiAg ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAjIDM1JSBDaGFuY2UgYXVmIDEtMiBMZWhy Z2FlbmdlDQogICAgICAgIGlmICgkUm5kLk5leHREb3VibGUoKSAtbHQgMC4zNSkgew0KICAgICAg ICAgICAgJE5MZyA9ICRSbmQuTmV4dCgxLCAzKQ0KICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRp IC1sdCAkTkxnOyAkaSsrKSB7DQogICAgICAgICAgICAgICAgJFN0YXJ0ID0gJFJuZC5OZXh0KDEw LCAkVG90YWxEYXlzIC0gMTApDQogICAgICAgICAgICAgICAgJEQgPSAkVm9uLkFkZERheXMoJFN0 YXJ0KQ0KICAgICAgICAgICAgICAgICRXdCA9IFtpbnRdJEQuRGF5T2ZXZWVrDQogICAgICAgICAg ICAgICAgaWYgKCRXdCAtZXEgMCkgeyAkV3QgPSA3IH0gICMgU289MCAtPiA3DQogICAgICAgICAg ICAgICAgJFN0YXJ0IC09ICgkV3QgLSAxKQ0KICAgICAgICAgICAgICAgIGlmICgkU3RhcnQgLWx0 IDApIHsgJFN0YXJ0ID0gMCB9DQogICAgICAgICAgICAgICAgJExhZW5nZSA9IEAoNSw1LDUsMTAp WyRSbmQuTmV4dCgwLDQpXQ0KICAgICAgICAgICAgICAgICRDb2RlID0gQCgnTEcnLCdMRycsJ1Nl bScsJ0VUTScpWyRSbmQuTmV4dCgwLDQpXQ0KICAgICAgICAgICAgICAgIFt2b2lkXSRCbG9lY2tl LkFkZChAKCRTdGFydCwgJExhZW5nZSwgJENvZGUpKQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9 DQogICAgICAgICMgMTUlIFNvbmRlcmRpZW5zdA0KICAgICAgICBpZiAoJFJuZC5OZXh0RG91Ymxl KCkgLWx0IDAuMTUpIHsNCiAgICAgICAgICAgICRTdGFydCA9ICRSbmQuTmV4dCgyMCwgJFRvdGFs RGF5cyAtIDUpDQogICAgICAgICAgICAkTGFlbmdlID0gJFJuZC5OZXh0KDIsIDYpDQogICAgICAg ICAgICAkQ29kZSA9IEAoJ1NEJywnQkFPJylbJFJuZC5OZXh0KDAsMildDQogICAgICAgICAgICBb dm9pZF0kQmxvZWNrZS5BZGQoQCgkU3RhcnQsICRMYWVuZ2UsICRDb2RlKSkNCiAgICAgICAgfQ0K ICAgICAgICAjIDEwJSBBYm9yZG51bmcNCiAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgpIC1s dCAwLjEwKSB7DQogICAgICAgICAgICAkU3RhcnQgPSAkUm5kLk5leHQoMzAsICRUb3RhbERheXMg LSAyNSkNCiAgICAgICAgICAgICRMYWVuZ2UgPSAkUm5kLk5leHQoMTAsIDIxKQ0KICAgICAgICAg ICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkTGFlbmdlLCAnYWJnJykpDQogICAgICAg IH0NCiAgICAgICAgIyAxMiUgU29uZGVydXJsYXViDQogICAgICAgIGlmICgkUm5kLk5leHREb3Vi bGUoKSAtbHQgMC4xMikgew0KICAgICAgICAgICAgJFN0YXJ0ID0gJFJuZC5OZXh0KDAsICRUb3Rh bERheXMgLSAzKQ0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkUm5k Lk5leHQoMSw0KSwgJ1NVJykpDQogICAgICAgIH0NCiAgICAgICAgIyAyLTggQVpBLUVpbnplbHRh Z2UNCiAgICAgICAgJE5BemEgPSAkUm5kLk5leHQoMiwgOSkNCiAgICAgICAgZm9yICgkaSA9IDA7 ICRpIC1sdCAkTkF6YTsgJGkrKykgew0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAo JFJuZC5OZXh0KDAsICRUb3RhbERheXMpLCAxLCAnQVpBJykpDQogICAgICAgIH0NCiAgICAgICAg IyAxNSUgQlYtQmVyZWl0c2NoYWZ0DQogICAgICAgIGlmICgkUm5kLk5leHREb3VibGUoKSAtbHQg MC4xNSkgew0KICAgICAgICAgICAgJFN0YXJ0ID0gJFJuZC5OZXh0KDAsICRUb3RhbERheXMgLSAz KQ0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkUm5kLk5leHQoMSw0 KSwgJ0JWJykpDQogICAgICAgIH0NCiAgICAgICAgJFBlcnNvbkJsb2Vja2VbJFBlcnNJZF0gPSAk QmxvZWNrZQ0KDQogICAgICAgICMgU2NoaWNodHByYWVmZXJlbnoNCiAgICAgICAgIyBOYWNoIEdy dXBwZW4tUmVmYWN0b3IgKENvbW1pdCBlNTZiMTU1KSBoYWJlbiBQZXJzb25lbiBrZWluICdncnVw cGUnLQ0KICAgICAgICAjIEZlbGQgbWVociAtLSAkRyBpc3QgaW1tZXIgbGVlciwgSy9MLUJyYW5j aGVzIHNpbmQgZGVhZC1wYXRocywgamVkZXINCiAgICAgICAgIyBMYXVmIGZhZWxsdCBpbiBkZW4g ZWxzZS1CcmFuY2ggKERlZmF1bHQtREdMLU1peCkuIExhc3MtRHJpbi1WYXJpYW50ZQ0KICAgICAg ICAjIGZ1ZXIgZGVuIHNlbHRlbmVuIEZhbGwsIGRhc3MgZGVyIER1bW15LUdlbmVyYXRvciByZWFr dGl2aWVydCB3aXJkLg0KICAgICAgICAkRyA9IFtzdHJpbmddJFAuZ3J1cHBlDQogICAgICAgIGlm ICgkRyAtZXEgJ0snKSB7DQogICAgICAgICAgICAkUGVyc29uUHJhZWZlcmVuelskUGVyc0lkXSA9 IEB7DQogICAgICAgICAgICAgICAgcG9vbCA9IEAoJ0YtV0RGJywnUy1XREYnLCdGLUZCUCcsJ1Mt RkJQJywnRi1ER0wnLCdTLURHTCcsJ04tV0RGJykNCiAgICAgICAgICAgICAgICBnZXdpY2h0ZSA9 IEAoMjUsMjAsMTUsMTAsMTAsMTAsMTApDQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZWlm ICgkRyAtZXEgJ0wnKSB7DQogICAgICAgICAgICAkUGVyc29uUHJhZWZlcmVuelskUGVyc0lkXSA9 IEB7DQogICAgICAgICAgICAgICAgcG9vbCA9IEAoJ0YtREdMJywnUy1ER0wnLCdITycsJ0YtV0RG JywnRi1GQlAnLCdTRCcpDQogICAgICAgICAgICAgICAgZ2V3aWNodGUgPSBAKDQwLDEwLDIwLDEy LDEwLDgpDQogICAgICAgICAgICB9DQogICAgICAgICAgICAjIFp1c2FldHpsaWNoZSBMZWl0dW5n cy1CbG9lY2tlDQogICAgICAgICAgICAkTlNlbSA9ICRSbmQuTmV4dCgyLCA1KQ0KICAgICAgICAg ICAgZm9yICgkaSA9IDA7ICRpIC1sdCAkTlNlbTsgJGkrKykgew0KICAgICAgICAgICAgICAgICRT dGFydCA9ICRSbmQuTmV4dCgxMCwgJFRvdGFsRGF5cyAtIDEwKQ0KICAgICAgICAgICAgICAgICRE QWRqID0gJFZvbi5BZGREYXlzKCRTdGFydCkNCiAgICAgICAgICAgICAgICAkV3QgPSBbaW50XSRE QWRqLkRheU9mV2VlazsgaWYgKCRXdCAtZXEgMCkgeyAkV3QgPSA3IH0NCiAgICAgICAgICAgICAg ICAkU3RhcnQgLT0gKCRXdCAtIDEpDQogICAgICAgICAgICAgICAgaWYgKCRTdGFydCAtbHQgMCkg eyAkU3RhcnQgPSAwIH0NCiAgICAgICAgICAgICAgICAkTGFlbmdlID0gQCgzLDUsNSlbJFJuZC5O ZXh0KDAsMyldDQogICAgICAgICAgICAgICAgJENvZGUgPSBAKCdTZW0nLCdMRycsJ1NlbScsJ0VU TScpWyRSbmQuTmV4dCgwLDQpXQ0KICAgICAgICAgICAgICAgIFt2b2lkXSRCbG9lY2tlLkFkZChA KCRTdGFydCwgJExhZW5nZSwgJENvZGUpKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJE5E ZnIgPSAkUm5kLk5leHQoMywgNykNCiAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSAtbHQgJE5E ZnI7ICRpKyspIHsNCiAgICAgICAgICAgICAgICAkQ29kZSA9IEAoJ2RmcicsJ0FaQScsJ2Rmcicp WyRSbmQuTmV4dCgwLDMpXQ0KICAgICAgICAgICAgICAgIFt2b2lkXSRCbG9lY2tlLkFkZChAKCRS bmQuTmV4dCgwLCAkVG90YWxEYXlzKSwgMSwgJENvZGUpKQ0KICAgICAgICAgICAgfQ0KICAgICAg ICB9IGVsc2Ugew0KICAgICAgICAgICAgJFBlcnNvblByYWVmZXJlbnpbJFBlcnNJZF0gPSBAew0K ICAgICAgICAgICAgICAgIHBvb2wgPSBAKCdGLURHTCcsJ1MtREdMJywnTi1ER0wnLCdGLVdERics J1MtV0RGJywnTi1XREYnLCdGLUZCUCcsJ1MtRkJQJywnTi1GQlAnKQ0KICAgICAgICAgICAgICAg IGdld2ljaHRlID0gQCgxOCwxOCwxOCw4LDgsOCw2LDYsNikNCiAgICAgICAgICAgIH0NCiAgICAg ICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIEdldC1HZXdpY2h0ZXQoJFBvb2wsICRHZXdpY2h0 ZSwgJFJuZCkgew0KICAgICAgICAkU3VtbWUgPSAwDQogICAgICAgIGZvcmVhY2ggKCRHIGluICRH ZXdpY2h0ZSkgeyAkU3VtbWUgKz0gJEcgfQ0KICAgICAgICAkUiA9ICRSbmQuTmV4dCgwLCAkU3Vt bWUpDQogICAgICAgICRBa2sgPSAwDQogICAgICAgIGZvciAoJGkgPSAwOyAkaSAtbHQgJFBvb2wu Q291bnQ7ICRpKyspIHsNCiAgICAgICAgICAgICRBa2sgKz0gJEdld2ljaHRlWyRpXQ0KICAgICAg ICAgICAgaWYgKCRSIC1sdCAkQWtrKSB7IHJldHVybiAkUG9vbFskaV0gfQ0KICAgICAgICB9DQog ICAgICAgIHJldHVybiAkUG9vbFswXQ0KICAgIH0NCg0KICAgICRFaW50cmFlZ2UgPSBbb3JkZXJl ZF1Ae30NCiAgICAkS29tbWVudGFyZSA9IFtvcmRlcmVkXUB7fQ0KICAgICRHZW5lcmllcnQgPSAw DQoNCiAgICBmb3IgKCREYXlPZmZzZXQgPSAwOyAkRGF5T2Zmc2V0IC1sdCAkVG90YWxEYXlzOyAk RGF5T2Zmc2V0KyspIHsNCiAgICAgICAgJFRhZyA9ICRWb24uQWRkRGF5cygkRGF5T2Zmc2V0KQ0K ICAgICAgICAkRFN0ciA9ICRUYWcuVG9TdHJpbmcoJ3l5eXktTU0tZGQnKQ0KICAgICAgICAkV3Qg PSBbaW50XSRUYWcuRGF5T2ZXZWVrICAjIDA9U28gLi4gNj1TYQ0KICAgICAgICAkSXN0V2UgPSAo JFd0IC1lcSAwIC1vciAkV3QgLWVxIDYpDQogICAgICAgICRJc3RGdCA9ICRGZWllcnRhZ2VTZXQu Q29udGFpbnNLZXkoJERTdHIpDQogICAgICAgICRFaW50cmFlZ2VbJERTdHJdID0gW29yZGVyZWRd QHt9DQoNCiAgICAgICAgZm9yZWFjaCAoJFAgaW4gJFBlcnNvbmVuKSB7DQogICAgICAgICAgICAk UGVyc0lkID0gW3N0cmluZ10kUC5pZA0KICAgICAgICAgICAgJEdydXBwZSA9IFtzdHJpbmddJFAu Z3J1cHBlDQoNCiAgICAgICAgICAgICMgMSkgQWJ3ZXNlbmhlaXRzYmxvY2s/DQogICAgICAgICAg ICAkRWludHJhZyA9ICRudWxsDQogICAgICAgICAgICBmb3JlYWNoICgkQiBpbiAkUGVyc29uQmxv ZWNrZVskUGVyc0lkXSkgew0KICAgICAgICAgICAgICAgICRCU3RhcnQgPSAkQlswXTsgJEJMYWVu Z2UgPSAkQlsxXTsgJEJDb2RlID0gJEJbMl0NCiAgICAgICAgICAgICAgICBpZiAoJERheU9mZnNl dCAtZ2UgJEJTdGFydCAtYW5kICREYXlPZmZzZXQgLWx0ICgkQlN0YXJ0ICsgJEJMYWVuZ2UpKSB7 DQogICAgICAgICAgICAgICAgICAgIGlmICgkSXN0V2UgLWFuZCAkQkNvZGUgLW5vdGluIEAoJ2ty JywnS3VyJywnVXJsJykpIHsgYnJlYWsgfQ0KICAgICAgICAgICAgICAgICAgICAkRWludHJhZyA9 ICRCQ29kZQ0KICAgICAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkRWludHJhZykgew0KICAgICAgICAgICAgICAg ICRFaW50cmFlZ2VbJERTdHJdWyRQZXJzSWRdID0gJEVpbnRyYWcNCiAgICAgICAgICAgICAgICAk R2VuZXJpZXJ0KysNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAjIDIpIFdvY2hlbmVuZGUgLyBGZWllcnRhZw0KICAgICAgICAgICAgaWYgKCRJ c3RXZSAtb3IgJElzdEZ0KSB7DQogICAgICAgICAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgp IC1sdCAwLjMwKSB7DQogICAgICAgICAgICAgICAgICAgICRQcmVmID0gJFBlcnNvblByYWVmZXJl bnpbJFBlcnNJZF0NCiAgICAgICAgICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJ ZF0gPSBHZXQtR2V3aWNodGV0ICRQcmVmLnBvb2wgJFByZWYuZ2V3aWNodGUgJFJuZA0KICAgICAg ICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRFaW50cmFlZ2VbJERTdHJd WyRQZXJzSWRdID0gQCgnd2ZyJywnd2ZyJywnd2ZyJywnZGZyJylbJFJuZC5OZXh0KDAsNCldDQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRHZW5lcmllcnQrKw0KICAgICAgICAg ICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgMykgV2Vya3Rh ZzogOCUgZnJlaWVyIFRhZw0KICAgICAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgpIC1sdCAw LjA4KSB7DQogICAgICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJZF0gPSBAKCdk ZnInLCd3ZnInLCdBWkEnKVskUm5kLk5leHQoMCwzKV0NCiAgICAgICAgICAgICAgICAkR2VuZXJp ZXJ0KysNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgaWYgKCRHcnVwcGUgLWVxICdMJyAtYW5kICRSbmQuTmV4dERvdWJsZSgpIC1sdCAwLjIwKSB7 DQogICAgICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJZF0gPSAnSE8nDQogICAg ICAgICAgICAgICAgJEdlbmVyaWVydCsrDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgJFByZWYgPSAkUGVyc29uUHJhZWZlcmVuelskUGVyc0lk XQ0KICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJZF0gPSBHZXQtR2V3aWNodGV0 ICRQcmVmLnBvb2wgJFByZWYuZ2V3aWNodGUgJFJuZA0KICAgICAgICAgICAgJEdlbmVyaWVydCsr DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAjIEtvbW1lbnRhcmUNCiAgICAkQmVpc3BpZWxLb21t ZW50YXJlID0gQCgNCiAgICAgICAgJ1RhdXNjaCBtaXQgS29sbGVnZScsJ0FyenR0ZXJtaW4gbmFj aG1pdHRhZ3MnLCdOdXIgYmlzIDE0IFVocicsDQogICAgICAgICdUZWxlZm9uYmVyZWl0c2NoYWZ0 JywnVWViZXJzdHVuZGVuYWJiYXUnLCdWZXJ0cmV0dW5nIGZ1ZXIgVXJsYXViJywNCiAgICAgICAg J0dlcmljaHRzdGVybWluJywnQmVob2VyZGVuZ2FuZycsJ0tpbmQga3JhbmsgLSBldnRsLiBmcnVl aGVyIHdlZycsDQogICAgICAgICdQcnVlZnVuZyBpbSBSZXZpZXInLCdTcHJpbmdlcmRpZW5zdCcs J0RpZW5zdGJlc3ByZWNodW5nIDEwIFVocicsDQogICAgICAgICdGdW5rdWVidW5nJywnRWluc2F0 em5hY2hiZXJlaXR1bmcnLCdWZXJrZWhyc2tvbnRyb2xsZSBBNDUnLA0KICAgICAgICAnU2NodWx3 ZWctVWViZXJ3YWNodW5nJywnTmV1ZXIgQW53YWVydGVyIGVpbndlaXNlbicsJ0ZhaHJ6ZXVndWVi ZXJuYWhtZScsDQogICAgICAgICdXYWZmZW5yZWluaWd1bmcnLCdCZXJpY2h0IG5hY2hyZWljaGVu Jw0KICAgICkNCiAgICBmb3IgKCRpID0gMDsgJGkgLWx0IDgwOyAkaSsrKSB7DQogICAgICAgICRS YW5kRGF5ID0gJFJuZC5OZXh0KDAsICRUb3RhbERheXMpDQogICAgICAgICRUYWdEID0gJFZvbi5B ZGREYXlzKCRSYW5kRGF5KQ0KICAgICAgICAkRFN0ciA9ICRUYWdELlRvU3RyaW5nKCd5eXl5LU1N LWRkJykNCiAgICAgICAgaWYgKCRFaW50cmFlZ2UuQ29udGFpbnMoJERTdHIpIC1hbmQgJEVpbnRy YWVnZVskRFN0cl0uQ291bnQgLWd0IDApIHsNCiAgICAgICAgICAgICRQaWRzID0gQCgkRWludHJh ZWdlWyREU3RyXS5LZXlzKQ0KICAgICAgICAgICAgJFJhbmRQaWQgPSAkUGlkc1skUm5kLk5leHQo MCwgJFBpZHMuQ291bnQpXQ0KICAgICAgICAgICAgaWYgKC1ub3QgJEtvbW1lbnRhcmUuQ29udGFp bnMoJERTdHIpKSB7ICRLb21tZW50YXJlWyREU3RyXSA9IFtvcmRlcmVkXUB7fSB9DQogICAgICAg ICAgICAkS29tbWVudGFyZVskRFN0cl1bJFJhbmRQaWRdID0gJEJlaXNwaWVsS29tbWVudGFyZVsk Um5kLk5leHQoMCwgJEJlaXNwaWVsS29tbWVudGFyZS5Db3VudCldDQogICAgICAgIH0NCiAgICB9 DQoNCiAgICAjIFp1cnVlY2sgaW4gUGxhbnVuZyBlaW5mdWVnZW4NCiAgICBpZiAoJFBsYW51bmcu UFNPYmplY3QuUHJvcGVydGllc1snZWludHJhZWdlJ10pIHsNCiAgICAgICAgJFBsYW51bmcuZWlu dHJhZWdlID0gW1BTQ3VzdG9tT2JqZWN0XSRFaW50cmFlZ2UNCiAgICB9IGVsc2Ugew0KICAgICAg ICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdl aW50cmFlZ2UnIC1WYWx1ZSAoW1BTQ3VzdG9tT2JqZWN0XSRFaW50cmFlZ2UpDQogICAgfQ0KICAg IGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsNCiAgICAg ICAgJFBsYW51bmcua29tbWVudGFyZSA9IFtQU0N1c3RvbU9iamVjdF0kS29tbWVudGFyZQ0KICAg IH0gZWxzZSB7DQogICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl UHJvcGVydHkgLU5hbWUgJ2tvbW1lbnRhcmUnIC1WYWx1ZSAoW1BTQ3VzdG9tT2JqZWN0XSRLb21t ZW50YXJlKQ0KICAgIH0NCg0KICAgIFdyaXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVu ZyAgICMgQnVsay1PcDogYWxsZSBITUFDcyBuZXUNCiAgICBXcml0ZS1Mb2dFaW50cmFnICdkdW1t eWRhdGVuLmVpbmdlc3BpZWx0JyBAeyBlaW50cmFlZ2UgPSAkR2VuZXJpZXJ0OyBiYWNrdXAgPSAk QmFja3VwTmFtZSB9DQogICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZWluZ2Vz cGllbHQnOyBlaW50cmFlZ2UgPSAkR2VuZXJpZXJ0OyBiYWNrdXAgPSAkQmFja3VwTmFtZSB9DQog ICAgRGVidWctTG9nICdBUEknICJQT1NUIC9hcGkvcGxhbnVuZy9kdW1teWRhdGVuIC0+ICRHZW5l cmllcnQgRWludHJhZWdlIg0KfQ0KDQpmdW5jdGlvbiBIYW5kbGUtUmVzZXQoJFJlc3BvbnNlKSB7 DQogICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgJFBsYW51 bmdQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdwbGFudW5nLmpzb24nDQogICAgJFRzID0gR2V0 LURhdGUgLUZvcm1hdCAneXl5eU1NZGRfSEhtbXNzJw0KICAgICRCYWNrdXBOYW1lID0gInBsYW51 bmdfYmFja3VwX3Zvcl9yZXNldF8kVHMuanNvbiINCiAgICBDb3B5LUl0ZW0gLVBhdGggJFBsYW51 bmdQYXRoIC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICREYXRhRGlyICRCYWNrdXBOYW1lKSAtRm9y Y2UNCiAgICBJbnZva2UtQmFja3VwUm90YXRpb24gJ3BsYW51bmdfYmFja3VwXyouanNvbicgMjAN Cg0KICAgIGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2UnXSkgew0K ICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UgPSBbUFNDdXN0b21PYmplY3RdQHt9DQogICAgfSBl bHNlIHsNCiAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9w ZXJ0eSAtTmFtZSAnZWludHJhZWdlJyAtVmFsdWUgKFtQU0N1c3RvbU9iamVjdF1Ae30pDQogICAg fQ0KICAgIGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsN CiAgICAgICAgJFBsYW51bmcua29tbWVudGFyZSA9IFtQU0N1c3RvbU9iamVjdF1Ae30NCiAgICB9 IGVsc2Ugew0KICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICdrb21tZW50YXJlJyAtVmFsdWUgKFtQU0N1c3RvbU9iamVjdF1Ae30pDQog ICAgfQ0KICAgIFdyaXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyAgICMgQnVsay1P cDogYWxsZSBITUFDcyBuZXUgKGxlZXJlciBTdGFuZCkNCiAgICBXcml0ZS1Mb2dFaW50cmFnICdw bGFudW5nLnJlc2V0JyBAeyBiYWNrdXAgPSAkQmFja3VwTmFtZSB9DQogICAgU2VuZC1Kc29uICRS ZXNwb25zZSBAeyBzdGF0dXMgPSAnenVydWVja2dlc2V0enQnOyBiYWNrdXAgPSAkQmFja3VwTmFt ZSB9DQogICAgRGVidWctTG9nICdBUEknICdQT1NUIC9hcGkvcGxhbnVuZy9yZXNldCcNCn0NCg0K IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KIyBDLjM6IEF1dG8tSW5ha3RpdiBiZWkgYWJnZWxhdWZl bmVyIEJlZnJpc3R1bmcgKFNlcnZlci1TdGFydC1DaGVjaykNCiMgPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCnRyeSB7DQogICAgJF9QbGFudW5nSW5pdCA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNv bicNCiAgICBpZiAoJF9QbGFudW5nSW5pdCAtYW5kICRfUGxhbnVuZ0luaXQuUFNPYmplY3QuUHJv cGVydGllc1sncGVyc29uZW4nXSkgew0KICAgICAgICAkSGV1dGUgPSAoR2V0LURhdGUpLkRhdGUN CiAgICAgICAgJEdlYWVuZGVydENvdW50ID0gMA0KICAgICAgICBmb3JlYWNoICgkUCBpbiBAKCRf UGxhbnVuZ0luaXQucGVyc29uZW4pKSB7DQogICAgICAgICAgICAkQmIgPSAnJw0KICAgICAgICAg ICAgaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2JlZnJpc3R1bmdCaXMnXSkgeyAkQmIgPSAo W3N0cmluZ10kUC5iZWZyaXN0dW5nQmlzKS5UcmltKCkgfQ0KICAgICAgICAgICAgaWYgKC1ub3Qg JEJiKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICRBa3RpdiA9ICR0cnVlDQogICAgICAgICAg ICBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSkgeyAkQWt0aXYgPSBbYm9vbF0k UC5ha3RpdiB9DQogICAgICAgICAgICBpZiAoLW5vdCAkQWt0aXYpIHsgY29udGludWUgfQ0KICAg ICAgICAgICAgdHJ5IHsgJEVuZEQgPSBbZGF0ZXRpbWVdOjpQYXJzZSgkQmIpLkRhdGUgfSBjYXRj aCB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgIGlmICgkRW5kRCAtbHQgJEhldXRlKSB7DQogICAg ICAgICAgICAgICAgaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgJFAuYWt0 aXYgPSAkZmFsc2UgfQ0KICAgICAgICAgICAgICAgIGVsc2UgeyAkUCB8IEFkZC1NZW1iZXIgLU1l bWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdha3RpdicgLVZhbHVlICRmYWxzZSB9DQogICAg ICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAncGVyc29uLmF1dG9faW5ha3RpdicgQHsNCiAg ICAgICAgICAgICAgICAgICAgcGVyc29uSWQgPSAkUC5pZDsgbmFtZSA9ICRQLm5hbWU7IGJlZnJp c3R1bmdCaXMgPSAkQmINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJEdlYWVu ZGVydENvdW50KysNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoJEdlYWVu ZGVydENvdW50IC1ndCAwKSB7DQogICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRh ZXQgJF9QbGFudW5nSW5pdA0KICAgICAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAiW0lOSVRdICRH ZWFlbmRlcnRDb3VudCBQZXJzb24oZW4pIHdlZ2VuIGFiZ2VsYXVmZW5lciBCZWZyaXN0dW5nIGF1 dG9tYXRpc2NoIGRlYWt0aXZpZXJ0LiINCiAgICAgICAgfQ0KICAgIH0NCn0gY2F0Y2ggew0KICAg IFdyaXRlLVN0YXJ0dXBMb2cgIltJTklUXSBBdXRvLUluYWt0aXYtQ2hlY2sgdWViZXJzcHJ1bmdl bjogJF8iDQp9DQoNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgVVBEQVRFLUNIRUNLDQojID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQoNCiRzY3JpcHQ6VXBkYXRlQXZhaWxhYmxlICAgID0gJGZhbHNl DQokc2NyaXB0OlJlbW90ZVZlcnNpb24gICAgICA9ICcnDQokc2NyaXB0OlVwZGF0ZUxhc3RDaGVj a1V0YyA9IFtkYXRldGltZV06Ok1pblZhbHVlDQoNCmZ1bmN0aW9uIFJlZnJlc2gtVXBkYXRlQ2hl Y2sgew0KICAgIGlmICgoW2RhdGV0aW1lXTo6VXRjTm93IC0gJHNjcmlwdDpVcGRhdGVMYXN0Q2hl Y2tVdGMpLlRvdGFsTWludXRlcyAtbHQgNjApIHsgcmV0dXJuIH0NCiAgICAkc2NyaXB0OlVwZGF0 ZUxhc3RDaGVja1V0YyA9IFtkYXRldGltZV06OlV0Y05vdw0KICAgICRsb2NhbFZlciA9ICcwLjAu MCcNCiAgICAkX3ZmID0gSm9pbi1QYXRoICRSb290ICdWRVJTSU9OJw0KICAgIGlmIChUZXN0LVBh dGggLUxpdGVyYWxQYXRoICRfdmYpIHsgJGxvY2FsVmVyID0gKEdldC1Db250ZW50IC1MaXRlcmFs UGF0aCAkX3ZmIC1SYXcpLlRyaW0oKSB9DQogICAgdHJ5IHsNCiAgICAgICAgJHJ2ID0gKEludm9r ZS1XZWJSZXF1ZXN0IC1VcmkgJ2h0dHBzOi8vZ2l0ZWEucmhpbm8ubnJ3L1JoaW5vL1N0YXR1c1F1 b19VcGRhdGVzL3Jhdy9icmFuY2gvbWFpbi9GTEQtU2NoaWNodHBsYW51bmcvVkVSU0lPTicgYA0K ICAgICAgICAgICAgICAgLVVzZUJhc2ljUGFyc2luZyAtVGltZW91dFNlYyAzIC1FcnJvckFjdGlv biBTdG9wKS5Db250ZW50LlRyaW0oKQ0KICAgICAgICAkc2NyaXB0OlJlbW90ZVZlcnNpb24gICA9 ICRydg0KICAgICAgICAkc2NyaXB0OlVwZGF0ZUF2YWlsYWJsZSA9IChbU3lzdGVtLlZlcnNpb25d JHJ2IC1ndCBbU3lzdGVtLlZlcnNpb25dJGxvY2FsVmVyKQ0KICAgICAgICBXcml0ZS1Ib3N0ICIg IFtVUERBVEUtQ0hFQ0tdIGxva2FsPSRsb2NhbFZlciByZW1vdGU9JHJ2IGF2YWlsYWJsZT0kKCRz Y3JpcHQ6VXBkYXRlQXZhaWxhYmxlKSINCiAgICB9IGNhdGNoIHsNCiAgICAgICAgV3JpdGUtSG9z dCAiICBbVVBEQVRFLUNIRUNLXSBuaWNodCBlcnJlaWNoYmFyICgkKCRfLkV4Y2VwdGlvbi5NZXNz YWdlKSkiDQogICAgfQ0KfQ0KUmVmcmVzaC1VcGRhdGVDaGVjaw0KDQojID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQojIEhUVFAtTElTVEVORVIgU1RBUlRFTg0KIyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K DQokTGlzdGVuZXIgPSAkbnVsbA0KdHJ5IHsNCiAgICAkTGlzdGVuZXIgPSBOZXctT2JqZWN0IFN5 c3RlbS5OZXQuSHR0cExpc3RlbmVyDQogICAgJExpc3RlbmVyLlByZWZpeGVzLkFkZCgiaHR0cDov L2xvY2FsaG9zdDokUG9ydC8iKQ0KICAgICRMaXN0ZW5lci5TdGFydCgpDQogICAgV3JpdGUtU3Rh cnR1cExvZyAiTGlzdGVuZXIgbGFldWZ0IGF1ZiBodHRwOi8vbG9jYWxob3N0OiRQb3J0Ig0KfSBj YXRjaCB7DQogICAgV3JpdGUtU3RhcnR1cExvZyAiRkFUQUw6IExpc3RlbmVyIGtvbm50ZSBuaWNo dCBnZXN0YXJ0ZXQgd2VyZGVuOiAkXyINCiAgICBXcml0ZS1TdGFydHVwTG9nICJNw7ZnbGljaGUg VXJzYWNoZW46IFBvcnQgYmVsZWd0LCBmZWhsZW5kZSBVUkwtQUNMLCBGaXJld2FsbC4iDQogICAg ZXhpdCAxDQp9DQoNCldyaXRlLUhvc3QgIkZMRC1QbGFudW5nIFNlcnZlciBhdWYgaHR0cDovL2xv Y2FsaG9zdDokUG9ydCINCldyaXRlLUhvc3QgIlJvb3Q6ICRSb290Ig0KV3JpdGUtSG9zdCAiRGF0 ZW46ICREYXRhRGlyIg0KDQojIC0tLSBCcm93c2VyIG9lZmZuZW4gLS0tDQppZiAoLW5vdCAkTm9C cm93c2VyKSB7DQogICAgU3RhcnQtU2xlZXAgLU1pbGxpc2Vjb25kcyAzMDANCiAgICB0cnkgeyBT dGFydC1Qcm9jZXNzICJodHRwOi8vbG9jYWxob3N0OiRQb3J0IiB9IGNhdGNoIHsgV3JpdGUtU3Rh cnR1cExvZyAiQnJvd3Nlci1TdGFydCBmZWhsZ2VzY2hsYWdlbjogJF8iIH0NCn0NCg0KIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KIyBSRVFVRVNULUxPT1ANCiMgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cg0KdHJ5IHsNCiAgICB3aGlsZSAoJExpc3RlbmVyLklzTGlzdGVuaW5nKSB7DQogICAgICAgICRB c3luY1Jlc3VsdCA9ICRMaXN0ZW5lci5CZWdpbkdldENvbnRleHQoJG51bGwsICRudWxsKQ0KICAg ICAgICB3aGlsZSAoLW5vdCAkQXN5bmNSZXN1bHQuQXN5bmNXYWl0SGFuZGxlLldhaXRPbmUoMjAw MCkpIHsNCiAgICAgICAgICAgICMgU2VsZi1LaWxsOiAzMHMgb2huZSBIZWFydGJlYXQgPSBUYWIg b2RlciBCcm93c2VyIHp1ID0gU2VydmVyIGJlZW5kZW4NCiAgICAgICAgICAgICRFbGFwc2VkID0g KChHZXQtRGF0ZSkgLSAkc2NyaXB0Okxhc3RIZWFydGJlYXQpLlRvdGFsU2Vjb25kcw0KICAgICAg ICAgICAgaWYgKCRFbGFwc2VkIC1ndCAkc2NyaXB0OkhlYXJ0YmVhdFRpbWVvdXRTZWMpIHsNCiAg ICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICcnDQogICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAn PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Jw0KICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgS2VpbiBIZWFydGJlYXQgc2VpdCAk KFtpbnRdJEVsYXBzZWQpcyAtIFNlcnZlciB3aXJkIGJlZW5kZXQuIg0KICAgICAgICAgICAgICAg IFdyaXRlLUhvc3QgJyAgKEJyb3dzZXItVGFiIG9kZXIgQnJvd3NlciB3dXJkZSBnZXNjaGxvc3Nl biknDQogICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAnPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jw0KICAgICAgICAgICAgICAgIFdy aXRlLVN0YXJ0dXBMb2cgIlNlbGYtS2lsbCBuYWNoICQoW2ludF0kRWxhcHNlZClzIG9obmUgSGVh cnRiZWF0Ig0KICAgICAgICAgICAgICAgICRMaXN0ZW5lci5TdG9wKCkNCiAgICAgICAgICAgICAg ICAkTGlzdGVuZXIuQ2xvc2UoKQ0KICAgICAgICAgICAgICAgIGV4aXQgMA0KICAgICAgICAgICAg fQ0KICAgICAgICB9DQoNCiAgICAgICAgJENvbnRleHQgPSAkTGlzdGVuZXIuRW5kR2V0Q29udGV4 dCgkQXN5bmNSZXN1bHQpDQogICAgICAgICRSZXEgPSAkQ29udGV4dC5SZXF1ZXN0DQogICAgICAg ICRSZXMgPSAkQ29udGV4dC5SZXNwb25zZQ0KICAgICAgICAkTWV0aG9kID0gJFJlcS5IdHRwTWV0 aG9kDQogICAgICAgICRSYXdQYXRoID0gJFJlcS5VcmwuQWJzb2x1dGVQYXRoDQogICAgICAgICRQ YXRoID0gJFJhd1BhdGggICMgUXVlcnkgd2lyZCB2b24gSHR0cExpc3RlbmVyIHNlcGFyYXQgYmVy ZWl0Z2VzdGVsbHQNCg0KICAgICAgICAjIEF1ZGl0LUlJLTIgRjM6IGR5bmFtaXNjaGUgQUNBTy1R dWVsbGUgcHJvIFJlcXVlc3Qgc2V0emVuLiBBZGQtU2VjdXJpdHlIZWFkZXJzDQogICAgICAgICMg bGllc3QgJHNjcmlwdDpDb3JzT3JpZ2luRHluYW1pYy4gV2hpdGVsaXN0IHBhc3NlbmQgenVtIENT UkYtRmlsdGVyIHVudGVuLg0KICAgICAgICAkc2NyaXB0OlJlcU9yaWdpbkhlYWRlciA9ICRSZXEu SGVhZGVyc1snT3JpZ2luJ10NCiAgICAgICAgJE9yaWdpbldoaXRlbGlzdCA9IEAoImh0dHA6Ly9s b2NhbGhvc3Q6JFBvcnQiLCAiaHR0cDovLzEyNy4wLjAuMTokUG9ydCIpDQogICAgICAgIGlmICgk c2NyaXB0OlJlcU9yaWdpbkhlYWRlciAtYW5kICgkT3JpZ2luV2hpdGVsaXN0IC1jb250YWlucyAk c2NyaXB0OlJlcU9yaWdpbkhlYWRlcikpIHsNCiAgICAgICAgICAgICRzY3JpcHQ6Q29yc09yaWdp bkR5bmFtaWMgPSAkc2NyaXB0OlJlcU9yaWdpbkhlYWRlcg0KICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgJHNjcmlwdDpDb3JzT3JpZ2luRHluYW1pYyA9ICRzY3JpcHQ6Q29yc09yaWdpbg0K ICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09 PT09PT09IENPUlMgUFJFRkxJR0hUID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAg aWYgKCRNZXRob2QgLWVxICdPUFRJT05TJykgew0KICAgICAgICAgICAgICAgIEFkZC1TZWN1cml0 eUhlYWRlcnMgJFJlczsgJFJlcy5TdGF0dXNDb2RlID0gMjA0OyAkUmVzLkNsb3NlKCk7IGNvbnRp bnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgQ1NSRi1TY2h1dHogZnVlciB3cml0 aW5nIG1ldGhvZHM6IE9yaWdpbiBtdXNzIG1hdGNoZW4gb2RlciBmZWhsZW4uDQogICAgICAgICAg ICAjIEJyb3dzZXIgc2VuZGVuIE9yaWdpbiBiZWkgQ3Jvc3MtU2l0ZS1QT1NUIHp3aW5nZW5kOyBi ZWkgU2FtZS1TaXRlDQogICAgICAgICAgICAjIFJlcXVlc3RzIGlzdCBlciBnbGVpY2ggb2RlciBm ZWhsdCAoQ0xJL2N1cmwpLiBBYndlaWNoZW5kZXIgT3JpZ2luDQogICAgICAgICAgICAjID0gQ3Jv c3MtU2l0ZS1BbmdyaWZmIHZvbiBlaW5lbSBhbmRlcmVuIGxva2FsZW4gU2VydmljZSBhYmxlaG5l bi4NCiAgICAgICAgICAgICMgTWlycm9yIHp1IHNlcnZlci5weToyMjE3LTIyMjguDQogICAgICAg ICAgICBpZiAoJE1ldGhvZCAtaW4gQCgnUE9TVCcsJ1BVVCcsJ0RFTEVURScsJ1BBVENIJykpIHsN CiAgICAgICAgICAgICAgICAkT3JpZ2luID0gJFJlcS5IZWFkZXJzWydPcmlnaW4nXQ0KICAgICAg ICAgICAgICAgICMgVG9sZXJhbnRlcyBNYXRjaGluZzogbG9jYWxob3N0IFVORCAxMjcuMC4wLjEg KFVzZXIga29lbm5lbg0KICAgICAgICAgICAgICAgICMgdmlhIEJvb2ttYXJrIGF1ZiBkaWUgTG9v cGJhY2stSVAgZ2VsYW5kZXQgc2VpbikuIEJlaWRlDQogICAgICAgICAgICAgICAgIyBWYXJpYW50 ZW4gemVpZ2VuIGF1ZiBkZW5zZWxiZW4gTGlzdGVuZXIsIGtlaW4gQ1NSRi1SaXNpa28uDQogICAg ICAgICAgICAgICAgJE9yaWdpbkVybGF1YnQgPSBAKA0KICAgICAgICAgICAgICAgICAgICAiaHR0 cDovL2xvY2FsaG9zdDokUG9ydCIsDQogICAgICAgICAgICAgICAgICAgICJodHRwOi8vMTI3LjAu MC4xOiRQb3J0Ig0KICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICBpZiAoJE9yaWdp biAtYW5kICgkT3JpZ2luRXJsYXVidCAtbm90Y29udGFpbnMgJE9yaWdpbikpIHsNCiAgICAgICAg ICAgICAgICAgICAgRGVidWctTG9nICdTRUMnICJDU1JGOiAkTWV0aG9kICRQYXRoIHZvbiBPcmln aW49JE9yaWdpbiBhYmdlbGVobnQiICdyZWQnDQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJy b3IgJFJlcyAnQ3Jvc3MtT3JpZ2luLVJlcXVlc3QgYWJnZWxlaG50JyA0MDMNCiAgICAgICAgICAg ICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IExJRkVDWUNMRSA9PT09PT09PT09PT09 PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvaGVhcnRiZWF0JyAtYW5k ICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRzY3JpcHQ6TGFzdEhlYXJ0 YmVhdCA9IEdldC1EYXRlDQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVz ID0gJ29rJyB9OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRo IC1lcSAnL2FwaS9zaHV0ZG93bicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAg ICAgICAgICAjIEJlYWNvbiB2b20gQnJvd3NlciBiZWkgVGFiL1dpbmRvdy1DbG9zZS4gSGVhcnRi ZWF0LVVociAyNXMNCiAgICAgICAgICAgICAgICAjIHp1cnVlY2tkcmVoZW4gLT4gU2VydmVyIHN0 aXJidCBpbiA8PTVzIChrdXJ6ZSBSZWxvYWQtVG9sZXJhbnopLg0KICAgICAgICAgICAgICAgICRz Y3JpcHQ6TGFzdEhlYXJ0YmVhdCA9IChHZXQtRGF0ZSkuQWRkU2Vjb25kcygtKCRzY3JpcHQ6SGVh cnRiZWF0VGltZW91dFNlYyAtIDUpKQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7 IHN0YXR1cyA9ICdzaHV0ZG93biBlaW5nZWxlaXRldCcgfTsgY29udGludWUNCiAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gSU5GTyA9PT09PT09PT09 PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvaW5mbycgLWFuZCAk TWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgIFJlZnJlc2gtVXBkYXRlQ2hlY2sN CiAgICAgICAgICAgICAgICAkUm9sbGVBa3R1ZWxsID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAg ICAgICAgIFNlbmQtSnNvbiAkUmVzIChbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgICAgICBi ZW51dHplciAgICAgICAgICAgID0gR2V0LUFrdHVlbGxlckJlbnV0emVyDQogICAgICAgICAgICAg ICAgICAgIGlzdEFkbWluICAgICAgICAgICAgPSBUZXN0LUlzdEFkbWluDQogICAgICAgICAgICAg ICAgICAgIGlzdFN1cGVyVXNlciAgICAgICAgPSBUZXN0LUlzdFN1cGVyVXNlcg0KICAgICAgICAg ICAgICAgICAgICBpc3RGYWNoYXVmc2ljaHQgICAgID0gVGVzdC1Jc3RGYWNoYXVmc2ljaHQNCiAg ICAgICAgICAgICAgICAgICAgcm9sbGUgICAgICAgICAgICAgICA9ICRSb2xsZUFrdHVlbGwNCiAg ICAgICAgICAgICAgICAgICAgZGFyZlVlYmVyc2NocmVpYmVuICA9IFRlc3QtRGFyZlVlYmVyc2No cmVpYmVuICRSb2xsZUFrdHVlbGwNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyICAgICAgICAg ICAgICA9ICJodHRwOi8vbG9jYWxob3N0OiRQb3J0Ig0KICAgICAgICAgICAgICAgICAgICB1cGRh dGVBdmFpbGFibGUgICAgID0gJHNjcmlwdDpVcGRhdGVBdmFpbGFibGUNCiAgICAgICAgICAgICAg ICAgICAgcmVtb3RlVmVyc2lvbiAgICAgICA9ICRzY3JpcHQ6UmVtb3RlVmVyc2lvbg0KICAgICAg ICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gQURNSU4tQ09ORklHID09PT09PT09 PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbicgLWFu ZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgICRBZG1pbiA9IFJlYWQtSnNv bkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQWRtaW4p IHsgU2VuZC1FcnJvciAkUmVzICdhZG1pbi5qc29uIG5pY2h0IGdlZnVuZGVuJyA0MDQgfSBlbHNl IHsgU2VuZC1Kc29uICRSZXMgJEFkbWluIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbicgLWFuZCAk TWV0aG9kIC1lcSAnUFVUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFk bWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51 ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAg ICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdy b3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0YSA9ICRCb2R5IHwgQ29u dmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5qc29u JyAkRGF0YQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2FkbWluLmNvbmZpZy5n ZWFlbmRlcnQnIEB7IGJlcmVpY2ggPSAnYWRtaW4ta29uZmlndXJhdGlvbicgfQ0KICAgICAgICAg ICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsgY29udGlu dWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0g U1VQRVJVU0VSLVZFUldBTFRVTkcgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBp ZiAoJFBhdGggLWVxICcvYXBpL2FkbWluL3N1cGVydXNlcicgLWFuZCAkTWV0aG9kIC1lcSAnUFVU Jykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2Vu ZC1FcnJvciAkUmVzICdOdXIgU3VwZXJVc2VyIGR1ZXJmZW4gU3VwZXJVc2VyIHZlcndhbHRlbicg NDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0K ICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdB bmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4g PSBbb2JqZWN0W11dQCgkQm9keSB8IENvbnZlcnRGcm9tLUpzb24pICAjIEFycmF5LUVyaGFsdCB1 bnRlciBQUyA1LjEgYXVjaCBiZWkgMSBFbGVtZW50DQogICAgICAgICAgICAgICAgJEFkbWluID0g UmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJEFkbWluLlBT T2JqZWN0LlByb3BlcnRpZXNbJ3N1cGVyVXNlciddKSB7DQogICAgICAgICAgICAgICAgICAgICRB ZG1pbi5zdXBlclVzZXIgPSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAg ICAgICAgICAgICAgICAkQWRtaW4gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0 eSAtTmFtZSAnc3VwZXJVc2VyJyAtVmFsdWUgJERhdGVuDQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAg ICAgICAgICAkQW56YWhsID0gQCgkRGF0ZW4pLkNvdW50DQogICAgICAgICAgICAgICAgV3JpdGUt TG9nRWludHJhZyAnc3VwZXJ1c2VyLmdlYWVuZGVydCcgQHsgYW56YWhsID0gJEFuemFobCB9DQog ICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9 OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09 PT09PT09PSBGQUNIQVVGU0lDSFRFTi1WRVJXQUxUVU5HIChQaGFzZSBCKSA9PT09PT09PT09PT09 PT09PT09PT0NCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFdPQ0hFTk5PVEla IChXb2NoZW5wbGFuLUFuc2ljaHQsIHBlcnNpc3RlbnQgcHJvIEtXKSA9PT09PT09PT09PT09PT09 PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZy93b2NoZW5ub3Rp eicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICAkQm9keSA9IFJl YWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5k LUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgIHRyeSB7ICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uIH0gY2F0Y2ggeyBTZW5k LUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICRLd0tleSA9IGlmICgkQS5QU09iamVjdC5Qcm9wZXJ0aWVzWydrd0tleSddKSB7IChb c3RyaW5nXSRBLmt3S2V5KS5UcmltKCkgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICRU ZXh0ID0gaWYgKCRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RleHQnXSkgeyBbc3RyaW5nXSRBLnRl eHQgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgIGlmICgkS3dLZXkgLW5vdG1hdGNoICde XGR7NH0tV1xkezJ9JCcpIHsgU2VuZC1FcnJvciAkUmVzICdrd0tleSB1bmd1ZWx0aWcgKGVyd2Fy dGV0OiBZWVlZLVdubiknIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICMgVmVyZ2Fu Z2VuZSBXb2NoZW4gc2NocmVpYmdlc2NodWV0enQNCiAgICAgICAgICAgICAgICB0cnkgew0KICAg ICAgICAgICAgICAgICAgICAkSmFociA9IFtpbnRdJEt3S2V5LlN1YnN0cmluZygwLCA0KQ0KICAg ICAgICAgICAgICAgICAgICAkS3dOICA9IFtpbnRdJEt3S2V5LlN1YnN0cmluZyg2LCAyKQ0KICAg ICAgICAgICAgICAgICAgICAkSmFuNCA9IFtkYXRldGltZV06Om5ldygkSmFociwgMSwgNCkNCiAg ICAgICAgICAgICAgICAgICAgJFcxTW8gPSAkSmFuNC5BZGREYXlzKC0oW2ludF0kSmFuNC5EYXlP ZldlZWsgLSAxKSkNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRKYW40LkRheU9mV2VlayAtZXEg W1N5c3RlbS5EYXlPZldlZWtdOjpTdW5kYXkpIHsgJFcxTW8gPSAkSmFuNC5BZGREYXlzKC02KSB9 DQogICAgICAgICAgICAgICAgICAgICRLd1NvID0gJFcxTW8uQWRkRGF5cygoJEt3TiAtIDEpICog NyArIDYpDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlcyAna3dLZXkg dW5ndWVsdGlnJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBpZiAoJEt3U28uRGF0 ZSAtbHQgKEdldC1EYXRlKS5EYXRlKSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3Ig JFJlcyAnV29jaGUgYmVyZWl0cyBhYmdlbGF1ZmVuIC0gTm90aXogbmljaHQgZWRpdGllcmJhcicg NDAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB0cnkgew0K ICAgICAgICAgICAgICAgICAgICBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxhbnVu Zy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUGxhbnVuZykg eyByZXR1cm4gQHsgdHlwID0gJ2Vycm9yJzsgY29kZSA9IDQwNDsgbXNnID0gJ3BsYW51bmcuanNv biBuaWNodCBnZWZ1bmRlbicgfSB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAk UGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWyd3b2NoZW5ub3RpemVuJ10pIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90 ZVByb3BlcnR5IC1OYW1lICd3b2NoZW5ub3RpemVuJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmpl Y3QpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBp ZiAoW3N0cmluZ106OklzTnVsbE9yRW1wdHkoJFRleHQpKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRQbGFudW5nLndvY2hlbm5vdGl6ZW4uUFNPYmplY3QuUHJvcGVydGllc1sk S3dLZXldKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLndvY2hl bm5vdGl6ZW4uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJEt3S2V5KQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLndvY2hlbm5vdGl6ZW4uUFNPYmpl Y3QuUHJvcGVydGllc1skS3dLZXldKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRQbGFudW5nLndvY2hlbm5vdGl6ZW4uJEt3S2V5ID0gJFRleHQNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxh bnVuZy53b2NoZW5ub3RpemVuIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkg LU5hbWUgJEt3S2V5IC1WYWx1ZSAkVGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICMgQXVk aXQtSXRlci1DOiBITUFDLVJlLVNpZ24gLSBzb25zdCBsb2VzdCBJbnRlZ3JpdGFldHMtQ2hlY2sg RmVobGFsYXJtIGF1cy4NCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVBsYW51bmdNaXRJ bnRlZ3JpdGFldCAkUGxhbnVuZyBAKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBA eyB0eXAgPSAnb2snIH0NCiAgICAgICAgICAgICAgICAgICAgfSB8IE91dC1OdWxsDQogICAgICAg ICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAi JF8iIDUwMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgV3Jp dGUtTG9nRWludHJhZyAnd29jaGVubm90aXouZ2VhZW5kZXJ0JyBAeyBrd0tleSA9ICRLd0tleTsg bGFlbmdlID0gJFRleHQuTGVuZ3RoIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBA eyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBUQUdFU0RB VEVOLU9WRVJSSURFIEZVRVIgRUlORU4gVEFHIChCLjIgU1UtT3ZlcnJpZGUpID09PT09PT09PT09 PT09PT09PT09PQ0KICAgICAgICAgICAgIyBQT1NUIC9hcGkvcGxhbnVuZy90YWdlc2RhdGVuIHsg ZGF0dW0sIGRhdGVuIH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZy90 YWdlc2RhdGVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRS b2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1EYXJm VWViZXJzY2hyZWliZW4gJFJvbGxlKSkgeyBTZW5kLUVycm9yICRSZXMgJ051ciBTVS9GYWNoYXVm c2ljaHQgZGFyZiBUYWdlc2RhdGVuIGFucGFzc2VuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxs IC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgIHRyeSB7ICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1K c29uIH0gY2F0Y2ggeyBTZW5kLUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VzIEpTT04nIDQwMDsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRBLmRhdHVtIC1vciAkbnVsbCAtZXEg JEEuZGF0ZW4pIHsgU2VuZC1FcnJvciAkUmVzICdkYXR1bS9kYXRlbiBmZWhsdCcgNDAwOyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgJERhdHVtID0gW3N0cmluZ10kQS5kYXR1bQ0KICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIEludm9rZS1XaXRoRmlsZUxvY2sg J3BsYW51bmcuanNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFk LUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51 bGwgLWVxICRQbGFudW5nKSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBt c2cgPSAncGxhbnVuZy5qc29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAgICAg ICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RhZ2VzZGF0ZW4n XSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3RhZ2VzZGF0ZW4nIC1WYWx1ZSAoTmV3LU9i amVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkUGxhbnVuZy50YWdlc2RhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXNbJERh dHVtXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnRhZ2VzZGF0ZW4u JERhdHVtID0gJEEuZGF0ZW4NCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcudGFnZXNkYXRlbiB8IEFkZC1NZW1iZXIg LU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFsdWUgJEEuZGF0ZW4NCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVBs YW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyBAKCBAeyBraW5kID0gJ3RhZ2VzZGF0ZW4nOyBk YXR1bSA9ICREYXR1bSB9ICkNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBAeyB0eXAg PSAnb2snIH0NCiAgICAgICAgICAgICAgICAgICAgfSB8IE91dC1OdWxsDQogICAgICAgICAgICAg ICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiJF8iIDUw MzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9n RWludHJhZyAndGFnZXNkYXRlbi5vdmVycmlkZScgQHsgZGF0dW0gPSAkRGF0dW07IHJvbGxlID0g JFJvbGxlIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2Vz cGVpY2hlcnQnIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBST1RBVElPTi1TTE9UIChCLjI6IGt1 ZW5mdGlnZSBUZXJtaW5lIGltIFp5a2x1cykgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAg ICAgICAjIFBPU1QgL2FwaS9hZG1pbi9yb3RhdGlvbi1zbG90IHsgZGF0dW0sIGRhdGVuIH0NCiAg ICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vcm90YXRpb24tc2xvdCcgLWFuZCAk TWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJv bGxlDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtRGFyZlVlYmVyc2NocmVpYmVuICRS b2xsZSkpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIgU1UvRmFjaGF1ZnNpY2h0IGRhcmYgUm90YXRp b24gYWVuZGVybicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFk LUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1F cnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAg ICAgICB0cnkgeyAkQSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbiB9IGNhdGNoIHsgU2VuZC1F cnJvciAkUmVzICdVbmd1ZWx0aWdlcyBKU09OJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAg ICAgICBpZiAoLW5vdCAkQS5kYXR1bSAtb3IgJG51bGwgLWVxICRBLmRhdGVuKSB7IFNlbmQtRXJy b3IgJFJlcyAnZGF0dW0vZGF0ZW4gZmVobHQnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAg ICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAg JFJvdCA9ICRudWxsDQogICAgICAgICAgICAgICAgaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0 aWVzWyd0YWdlc2RhdGVuUm90YXRpb24nXSkgeyAkUm90ID0gJEFkbWluLnRhZ2VzZGF0ZW5Sb3Rh dGlvbiB9DQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUm90IC1vciAtbm90ICRSb3Qu UFNPYmplY3QuUHJvcGVydGllc1sndGFnZSddIC1vciBAKCRSb3QudGFnZSkuQ291bnQgLWVxIDAp IHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdSb3RhdGlvbiBoYXQga2Vp bmUgVGFnZScgNDAwOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAkV29jaGVuID0gaWYgKCRSb3QuUFNPYmplY3QuUHJvcGVydGllc1snd29jaGVuQW56YWhsJ10p IHsgW2ludF0kUm90LndvY2hlbkFuemFobCB9IGVsc2UgeyAzIH0NCiAgICAgICAgICAgICAgICAk U3RhcnRTdHIgPSBpZiAoJFJvdC5QU09iamVjdC5Qcm9wZXJ0aWVzWydzdGFydERhdHVtJ10pIHsg W3N0cmluZ10kUm90LnN0YXJ0RGF0dW0gfSBlbHNlIHsgJzIwMjYtMDEtMDUnIH0NCiAgICAgICAg ICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAkU3RhcnREID0gW2RhdGV0aW1lXTo6 UGFyc2UoJFN0YXJ0U3RyKQ0KICAgICAgICAgICAgICAgICAgICAkWmllbEQgPSBbZGF0ZXRpbWVd OjpQYXJzZShbc3RyaW5nXSRBLmRhdHVtKQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAg ICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ0RhdHVtIHVuZ3VlbHRpZycgNDAwOyBj b250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkTW9kdWx1cyA9ICRX b2NoZW4gKiA3DQogICAgICAgICAgICAgICAgaWYgKCRNb2R1bHVzIC1sZSAwKSB7IFNlbmQtRXJy b3IgJFJlcyAnUm90YXRpb24gaGF0IGtlaW5lIFRhZ2UnIDQwMDsgY29udGludWUgfQ0KICAgICAg ICAgICAgICAgICREaWZmID0gW2ludF0oW21hdGhdOjpSb3VuZCgoJFppZWxEIC0gJFN0YXJ0RCku VG90YWxEYXlzKSkNCiAgICAgICAgICAgICAgICAkSWR4ID0gKCgkRGlmZiAlICRNb2R1bHVzKSAr ICRNb2R1bHVzKSAlICRNb2R1bHVzDQogICAgICAgICAgICAgICAgJFRhZ2UgPSBAKCRSb3QudGFn ZSkNCiAgICAgICAgICAgICAgICBpZiAoJElkeCAtZ2UgJFRhZ2UuQ291bnQpIHsgJElkeCA9ICRJ ZHggJSAkVGFnZS5Db3VudCB9DQogICAgICAgICAgICAgICAgJFRhZ2VbJElkeF0gPSAkQS5kYXRl bg0KICAgICAgICAgICAgICAgICRSb3QudGFnZSA9ICRUYWdlDQogICAgICAgICAgICAgICAgJEFk bWluLnRhZ2VzZGF0ZW5Sb3RhdGlvbiA9ICRSb3QNCiAgICAgICAgICAgICAgICBXcml0ZS1Kc29u RmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJh ZyAncm90YXRpb24uc2xvdC5nZWFlbmRlcnQnIEB7IGRhdHVtID0gJEEuZGF0dW07IGlkeCA9ICRJ ZHg7IHJvbGxlID0gJFJvbGxlIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBz dGF0dXMgPSAnZ2VzcGVpY2hlcnQnOyBpZHggPSAkSWR4IH0NCiAgICAgICAgICAgICAgICBjb250 aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIE51ciBTdXBlclVzZXIgZGFyZiBk aWUgTGlzdGUgYWVuZGVybiAtIHNvbnN0IGtvZW5udGVuIEZhY2hhdWZzaWNodGVuDQogICAgICAg ICAgICAjIHNpY2ggZ2VnZW5zZWl0aWcgaGluenVmdWVnZW4gb2huZSBTdXBlclVzZXItWnVzdGlt bXVuZy4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vZmFjaGF1ZnNpY2h0 ZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAo VGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1cGVyVXNlciBkdWVy ZmVuIEZhY2hhdWZzaWNodGVuIHZlcndhbHRlbicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAg ICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAt ZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4gPSBbb2JqZWN0W11dQCgkQm9keSB8IENvbnZl cnRGcm9tLUpzb24pDQogICAgICAgICAgICAgICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAnYWRt aW4uanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNb J2ZhY2hhdWZzaWNodGVuJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgJEFkbWluLmZhY2hhdWZz aWNodGVuID0gJERhdGVuDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAg ICAgICAgJEFkbWluIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUg J2ZhY2hhdWZzaWNodGVuJyAtVmFsdWUgJERhdGVuDQogICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAgICAg ICAgICBXcml0ZS1Mb2dFaW50cmFnICdmYWNoYXVmc2ljaHRlbi5nZWFlbmRlcnQnIEB7IGFuemFo bCA9IEAoJERhdGVuKS5Db3VudCB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsg c3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBGRUlFUlRBR0UgLyBGRVJJRU4gLyBTT05E RVJURVJNSU5FID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1l cSAnL2FwaS9hZG1pbi9mZWllcnRhZ2UnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAg ICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdL ZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5 ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7 IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAg ICAgICAgICAgICAgJERhdGVuID0gW29iamVjdFtdXUAoJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29u KSAgIyBBcnJheS1FcmhhbHQgdW50ZXIgUFMgNS4xIGF1Y2ggYmVpIDEgRWxlbWVudA0KICAgICAg ICAgICAgICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAg ICAgICAgJEFkbWluLmZlaWVydGFnZSA9ICREYXRlbg0KICAgICAgICAgICAgICAgIFdyaXRlLUpz b25GaWxlICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50 cmFnICdmZWllcnRhZ2UuZ2VhZW5kZXJ0JyBAe30NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24g JFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH07IGNvbnRpbnVlDQogICAgICAgICAgICB9 DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluL2ZlcmllbicgLWFuZCAkTWV0 aG9kIC1lcSAnUFVUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWlu KSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9 DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAg IGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3Nz JyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4gPSBbb2JqZWN0W11dQCgk Qm9keSB8IENvbnZlcnRGcm9tLUpzb24pICAjIEFycmF5LUVyaGFsdCB1bnRlciBQUyA1LjEgYXVj aCBiZWkgMSBFbGVtZW50DQogICAgICAgICAgICAgICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAn YWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICAkQWRtaW4uZmVyaWVuID0gJERhdGVuDQogICAg ICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAg ICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2Zlcmllbi5nZWFlbmRlcnQnIEB7fQ0KICAgICAgICAg ICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsgY29udGlu dWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IEJF U1BSRUNIVU5HU1ZPUkxBR0VOIChCLjQpID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAg ICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbi9iZXNwcmVjaHVuZ3N2b3JsYWdlbicgLWFuZCAk TWV0aG9kIC1lcSAnUFVUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFk bWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51 ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAg ICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdy b3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4gPSBbb2JqZWN0W11d QCgkQm9keSB8IENvbnZlcnRGcm9tLUpzb24pDQogICAgICAgICAgICAgICAgJEFkbWluID0gUmVh ZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJEFkbWluLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ2Jlc3ByZWNodW5nc1ZvcmxhZ2VuJ10pIHsNCiAgICAgICAgICAgICAg ICAgICAgJEFkbWluLmJlc3ByZWNodW5nc1ZvcmxhZ2VuID0gJERhdGVuDQogICAgICAgICAgICAg ICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJEFkbWluIHwgQWRkLU1lbWJlciAtTWVt YmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ2Jlc3ByZWNodW5nc1ZvcmxhZ2VuJyAtVmFsdWUg JERhdGVuDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxl ICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdi ZXNwcmVjaHVuZ3N2b3JsYWdlbi5nZWFlbmRlcnQnIEB7IGFuemFobCA9IEAoJERhdGVuKS5Db3Vu dCB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNo ZXJ0JyB9OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoJFBhdGgg LWVxICcvYXBpL2FkbWluL3NvbmRlcnRlcm1pbmUnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsN CiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAk UmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAg ICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRC b2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9 DQogICAgICAgICAgICAgICAgJFJvaCA9IFtvYmplY3RbXV1AKCRCb2R5IHwgQ29udmVydEZyb20t SnNvbikgICMgQXJyYXktRXJoYWx0IHVudGVyIFBTIDUuMSBhdWNoIGJlaSAxIEVsZW1lbnQNCiAg ICAgICAgICAgICAgICAjIFdoaXRlbGlzdCAoQXVkaXQtSXRlci1DKTogbnVyIDExIGVybGF1YnRl IEZlbGRlciBwcm8gRWludHJhZyBwZXJzaXN0aWVyZW4NCiAgICAgICAgICAgICAgICAkRXJsYXVi dCA9IEAoJ2lkJywnZGF0dW0nLCdkYXR1bUJpcycsJ3RpdGVsJywndGV4dCcsJ2ljb24nLCd0eXAn LCd3YXJuTW9kdXMnLCdrYXRlZ29yaWUnLCdsb2dvcycsJ2xvZ29EYXJzdGVsbHVuZycpDQogICAg ICAgICAgICAgICAgJERhdGVuID0gQCgpDQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJFJvaDEg aW4gJFJvaCkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRSb2gxKSB7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgJFNhdWJlciA9IFtvcmRlcmVkXUB7fQ0KICAg ICAgICAgICAgICAgICAgICBmb3JlYWNoICgkRmVsZCBpbiAkRXJsYXVidCkgew0KICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRSb2gxLlBTT2JqZWN0LlByb3BlcnRpZXNbJEZlbGRdKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgJFNhdWJlclskRmVsZF0gPSAkUm9oMS4kRmVsZA0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICREYXRlbiArPSBbcHNjdXN0b21vYmplY3RdJFNhdWJlcg0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4gPSBbb2JqZWN0W11dJERhdGVuDQogICAg ICAgICAgICAgICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAg ICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NvbmRlcnRlcm1pbmUnXSkg ew0KICAgICAgICAgICAgICAgICAgICAkQWRtaW4uc29uZGVydGVybWluZSA9ICREYXRlbg0KICAg ICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRBZG1pbiB8IEFkZC1N ZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdzb25kZXJ0ZXJtaW5lJyAtVmFs dWUgJERhdGVuDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25G aWxlICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFn ICdzb25kZXJ0ZXJtaW5lLmdlYWVuZGVydCcgQHsgYW56YWhsID0gQCgkRGF0ZW4pLkNvdW50IH0N CiAgICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FDQogICAgICAgICAgICAg ICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dF bnRyeSAnc29uZGVydGVybWluZScgJG51bGwgJG51bGwgJG51bGwgJFVzZXJuYW1lICRSb2xsZSBA eyBhbnphaGwgPSBAKCREYXRlbikuQ291bnQgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAk UmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsgY29udGludWUNCiAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gU1RBTkRPUlRFID09PT09PT09 PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbi9zdGFu ZG9ydGUnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5v dCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcn IDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXEN CiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAn QW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJERhdGVu ID0gW29iamVjdFtdXUAoJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uKSAgIyBBcnJheS1FcmhhbHQg dW50ZXIgUFMgNS4xIGF1Y2ggYmVpIDEgRWxlbWVudA0KICAgICAgICAgICAgICAgICRBZG1pbiA9 IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgaWYgKCRBZG1pbi5Q U09iamVjdC5Qcm9wZXJ0aWVzWydzdGFuZG9ydGUnXSkgew0KICAgICAgICAgICAgICAgICAgICAk QWRtaW4uc3RhbmRvcnRlID0gJERhdGVuDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAg ICAgICAgICAgICAgICAgJEFkbWluIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVy dHkgLU5hbWUgJ3N0YW5kb3J0ZScgLVZhbHVlICREYXRlbg0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAg ICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnc3RhbmRvcnRlLmdlYWVuZGVydCcgQHt9DQogICAg ICAgICAgICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAgICRS b2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICBBZGQtQ2hhbmdlTG9nRW50cnkg J3N0YW5kb3J0ZScgJG51bGwgJG51bGwgJG51bGwgJFVzZXJuYW1lICRSb2xsZSBAe30NCiAgICAg ICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH07IGNv bnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09 PT09IEVJTlNURUxMVU5HRU4gPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAo JFBhdGggLWVxICcvYXBpL2FkbWluL2VpbnN0ZWxsdW5nZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BV VCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1F cnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwg LWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgJERhdGVuID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29u DQogICAgICAgICAgICAgICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAg ICAgICAgICAgICAgICAjIFdoaXRlbGlzdCBhbmFsb2cgenUgc2VydmVyLnB5OjI3NjEgLSBIZWFk ZXItS29uZmlnICsgYWxsZQ0KICAgICAgICAgICAgICAgICMgVG9wLUxldmVsLUJyYW5kaW5nL0Vp bnN0ZWxsdW5nZW4tRmVsZGVyLg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRLZXkgaW4gQCgn amFocicsJ2luYWt0aXZpdGFldE1pbnV0ZW4nLCdpbmZvdGV4dCcsJ3N1cHBvcnRpbmZvJywnc2No bGllc3NpbmZvJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGFudW5n c05hbWUnLCdwbGFudW5nc0t1cnonLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2VyaW5uZXJ1bmcnLCdjdXN0b21Mb2dvJywnY3VzdG9tTG9nb0hvZWhlJywNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJiaW5kbGljaGtlaXRzZmVuc3RlcicsJ2Fs bGdlbWVpbmVIaWxmZScsJ2JlZGllbnVuZ3NIaW53ZWlzZScsJ3dvY2hlbnBsYW5Lb3BmJywNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWFkZXJLb25maWcnLCdoZWFkZXJM YWJlbHMnLCdjb3VudGVyS29uZmlnJywnbWFya2VyS29uZmlnJywNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICd2b3JnYWJlQWxzUGlsbGUnLCdtZWRpZW5LYXRlZ29yaWVuJykp IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCREYXRlbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRL ZXldKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0LlByb3Bl cnRpZXNbJEtleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWRtaW4uJEtleSA9 ICREYXRlbi4kS2V5DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRBZG1pbiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICRLZXkgLVZhbHVlICREYXRlbi4kS2V5DQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAg ICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2VpbnN0ZWxsdW5nZW4uZ2VhZW5kZXJ0JyBAe30NCiAgICAg ICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH07IGNv bnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09 PT09IFBMQU5VTkcgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGgg LWVxICcvYXBpL3BsYW51bmcnIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAg ICAgICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAg ICAgICBpZiAoJG51bGwgLWVxICRQbGFudW5nKSB7IFNlbmQtRXJyb3IgJFJlcyAncGxhbnVuZy5q c29uIG5pY2h0IGdlZnVuZGVuJyA0MDQgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgIyBJ bnRlZ3JpdGFldHMtQ2hlY2sgTklDSFQgaGllciBpbmxpbmUgLS0gZGVyIEZyb250ZW5kLXN5bmMt Y2xpZW50DQogICAgICAgICAgICAgICAgICAgICMgcG9sbHQgL2FwaS9pbnRlZ3JpdGFldC9zdGF0 dXMgc2VwYXJhdC4gSW5saW5lLUNoZWNrIHZlcmRvcHBlbHQNCiAgICAgICAgICAgICAgICAgICAg IyBiZWkgamVkZW0gUGFnZS1Mb2FkIGRhcyBSZWFkK0l0ZXJhdGUtVm9sdW1lbiwgd2FzIGF1ZiBT TUItDQogICAgICAgICAgICAgICAgICAgICMgU2hhcmUgKFE6KSBtZXJrbGljaCBibG9ja2llcnQg dW5kIGltIFdvcnN0LUNhc2UgZGVuDQogICAgICAgICAgICAgICAgICAgICMgT3V0cHV0U3RyZWFt LVdyaXRlIHRpbWVvdXRldCAoSFRUUC5TWVMgLyBCcm93c2VyLUFib3J0KS4NCiAgICAgICAgICAg ICAgICAgICAgU2VuZC1Kc29uICRSZXMgJFBsYW51bmcNCiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09 PT09PT09PT09PT09PT09PT0gSU5URUdSSVRBRVQgKFBoYXNlIEcpID09PT09PT09PT09PT09PT09 PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9pbnRlZ3JpdGFldC9zdGF0dXMn IC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICAkZXJnID0gJG51bGwN CiAgICAgICAgICAgICAgICB0cnkgeyAkZXJnID0gSW52b2tlLUludGVncml0YWV0UHJ1ZWZ1bmcg JGZhbHNlIH0gY2F0Y2ggeyAkZXJnID0gQHsgb2sgPSAkZmFsc2U7IGZlaGxlciA9ICIkXyI7IHZl cmxldHp1bmdlbiA9IEAoKSB9IH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyAkZXJn DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlm ICgkUGF0aCAtZXEgJy9hcGkvaW50ZWdyaXRhZXQvbmV1LXNpZ25pZXJlbicgLWFuZCAkTWV0aG9k IC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVz ZXIpKSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1cGVyVXNlciBkYXJmIG5ldSBzaWduaWVyZW4n IDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICMgVmVyaWZ5IGlzdCBSRUFELU9OTFkg dW5kIGxhZXVmdCBWT1IgZGVtIExvY2ssIGRhbWl0IGRlciBMb2NrDQogICAgICAgICAgICAgICAg IyBzbyBrdXJ6IHdpZSBtb2VnbGljaCBnZWhhbHRlbiB3aXJkLiBSZXN1bHRhdCBhbHMNCiAgICAg ICAgICAgICAgICAjIHZlcmxldHp1bmdlblp1dm9yIGluIFJlc3BvbnNlIOKAlCBGcm9udGVuZCB6 ZWlndCBkYXMgaW0gVG9hc3QNCiAgICAgICAgICAgICAgICAjIChzeW5jLWNsaWVudC5qczoyNTIg IkludGVncml0YWV0IG5ldSBzaWduaWVydCAoTiBWZXJsZXR6dW5nZW4NCiAgICAgICAgICAgICAg ICAjIGF1ZmdlbG9lc3QpIikuIE1pcnJvciB6dSBzZXJ2ZXIucHk6MjI2My0yMjg1Lg0KICAgICAg ICAgICAgICAgICRQbGFudW5nUHJlID0gUmVhZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAg ICAgICAgICAgICAgICRWZXJsZXR6dW5nZW5adXZvciA9IEAoKQ0KICAgICAgICAgICAgICAgIGlm ICgkbnVsbCAtbmUgJFBsYW51bmdQcmUpIHsNCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgJFZl cmxldHp1bmdlblp1dm9yID0gVmVyaWZ5LVBsYW51bmdJbnRlZ3JpdGFldCAkUGxhbnVuZ1ByZSB9 IGNhdGNoIHsgJFZlcmxldHp1bmdlblp1dm9yID0gQCgpIH0NCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgJFN0YXJ0VHMgPSBHZXQtRGF0ZQ0KICAgICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgICAgIEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcuanNvbicg ew0KICAgICAgICAgICAgICAgICAgICAgICAgJFAgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpz b24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRQKSB7IFdyaXRlLVBs YW51bmdNaXRJbnRlZ3JpdGFldCAkUCB9DQogICAgICAgICAgICAgICAgICAgIH0gNjAwMDAgfCBP dXQtTnVsbA0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBX cml0ZS1TdGFydHVwTG9nICJGRUhMRVIgbmV1LXNpZ25pZXJlbjogJF8gKCQoJF8uU2NyaXB0U3Rh Y2tUcmFjZSkpIg0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgIk5ldS1TaWdu aWVyZW4gZmVobGdlc2NobGFnZW46ICRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICREYXVlck1zID0gW2ludF0oKEdldC1EYXRlKSAtICRTdGFydFRz KS5Ub3RhbE1pbGxpc2Vjb25kcw0KICAgICAgICAgICAgICAgICRzY3JpcHQ6SW50ZWdyaXR5VmVy aWZ5Q2FjaGUgPSAkbnVsbA0KICAgICAgICAgICAgICAgICRWekNvdW50ID0gQCgkVmVybGV0enVu Z2VuWnV2b3IpLkNvdW50DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnaW50ZWdy aXRhZXQubmV1X3NpZ25pZXJ0JyBAeyByb2xsZSA9IChHZXQtVXNlclJvbGxlKTsgZGF1ZXJNcyA9 ICREYXVlck1zOyB2ZXJsZXR6dW5nZW5adXZvciA9ICRWekNvdW50IH0NCiAgICAgICAgICAgICAg ICBTZW5kLUpzb24gJFJlcyBAeyBvayA9ICR0cnVlOyBkYXVlck1zID0gJERhdWVyTXM7IHZlcmxl dHp1bmdlblp1dm9yID0gJFZ6Q291bnQgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFpFTEwtTE9D SyAoUGhhc2UgQTEpID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgIyBQT1NUIC9h cGkvbG9jay96ZWxsZSAgeyBkYXR1bSwgcGVyc29uSWQgfSAtPiB7IG9rLCB0b2tlbiwgZXhwaXJl c0F0IH0gb2RlciA0MjMgeyBzcGVycmVyLCBzZWl0LCByb2xsZSB9DQogICAgICAgICAgICBpZiAo JFBhdGggLWVxICcvYXBpL2xvY2svemVsbGUnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQog ICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlm ICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0 MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQSA9ICRCb2R5IHwgQ29udmVydEZyb20t SnNvbg0KICAgICAgICAgICAgICAgICREYXR1bSA9IFtzdHJpbmddJEEuZGF0dW0NCiAgICAgICAg ICAgICAgICAkUGVyc29uSWQgPSBbc3RyaW5nXSRBLnBlcnNvbklkDQogICAgICAgICAgICAgICAg aWYgKC1ub3QgKFRlc3QtTG9ja1NhZmVEYXR1bSAkRGF0dW0pIC1vciAtbm90IChUZXN0LUxvY2tT YWZlSWQgJFBlcnNvbklkKSkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMg J1VuZ3VlbHRpZ2UgZGF0dW0vcGVyc29uSWQnIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAg ICAgICAgICRSb2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICAkUmVzdWx0ID0g QWNxdWlyZS1DZWxsTG9jayAkRGF0dW0gJFBlcnNvbklkICRVc2VybmFtZSAkUm9sbGUgJGZhbHNl DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJFJlc3VsdC5vaykgew0KICAgICAgICAgICAgICAg ICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICAgICAgZmVobGVyICAg PSAnZ2VzcGVycnQnDQogICAgICAgICAgICAgICAgICAgICAgICBtZWxkdW5nICA9ICJXaXJkIGJl YXJiZWl0ZXQgdm9uICQoJFJlc3VsdC5leGlzdGluZy51c2VybmFtZSkiDQogICAgICAgICAgICAg ICAgICAgICAgICBzcGVycmVyICA9ICRSZXN1bHQuZXhpc3RpbmcudXNlcm5hbWUNCiAgICAgICAg ICAgICAgICAgICAgICAgIHJvbGxlICAgID0gJFJlc3VsdC5leGlzdGluZy5yb2xsZQ0KICAgICAg ICAgICAgICAgICAgICAgICAgc2VpdCAgICAgPSAkUmVzdWx0LmV4aXN0aW5nLmxvY2tlZEF0DQog ICAgICAgICAgICAgICAgICAgICAgICBrYW5uRm9yY2UgPSAoVGVzdC1EYXJmVWViZXJzY2hyZWli ZW4gJFJvbGxlKQ0KICAgICAgICAgICAgICAgICAgICB9IDQyMw0KICAgICAgICAgICAgICAgICAg ICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24g JFJlcyBAew0KICAgICAgICAgICAgICAgICAgICBvayAgICAgICA9ICR0cnVlDQogICAgICAgICAg ICAgICAgICAgIHRva2VuICAgID0gJFJlc3VsdC5sb2NrLnRva2VuDQogICAgICAgICAgICAgICAg ICAgIGRhdHVtICAgID0gJERhdHVtDQogICAgICAgICAgICAgICAgICAgIHBlcnNvbklkID0gJFBl cnNvbklkDQogICAgICAgICAgICAgICAgICAgIHJvbGxlICAgID0gJFJvbGxlDQogICAgICAgICAg ICAgICAgICAgIGxvY2tlZEF0ID0gJFJlc3VsdC5sb2NrLmxvY2tlZEF0DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICMgUE9TVCAvYXBpL2xvY2svemVsbGUvZm9yY2UgIHsgZGF0dW0sIHBlcnNvbklkIH0gLT4g dWViZXJzY2hyZWlidCBmcmVtZGVuIExvY2sNCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9h cGkvbG9jay96ZWxsZS9mb3JjZScgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAg ICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxs IC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQog ICAgICAgICAgICAgICAgJERhdHVtID0gW3N0cmluZ10kQS5kYXR1bQ0KICAgICAgICAgICAgICAg ICRQZXJzb25JZCA9IFtzdHJpbmddJEEucGVyc29uSWQNCiAgICAgICAgICAgICAgICBpZiAoLW5v dCAoVGVzdC1Mb2NrU2FmZURhdHVtICREYXR1bSkgLW9yIC1ub3QgKFRlc3QtTG9ja1NhZmVJZCAk UGVyc29uSWQpKSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVs dGlnZSBkYXR1bS9wZXJzb25JZCcgNDAwOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FDQogICAgICAgICAgICAgICAg JFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LURh cmZVZWJlcnNjaHJlaWJlbiAkUm9sbGUpKSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJy b3IgJFJlcyAnRm9yY2UtTG9jayBudXIgZnVlciBGYWNoYXVmc2ljaHQvU3VwZXJVc2VyJyA0MDM7 IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICMgT3JpZ2luYWwt T3duZXIgdm9yIEZvcmNlIGxlc2VuIC0tIGZ1ZXIgQXVkaXQtVHJhaWwgaW0gTG9nYnVjaC4NCiAg ICAgICAgICAgICAgICAkRXhpc3RpbmdMb2NrRnVlckxvZyA9IFJlYWQtQ2VsbExvY2sgJERhdHVt ICRQZXJzb25JZA0KICAgICAgICAgICAgICAgICRPcmlnaW5hbE93bmVyID0gaWYgKCRudWxsIC1u ZSAkRXhpc3RpbmdMb2NrRnVlckxvZykgeyAkRXhpc3RpbmdMb2NrRnVlckxvZy51c2VybmFtZSB9 IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgJFJlc3VsdCA9IEFjcXVpcmUtQ2VsbExv Y2sgJERhdHVtICRQZXJzb25JZCAkVXNlcm5hbWUgJFJvbGxlICR0cnVlDQogICAgICAgICAgICAg ICAgV3JpdGUtTG9nRWludHJhZyAnbG9jay5mb3JjZScgQHsNCiAgICAgICAgICAgICAgICAgICAg ZGF0dW0gICAgICAgICA9ICREYXR1bQ0KICAgICAgICAgICAgICAgICAgICBwZXJzb25JZCAgICAg ID0gJFBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgIHJvbGxlICAgICAgICAgPSAkUm9sbGUN CiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxPd25lciA9ICRPcmlnaW5hbE93bmVyDQogICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAg ICAgICAgICAgICAgIG9rICAgICAgID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgdG9rZW4g ICAgPSAkUmVzdWx0LmxvY2sudG9rZW4NCiAgICAgICAgICAgICAgICAgICAgZGF0dW0gICAgPSAk RGF0dW0NCiAgICAgICAgICAgICAgICAgICAgcGVyc29uSWQgPSAkUGVyc29uSWQNCiAgICAgICAg ICAgICAgICAgICAgcm9sbGUgICAgPSAkUm9sbGUNCiAgICAgICAgICAgICAgICAgICAgbG9ja2Vk QXQgPSAkUmVzdWx0LmxvY2subG9ja2VkQXQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyBQT1NUIC9hcGkv bG9jay96ZWxsZS9oZWFydGJlYXQgIHsgdG9rZW4gfSAtPiBha3R1YWxpc2llcnQgbGFzdEJlYXQN CiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvbG9jay96ZWxsZS9oZWFydGJlYXQnIC1h bmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJv ZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJv ciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAg ICAkQSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICRUb2tlbiA9 IGlmICgkQS5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0b2tlbiddKSB7IFtzdHJpbmddJEEudG9rZW4g fSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0 ZVNwYWNlKCRUb2tlbikpIHsgU2VuZC1FcnJvciAkUmVzICdUb2tlbiBmZWhsdCcgNDAwOyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgJFJlc3VsdCA9IFJlZnJlc2gtQ2VsbExvY2sgJFRva2Vu DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJFJlc3VsdC5vaykgew0KICAgICAgICAgICAgICAg ICAgICBTZW5kLUpzb24gJFJlcyBAeyBmZWhsZXIgPSAndW5iZWthbm50ZXJfbG9jayc7IG1lbGR1 bmcgPSAnTG9jayBleGlzdGllcnQgbmljaHQgKG1laHIpLicgfSA0MDQNCiAgICAgICAgICAgICAg ICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1K c29uICRSZXMgQHsgb2sgPSAkdHJ1ZTsgbGFzdEJlYXQgPSAkUmVzdWx0LmxvY2subGFzdEJlYXQg fQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICMgREVMRVRFIC9hcGkvbG9jay96ZWxsZSAgeyB0b2tlbiB9IC0+IExvY2sgZnJlaWdlYmVuDQog ICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2xvY2svemVsbGUnIC1hbmQgJE1ldGhvZCAt ZXEgJ0RFTEVURScpIHsNCiAgICAgICAgICAgICAgICAjIERFTEVURS1Cb2R5IGxlc2VuIChIdHRw TGlzdGVuZXIgdW50ZXJzdHVldHp0IGRhcykNCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQt Qm9keSAkUmVxDQogICAgICAgICAgICAgICAgJFRva2VuID0gJG51bGwNCiAgICAgICAgICAgICAg ICBpZiAoJEJvZHkpIHsNCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJEEuUFNPYmplY3QuUHJvcGVydGllc1sndG9rZW4nXSkgeyAkVG9rZW4gPSBb c3RyaW5nXSRBLnRva2VuIH0NCiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7fQ0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAjIEF1Y2ggUXVlcnktU3RyaW5nIHVudGVyc3R1 ZXR6ZW4sIGZ1ZXIgc2VuZEJlYWNvbi1GYWVsbGUNCiAgICAgICAgICAgICAgICBpZiAoW3N0cmlu Z106OklzTnVsbE9yV2hpdGVTcGFjZSgkVG9rZW4pIC1hbmQgJFJlcS5VcmwuUXVlcnkpIHsNCiAg ICAgICAgICAgICAgICAgICAgJFEgPSBbU3lzdGVtLldlYi5IdHRwVXRpbGl0eV06OlBhcnNlUXVl cnlTdHJpbmcoJFJlcS5VcmwuUXVlcnkpDQogICAgICAgICAgICAgICAgICAgICRUb2tlbiA9IFtz dHJpbmddJFFbJ3Rva2VuJ10NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYg KFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRva2VuKSkgeyBTZW5kLUVycm9yICRSZXMg J1Rva2VuIGZlaGx0JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkUmVzdWx0ID0g UmVsZWFzZS1DZWxsTG9jayAkVG9rZW4NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBA eyBvayA9ICRSZXN1bHQub2sgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgICMgR0VUIC9hcGkvbG9jay96ZWxsZW4gLT4gTGlzdGUgYWxsZXIg YWt0aXZlbiBMb2NrcyAoZnVlciBMaXZlLUluZGljYXRvci1SZW5kZXIpDQogICAgICAgICAgICBp ZiAoJFBhdGggLWVxICcvYXBpL2xvY2svemVsbGVuJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7 DQogICAgICAgICAgICAgICAgJExvY2tzID0gR2V0LUFsbEFjdGl2ZUNlbGxMb2Nrcw0KICAgICAg ICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IGxvY2tzID0gJExvY2tzIH0NCiAgICAgICAgICAg ICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIEdFVCAvYXBpL3Bs YW51bmcvY2hhbmdlcz9zZWl0PTxpc28tdHM+IC0+IERlbHRhLUxpc3RlIGZ1ZXIgTGl2ZS1TeW5j IChQaGFzZSBBNCkNCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZy9jaGFu Z2VzJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgJFEgPSBbU3lz dGVtLldlYi5IdHRwVXRpbGl0eV06OlBhcnNlUXVlcnlTdHJpbmcoJFJlcS5VcmwuUXVlcnkpDQog ICAgICAgICAgICAgICAgJFNlaXQgPSBbc3RyaW5nXSRRWydzZWl0J10NCiAgICAgICAgICAgICAg ICAkQ2hhbmdlcyA9IEdldC1DaGFuZ2VzU2luY2UgJFNlaXQNCiAgICAgICAgICAgICAgICBTZW5k LUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJUcyA9IChHZXQtRGF0ZSku VG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgICAgICBjaGFu Z2VzICA9ICRDaGFuZ2VzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRp bnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgWmVsbGUgYWVuZGVybg0KICAgICAg ICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL3plbGxlJyAtYW5kICRNZXRob2QgLWVx ICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAg ICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFn ZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEEgPSAkQm9keSB8 IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkRGF0dW0gPSBbc3RyaW5nXSRBLmRh dHVtDQogICAgICAgICAgICAgICAgJFBlcnNvbklkID0gW3N0cmluZ10kQS5wZXJzb25JZA0KICAg ICAgICAgICAgICAgICRXZXJ0ID0gaWYgKCRBLndlcnQpIHsgW3N0cmluZ10kQS53ZXJ0IH0gZWxz ZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAkSGF0UGZsaWNodCA9ICRBLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ3BmbGljaHQnXQ0KICAgICAgICAgICAgICAgICRQZmxpY2h0TmV1ID0gaWYgKCRIYXRQ ZmxpY2h0KSB7IFtib29sXSRBLnBmbGljaHQgfSBlbHNlIHsgJGZhbHNlIH0NCiAgICAgICAgICAg ICAgICAkSGF0RXJ3YXJ0ZXQgPSAkQS5QU09iamVjdC5Qcm9wZXJ0aWVzWydlcndhcnRldGVyQWx0 ZXJXZXJ0J10NCiAgICAgICAgICAgICAgICAkRXJ3YXJ0ZXQgPSBpZiAoJEhhdEVyd2FydGV0KSB7 IFtzdHJpbmddJEEuZXJ3YXJ0ZXRlckFsdGVyV2VydCB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAg ICAgICAgICAgJExvY2tUb2tlbiA9IGlmICgkQS5QU09iamVjdC5Qcm9wZXJ0aWVzWydsb2NrVG9r ZW4nXSkgeyBbc3RyaW5nXSRBLmxvY2tUb2tlbiB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAg ICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAgICRSb2xsZSA9 IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICAkRGFyZlVlYmVyc2NocmVpYmVuID0gVGVz dC1EYXJmVWViZXJzY2hyZWliZW4gJFJvbGxlDQoNCiAgICAgICAgICAgICAgICAkQWRtaW5GdWVy VkYgPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KDQogICAgICAgICAgICAgICAgIyBXaGl0 ZWxpc3QgZ2VnZW4gYWRtaW4uc2NoaWNodGNvZGVzIC0tIHZlcmhpbmRlcnQgT3JwaGFuLUNvZGVz IHdpZQ0KICAgICAgICAgICAgICAgICMgZGllICdkZnJVJy8nZGZyL1UnLydhYmcnLVZhcmlhbnRz LCBkaWUgaGlzdG9yaXNjaCBkdXJjaCBUaXBwZmVobGVyDQogICAgICAgICAgICAgICAgIyBpbiBk aWUgRGF0ZW4gZ2VsYW5ndCB3YXJlbiAoTWlncmF0aW9uIGluIEF1ZGl0LVBoYXNlLTIpLiBNaXJy b3INCiAgICAgICAgICAgICAgICAjIHp1IHNlcnZlci5weToyOTQ0LTI5NTIuDQogICAgICAgICAg ICAgICAgJFZhbGlkQ29kZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmlj Lkhhc2hTZXRbc3RyaW5nXQ0KICAgICAgICAgICAgICAgIFt2b2lkXSRWYWxpZENvZGVzLkFkZCgn JykNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRBZG1pbkZ1ZXJWRiAtYW5kICRBZG1p bkZ1ZXJWRi5QU09iamVjdC5Qcm9wZXJ0aWVzWydzY2hpY2h0Y29kZXMnXSkgew0KICAgICAgICAg ICAgICAgICAgICBmb3JlYWNoICgkU2MgaW4gJEFkbWluRnVlclZGLnNjaGljaHRjb2Rlcykgew0K ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkU2MgLWFuZCAkU2MuUFNPYmpl Y3QuUHJvcGVydGllc1snY29kZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Zv aWRdJFZhbGlkQ29kZXMuQWRkKFtzdHJpbmddJFNjLmNvZGUpDQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgaWYgKC1ub3QgJFZhbGlkQ29kZXMuQ29udGFpbnMoJFdlcnQpKSB7DQogICAgICAg ICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiVW5iZWthbm50ZXIgU2NoaWNodGNvZGU6ICck V2VydCciIDQwMA0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICMgVmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXIgKEQuMSk6IHJl Z3VsYWVyZSBVc2VyIGtvZW5uZW4gVGFnZSBkYXZvciBuaWNodCBlZGl0aWVyZW4NCiAgICAgICAg ICAgICAgICBpZiAoJFJvbGxlIC1lcSAndXNlcicpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYg KFRlc3QtRGF0dW1JblZlcmJpbmRsaWNoa2VpdCAkRGF0dW0gJEFkbWluRnVlclZGKSB7DQogICAg ICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZlaGxlciAgICAgICAgICA9ICd2ZXJiaW5kbGljaGtlaXRzZmVuc3RlcicNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtZWxkdW5nICAgICAgICAgPSAnRGF0dW0gbGllZ3Qg aW0gVmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXIgLSBmdWVyIHJlZ3VsYWVyZSBVc2VyIG5vY2ggZ2Vz cGVycnQuJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyc3RlckZyZWllclRhZyA9IChH ZXQtRXJzdGVyRnJlaWVyVGFnSXNvICRBZG1pbkZ1ZXJWRikNCiAgICAgICAgICAgICAgICAgICAg ICAgIH0gNDAzDQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgIyBQZXNzaW1p c3RpYyBDZWxsLUxvY2sgcHJ1ZWZlbiAoUGhhc2UgQSkNCiAgICAgICAgICAgICAgICAkRXhpc3Rp bmdMb2NrID0gUmVhZC1DZWxsTG9jayAkRGF0dW0gJFBlcnNvbklkDQogICAgICAgICAgICAgICAg aWYgKCRudWxsIC1uZSAkRXhpc3RpbmdMb2NrKSB7DQogICAgICAgICAgICAgICAgICAgICRUb2tl blBhc3N0ID0gKCRMb2NrVG9rZW4gLWFuZCAkRXhpc3RpbmdMb2NrLnRva2VuIC1lcSAkTG9ja1Rv a2VuKQ0KICAgICAgICAgICAgICAgICAgICAkU2VsYnN0TG9jayA9ICgkRXhpc3RpbmdMb2NrLnVz ZXJuYW1lIC1pZXEgJFVzZXJuYW1lKQ0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkVG9r ZW5QYXNzdCAtYW5kIC1ub3QgJFNlbGJzdExvY2sgLWFuZCAtbm90ICREYXJmVWViZXJzY2hyZWli ZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgZmVobGVyICA9ICdnZXNwZXJydCcNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZWxkdW5nID0gIkRpZXNlIFplbGxlIHdpcmQgZ2VyYWRlIHZvbiAkKCRF eGlzdGluZ0xvY2sudXNlcm5hbWUpIGJlYXJiZWl0ZXQuIg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNwZXJyZXIgPSAkRXhpc3RpbmdMb2NrLnVzZXJuYW1lDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgcm9sbGUgICA9ICRFeGlzdGluZ0xvY2sucm9sbGUNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWl0ICAgID0gJEV4aXN0aW5nTG9jay5sb2NrZWRBdA0KICAgICAgICAg ICAgICAgICAgICAgICAgfSA0MjMNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQog ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAkTG9ja1Jlc3VsdCA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAg ICAgICAgICAgJExvY2tSZXN1bHQgPSBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24n IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxh bnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUGxhbnVu ZykgeyByZXR1cm4gQHsgdHlwID0gJ2Vycm9yJzsgY29kZSA9IDQwNDsgbXNnID0gJ3BsYW51bmcu anNvbiBuaWNodCBnZWZ1bmRlbicgfSB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRBbHRl cldlcnQgPSAnJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNP YmplY3QuUHJvcGVydGllc1snZWludHJhZWdlJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1l ICdlaW50cmFlZ2UnIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLmVp bnRyYWVnZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5v dGVQcm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJFBsYW51bmcuZWludHJhZWdlLiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJz b25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFsdGVyV2VydCA9IFtz dHJpbmddJFBsYW51bmcuZWludHJhZWdlLiREYXR1bS4kUGVyc29uSWQNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICMgT3B0aW1pc3RpYy1Db25jdXJyZW5jeQ0KICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRIYXRFcndhcnRldCAtYW5kICRFcndhcnRldCAtbmUgJEFsdGVyV2VydCkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBAeyB0eXAgPSAna29uZmxpa3QnOyBh a3R1ZWxsID0gJEFsdGVyV2VydCB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICMgUGZsaWNodC1PdmVycmlkZS1DaGVjayAoUGhhc2UgQik6IGJl c3RlaGVuZGVzIHBmbGljaHQ9dHJ1ZSBudXIgU1UvRmFjaGF1ZnNpY2h0DQogICAgICAgICAgICAg ICAgICAgICAgICAkQWx0ZXJQZmxpY2h0ID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sncGZsaWNodCddIC1hbmQgJFBsYW51 bmcucGZsaWNodC5QU09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGZsaWNodC4kRGF0dW0uUFNPYmplY3QuUHJvcGVy dGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBbHRl clBmbGljaHQgPSBbYm9vbF0kUGxhbnVuZy5wZmxpY2h0LiREYXR1bS4kUGVyc29uSWQNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAoJEFsdGVyUGZsaWNodCAtYW5kIC1ub3QgJERhcmZVZWJl cnNjaHJlaWJlbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBAeyB0eXAg PSAncGZsaWNodGdlc3BlcnJ0JzsgYWx0ZXJXZXJ0ID0gJEFsdGVyV2VydCB9DQogICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAjIFBmbGljaHQtTkVVLVNl dHplbjogbnVyIFNVL0ZhY2hhdWZzaWNodA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRI YXRQZmxpY2h0IC1hbmQgJFBmbGljaHROZXUgLWFuZCAtbm90ICREYXJmVWViZXJzY2hyZWliZW4p IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ3BmbGljaHRz ZXR6dW5nVmVyYm90ZW4nIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFdlcnQpKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmVpbnRyYWVnZS4kRGF0 dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZS4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGll cy5SZW1vdmUoJFBlcnNvbklkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRQbGFudW5nLmVpbnRyYWVnZS4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29u SWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVn ZS4kRGF0dW0uJFBlcnNvbklkID0gJFdlcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFl Z2UuJERhdHVtIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJFBl cnNvbklkIC1WYWx1ZSAkV2VydA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBQZmxpY2h0 LUZsYWcgc2VwYXJhdCB2ZXJ3YWx0ZW4NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90 ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQnXSkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJv cGVydHkgLU5hbWUgJ3BmbGljaHQnIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICRXZXJ0Vm9yaGFu ZGVuID0gLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRXZXJ0KQ0KICAgICAgICAg ICAgICAgICAgICAgICAgJFNvbGxTZXR6ZW4gPSAkSGF0UGZsaWNodCAtYW5kICRQZmxpY2h0TmV1 IC1hbmQgJFdlcnRWb3JoYW5kZW4NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkU29sbFNl dHplbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLnBm bGljaHQuUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5v dGVQcm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoJFBsYW51bmcucGZsaWNodC4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRd KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQuJERh dHVtLiRQZXJzb25JZCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNodC4kRGF0 dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkUGVyc29uSWQg LVZhbHVlICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlaWYgKCRIYXRQZmxpY2h0IC1vciAtbm90ICRXZXJ0Vm9yaGFuZGVu KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLnBmbGljaHQuUFNP YmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJz b25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBm bGljaHQuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRQZXJzb25JZCkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoQCgkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzKS5D b3VudCAtZXEgMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51 bmcucGZsaWNodC5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkRGF0dW0pDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRl LVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyBAKA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEB7IGtpbmQgPSAnZWludHJhZWdlJzsgZGF0dW0gPSAkRGF0dW07IHBlcnNvbklkID0g JFBlcnNvbklkIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQHsga2luZCA9ICdwZmxp Y2h0JzsgICBkYXR1bSA9ICREYXR1bTsgcGVyc29uSWQgPSAkUGVyc29uSWQgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9 ICdvayc7IGFsdGVyV2VydCA9ICRBbHRlcldlcnQ7IGFsdGVyUGZsaWNodCA9ICRBbHRlclBmbGlj aHQ7IHBsYW51bmcgPSAkUGxhbnVuZyB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICIk XyIgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlm ICgkTG9ja1Jlc3VsdC50eXAgLWVxICdlcnJvcicpIHsgU2VuZC1FcnJvciAkUmVzICRMb2NrUmVz dWx0Lm1zZyAkTG9ja1Jlc3VsdC5jb2RlOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgaWYg KCRMb2NrUmVzdWx0LnR5cCAtZXEgJ2tvbmZsaWt0Jykgew0KICAgICAgICAgICAgICAgICAgICBT ZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICAgICAgZmVobGVyICAgICAgICA9 ICdrb25mbGlrdCcNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lbGR1bmcgICAgICAgPSAnRGll c2UgWmVsbGUgd3VyZGUgaW56d2lzY2hlbiBnZWFlbmRlcnQuJw0KICAgICAgICAgICAgICAgICAg ICAgICAgYWt0dWVsbGVyV2VydCA9ICRMb2NrUmVzdWx0LmFrdHVlbGwNCiAgICAgICAgICAgICAg ICAgICAgfSA0MDkNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgaWYgKCRMb2NrUmVzdWx0LnR5cCAtZXEgJ3BmbGljaHRnZXNw ZXJydCcpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAgICAg ICAgICAgICAgICAgICAgIGZlaGxlciAgICAgICAgPSAncGZsaWNodGdlc3BlcnJ0Jw0KICAgICAg ICAgICAgICAgICAgICAgICAgbWVsZHVuZyAgICAgICA9ICdEaWVzZSBaZWxsZSBpc3QgYWxzIFBm bGljaHQtU2V0enVuZyBtYXJraWVydC4gTnVyIEZhY2hhdWZzaWNodC9TdXBlclVzZXIgZGFyZiBz aWUgYWVuZGVybi4nDQogICAgICAgICAgICAgICAgICAgICAgICBha3R1ZWxsZXJXZXJ0ID0gJExv Y2tSZXN1bHQuYWx0ZXJXZXJ0DQogICAgICAgICAgICAgICAgICAgIH0gNDAzDQogICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlm ICgkTG9ja1Jlc3VsdC50eXAgLWVxICdwZmxpY2h0c2V0enVuZ1ZlcmJvdGVuJykgew0KICAgICAg ICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICAgICAg ZmVobGVyICA9ICdwZmxpY2h0c2V0enVuZ1ZlcmJvdGVuJw0KICAgICAgICAgICAgICAgICAgICAg ICAgbWVsZHVuZyA9ICdQZmxpY2h0LVNldHp1bmdlbiBrb2VubmVuIG51ciBGYWNoYXVmc2ljaHQv U3VwZXJVc2VyIHZvcm5laG1lbi4nDQogICAgICAgICAgICAgICAgICAgIH0gNDAzDQogICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgJEFsdGVyV2VydCAgICA9ICRMb2NrUmVzdWx0LmFsdGVyV2VydA0KICAgICAgICAgICAgICAg ICRBbHRlclBmbGljaHQgPSAkTG9ja1Jlc3VsdC5hbHRlclBmbGljaHQNCiAgICAgICAgICAgICAg ICAkUGxhbnVuZyAgICAgID0gJExvY2tSZXN1bHQucGxhbnVuZw0KICAgICAgICAgICAgICAgICRJ c3RPdmVycmlkZSAgPSAoJEFsdGVyUGZsaWNodCAtYW5kICREYXJmVWViZXJzY2hyZWliZW4pIC1v ciBgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkbnVsbCAtbmUgJEV4aXN0aW5n TG9jayAtYW5kIC1ub3QgKCRFeGlzdGluZ0xvY2sudXNlcm5hbWUgLWllcSAkVXNlcm5hbWUpIC1h bmQgJERhcmZVZWJlcnNjaHJlaWJlbikNCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFn ICd6ZWxsZS5nZWFlbmRlcnQnIEB7DQogICAgICAgICAgICAgICAgICAgIGRhdHVtICAgICA9ICRE YXR1bQ0KICAgICAgICAgICAgICAgICAgICBwZXJzb25JZCAgPSAkUGVyc29uSWQNCiAgICAgICAg ICAgICAgICAgICAgYWx0ZXJXZXJ0ID0gJEFsdGVyV2VydA0KICAgICAgICAgICAgICAgICAgICBu ZXVlcldlcnQgPSAkV2VydA0KICAgICAgICAgICAgICAgICAgICBwZmxpY2h0ICAgPSBpZiAoJEhh dFBmbGljaHQpIHsgJFBmbGljaHROZXUgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAg ICAgICByb2xsZSAgICAgPSAkUm9sbGUNCiAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgID0g JElzdE92ZXJyaWRlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIEFkZC1DaGFu Z2VMb2dFbnRyeSAnemVsbGUnICREYXR1bSAkUGVyc29uSWQgJFdlcnQgJFVzZXJuYW1lICRSb2xs ZSBAew0KICAgICAgICAgICAgICAgICAgICBhbHRlcldlcnQgPSAkQWx0ZXJXZXJ0DQogICAgICAg ICAgICAgICAgICAgIHBmbGljaHQgICA9IGlmICgkSGF0UGZsaWNodCkgeyAkUGZsaWNodE5ldSB9 IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlICA9ICRJc3RPdmVy cmlkZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJEFsdGVyV2VydCAt bmUgJFdlcnQpIHsNCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgTm90aWZ5LUFlbmRlcnVuZyAk UGxhbnVuZyAkUGVyc29uSWQgJERhdHVtICRBbHRlcldlcnQgJFdlcnQgfSBjYXRjaCB7IERlYnVn LUxvZyAnTUFJTCcgIkZlaGxlcjogJF8iIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JzsgYWx0ZXJXZXJ0 ID0gJEFsdGVyV2VydDsgcm9sbGUgPSAkUm9sbGU7IG92ZXJyaWRlID0gJElzdE92ZXJyaWRlIH0N CiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAj IEZMRDogRFNNLVRvZ2dsZSAoUGhhc2UgQTU6IEZpbGUtTG9jayArIENoYW5nZS1Mb2cpDQogICAg ICAgICAgICAjIFdhciBpbiBzZXJ2ZXIucHMxIGJpc2hlciBnYXIgbmljaHQgdm9yaGFuZGVuIC0g bnVyIHNlcnZlci5weSBoYXR0ZSBlcy4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkv cGxhbnVuZy9kc20nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAg aWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNo dGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9k eSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9y ICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAg ICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJERhdHVtID0g W3N0cmluZ10kQS5kYXR1bQ0KICAgICAgICAgICAgICAgICRGbGFnID0gW2Jvb2xdJEEuYWt0aXYN CiAgICAgICAgICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkRGF0dW0p KSB7IFNlbmQtRXJyb3IgJFJlcyAnZGF0dW0gZmVobHQnIDQwMDsgY29udGludWUgfQ0KICAgICAg ICAgICAgICAgICRVc2VybmFtZSA9ICRlbnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAgICAkUm9s bGUgPSBHZXQtVXNlclJvbGxlDQogICAgICAgICAgICAgICAgJExvY2tSZXN1bHQgPSAkbnVsbA0K ICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRMb2NrUmVzdWx0ID0g SW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAgICAgICAg ICAgICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcpIHsgcmV0dXJuIEB7IHR5cCA9ICdl cnJvcic7IGNvZGUgPSA0MDQ7IG1zZyA9ICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5kZW4nIH0g fQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJv cGVydGllc1snZHNtJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyB8 IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdkc20nIC1WYWx1ZSAo TmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICRBbHQgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkUGxhbnVuZy5kc20uUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEFsdCA9IFtib29sXSRQbGFudW5nLmRzbS4kRGF0dW0NCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkRmxhZykg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5kc20uUFNPYmplY3Qu UHJvcGVydGllc1skRGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQ bGFudW5nLmRzbS4kRGF0dW0gPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmRzbSB8IEFk ZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFsdWUgJHRy dWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5kc20u UFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRQbGFudW5nLmRzbS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkRGF0dW0pDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtUGxhbnVuZ01pdEludGVncml0YWV0ICRQbGFu dW5nIEAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQHsga2luZCA9ICdkc20nOyBkYXR1 bSA9ICREYXR1bSB9DQogICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gQHsgdHlwID0gJ29rJzsgYWx0ID0gJEFsdCB9DQogICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAg U2VuZC1FcnJvciAkUmVzICIkXyIgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICBpZiAoJExvY2tSZXN1bHQudHlwIC1lcSAnZXJyb3InKSB7IFNlbmQtRXJy b3IgJFJlcyAkTG9ja1Jlc3VsdC5tc2cgJExvY2tSZXN1bHQuY29kZTsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2RzbS5nZWFlbmRlcnQnIEB7IGRhdHVtID0g JERhdHVtOyBha3RpdiA9ICRGbGFnOyByb2xsZSA9ICRSb2xsZSB9DQogICAgICAgICAgICAgICAg QWRkLUNoYW5nZUxvZ0VudHJ5ICdkc20nICREYXR1bSAkbnVsbCAoW3N0cmluZ10kRmxhZy5Ub1N0 cmluZygpLlRvTG93ZXIoKSkgJFVzZXJuYW1lICRSb2xsZSBAew0KICAgICAgICAgICAgICAgICAg ICBha3RpdiA9ICRGbGFnDQogICAgICAgICAgICAgICAgICAgIGFsdCAgID0gJExvY2tSZXN1bHQu YWx0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7 IHN0YXR1cyA9ICdnZXNwZWljaGVydCc7IGRhdHVtID0gJERhdHVtOyBha3RpdiA9ICRGbGFnIH0N CiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAj ID09PT09PT09PT09PT09PT09PT09PSBaRUxMRU4tQlVMSyAoUGhhc2UgQzogQXV0b0ZpbGwtRG5E KSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgICMgUFVUIC9hcGkvcGxhbnVuZy96 ZWxsZW4tYnVsayB7IHplbGxlbjogW3tkYXR1bSwgcGVyc29uSWQsIHdlcnQsIGVyd2FydGV0LCBs b2NrVG9rZW4/fSwgLi4uXSB9DQogICAgICAgICAgICAjIDIwNyBNdWx0aS1TdGF0dXM6IHsgZXJm b2xncmVpY2g6W10sIGtvbmZsaWt0ZTpbXSwgZ2VzcGVycnQ6W10sIHZlcmJvdGVuOltdLCBmZWhs ZXI6W10gfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL3plbGxlbi1i dWxrJyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgJEJvZHkgPSBS ZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2Vu ZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAkQSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgIGlm ICgtbm90ICRBLnplbGxlbiAtb3IgQCgkQS56ZWxsZW4pLkNvdW50IC1lcSAwKSB7DQogICAgICAg ICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnemVsbGVuLUFycmF5IGZlaGx0IG9kZXIgbGVl cicgNDAwOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAo QCgkQS56ZWxsZW4pLkNvdW50IC1ndCA1MDApIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1F cnJvciAkUmVzICdNYXhpbWFsIDUwMCBaZWxsZW4gcHJvIEJ1bGstUmVxdWVzdCcgNDEzOyBjb250 aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52 OlVTRVJOQU1FDQogICAgICAgICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAg ICAgICAgICAgICREYXJmVWViZXIgPSBUZXN0LURhcmZVZWJlcnNjaHJlaWJlbiAkUm9sbGUNCg0K ICAgICAgICAgICAgICAgICMgUHJlLUNoZWNrIENlbGwtTG9ja3MNCiAgICAgICAgICAgICAgICAk R2VzcGVycnQgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QNCiAgICAg ICAgICAgICAgICBmb3JlYWNoICgkeiBpbiAkQS56ZWxsZW4pIHsNCiAgICAgICAgICAgICAgICAg ICAgJGQgPSBbc3RyaW5nXSR6LmRhdHVtOyAkcCA9IFtzdHJpbmddJHoucGVyc29uSWQNCiAgICAg ICAgICAgICAgICAgICAgaWYgKC1ub3QgJGQgLW9yIC1ub3QgJHApIHsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgICAgICAkTCA9IFJlYWQtQ2VsbExvY2sgJGQgJHANCiAgICAgICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1uZSAkTCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJG93biA9 ICgkTC51c2VybmFtZSAtaWVxICRVc2VybmFtZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICR0 b2tPayA9ICR6LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2xvY2tUb2tlbiddIC1hbmQgJEwudG9rZW4g LWVxIFtzdHJpbmddJHoubG9ja1Rva2VuDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5v dCAkb3duIC1hbmQgLW5vdCAkdG9rT2sgLWFuZCAtbm90ICREYXJmVWViZXIpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbdm9pZF0kR2VzcGVycnQuQWRkKEB7IGRhdHVtID0gJGQ7IHBl cnNvbklkID0gJHA7IHNwZXJyZXIgPSAkTC51c2VybmFtZSB9KQ0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgJEVyZm9sZ3JlaWNoID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMu QXJyYXlMaXN0DQogICAgICAgICAgICAgICAgJEtvbmZsaWt0ZSAgID0gTmV3LU9iamVjdCBTeXN0 ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAgJFZlcmJvdGVuICAgID0g TmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAg JEZlaGxlciAgICAgID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQoN CiAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgICAgICAgJExvY2tSZXN1bHQgPSBJbnZva2UtV2l0aEZpbGVMb2Nr ICdwbGFudW5nLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVh ZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRu dWxsIC1lcSAkUGxhbnVuZykgeyByZXR1cm4gQHsgdHlwID0gJ2Vycm9yJzsgY29kZSA9IDQwNDsg bXNnID0gJ3BsYW51bmcuanNvbiBuaWNodCBnZWZ1bmRlbicgfSB9DQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2Un XSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ2VpbnRyYWVnZScgLVZhbHVlIChOZXctT2Jq ZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgJEFkbWluRnVlclZGID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAg ICAgICAgICAgICAgICAgICAgICRQcnVlZmVWZXJiID0gKCRSb2xsZSAtZXEgJ3VzZXInKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgIyBXaGl0ZWxpc3QgZ2VnZW4gYWRtaW4uc2NoaWNodGNvZGVz IChNaXJyb3Igc2VydmVyLnB5OjMxMjAtMzEyMikNCiAgICAgICAgICAgICAgICAgICAgICAgICRW YWxpZENvZGVzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5IYXNoU2V0 W3N0cmluZ10NCiAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRWYWxpZENvZGVzLkFkZCgn JykNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEFkbWluRnVlclZGIC1h bmQgJEFkbWluRnVlclZGLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NjaGljaHRjb2RlcyddKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJFNjIGluICRBZG1pbkZ1ZXJWRi5z Y2hpY2h0Y29kZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxs IC1uZSAkU2MgLWFuZCAkU2MuUFNPYmplY3QuUHJvcGVydGllc1snY29kZSddKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kVmFsaWRDb2Rlcy5BZGQoW3N0cmlu Z10kU2MuY29kZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICRCZXRyb2ZmZW5lID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlv bnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAgICAgICAgICAkR2VzcGVycnRTZXQgPSBAe30N CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRnIGluICRHZXNwZXJydCkgeyAkR2Vz cGVycnRTZXRbKCRnLmRhdHVtICsgJ3wnICsgJGcucGVyc29uSWQpXSA9ICR0cnVlIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR6IGluICRBLnplbGxlbikgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRkID0gW3N0cmluZ10kei5kYXR1bTsgJHAgPSBbc3RyaW5nXSR6 LnBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdlcnQgPSBpZiAoJHoud2Vy dCkgeyBbc3RyaW5nXSR6LndlcnQgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRlcndhcnRldCA9IGlmICgkei5QU09iamVjdC5Qcm9wZXJ0aWVzWydlcndhcnRldCdd KSB7IFtzdHJpbmddJHouZXJ3YXJ0ZXQgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgtbm90ICRkIC1vciAtbm90ICRwKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFt2b2lkXSRGZWhsZXIuQWRkKEB7IGRhdHVtID0gJGQ7IHBlcnNvbklk ID0gJHA7IGZlaGxlciA9ICdkYXR1bS9wZXJzb25JZCBmZWhsdCcgfSk7IGNvbnRpbnVlDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgtbm90ICRWYWxpZENvZGVzLkNvbnRhaW5zKCR3ZXJ0KSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbdm9pZF0kRmVobGVyLkFkZChAeyBkYXR1bSA9ICRkOyBwZXJzb25JZCA9 ICRwOyBmZWhsZXIgPSAiVW5iZWthbm50ZXIgU2NoaWNodGNvZGU6ICckd2VydCciIH0pOyBjb250 aW51ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJEdlc3BlcnJ0U2V0WygkZCArICd8JyArICRwKV0pIHsgY29udGludWUgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUHJ1ZWZlVmVyYiAtYW5kIChUZXN0LURh dHVtSW5WZXJiaW5kbGljaGtlaXQgJGQgJEFkbWluRnVlclZGKSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbdm9pZF0kVmVyYm90ZW4uQWRkKEB7IGRhdHVtID0gJGQ7IHBlcnNv bklkID0gJHA7IGdydW5kID0gJ3ZlcmJpbmRsaWNoa2VpdHNmZW5zdGVyJyB9KTsgY29udGludWUN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKC1ub3QgJFBsYW51bmcuZWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRpZXNbJGRdKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZSB8IEFk ZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRkIC1WYWx1ZSAoTmV3LU9i amVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGFsdCA9ICcnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRQbGFudW5nLmVpbnRyYWVnZS4kZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwXSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0ID0gW3N0cmluZ10kUGxhbnVuZy5laW50 cmFlZ2UuJGQuJHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkZXJ3YXJ0ZXQgLWFuZCAkZXJ3YXJ0ZXQgLW5l ICRhbHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJEtvbmZsaWt0 ZS5BZGQoQHsgZGF0dW0gPSAkZDsgcGVyc29uSWQgPSAkcDsgYWt0dWVsbCA9ICRhbHQgfSk7IGNv bnRpbnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRhbHRQZiA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmxpY2h0J10gLWFuZCAkUGxhbnVuZy5w ZmxpY2h0LlBTT2JqZWN0LlByb3BlcnRpZXNbJGRdKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkUGxhbnVuZy5wZmxpY2h0LiRkLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBd KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0UGYgPSBbYm9vbF0k UGxhbnVuZy5wZmxpY2h0LiRkLiRwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCRhbHRQZiAtYW5kIC1ub3QgJERhcmZVZWJlcikgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbdm9pZF0kVmVyYm90ZW4uQWRkKEB7IGRhdHVtID0gJGQ7IHBlcnNvbklk ID0gJHA7IGdydW5kID0gJ3BmbGljaHQnIH0pOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoW3N0cmluZ106Oklz TnVsbE9yV2hpdGVTcGFjZSgkd2VydCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCRQbGFudW5nLmVpbnRyYWVnZS4kZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwXSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlLiRk LlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRwKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmVpbnRyYWVnZS4kZC5QU09iamVj dC5Qcm9wZXJ0aWVzWyRwXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JFBsYW51bmcuZWludHJhZWdlLiRkLiRwID0gJHdlcnQNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQ bGFudW5nLmVpbnRyYWVnZS4kZCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5 IC1OYW1lICRwIC1WYWx1ZSAkd2VydA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFt2b2lkXSRCZXRyb2ZmZW5lLkFkZChAeyBraW5kID0gJ2VpbnRyYWVnZSc7IGRhdHVtID0g JGQ7IHBlcnNvbklkID0gJHAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0k RXJmb2xncmVpY2guQWRkKEB7IGRhdHVtID0gJGQ7IHBlcnNvbklkID0gJHA7IHdlcnQgPSAkd2Vy dDsgYWx0ZXJXZXJ0ID0gJGFsdCB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKEAoJEJldHJvZmZlbmUpLkNvdW50IC1ndCAwKSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtUGxhbnVuZ01pdEludGVncml0YWV0ICRQbGFu dW5nIEAoJEJldHJvZmZlbmUpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ29rJyB9DQogICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1F cnJvciAkUmVzICIkXyIgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICBpZiAoJExvY2tSZXN1bHQudHlwIC1lcSAnZXJyb3InKSB7IFNlbmQtRXJyb3IgJFJl cyAkTG9ja1Jlc3VsdC5tc2cgJExvY2tSZXN1bHQuY29kZTsgY29udGludWUgfQ0KDQogICAgICAg ICAgICAgICAgZm9yZWFjaCAoJG9rIGluICRFcmZvbGdyZWljaCkgew0KICAgICAgICAgICAgICAg ICAgICBXcml0ZS1Mb2dFaW50cmFnICd6ZWxsZS5nZWFlbmRlcnQnIEB7DQogICAgICAgICAgICAg ICAgICAgICAgICBkYXR1bSA9ICRvay5kYXR1bTsgcGVyc29uSWQgPSAkb2sucGVyc29uSWQNCiAg ICAgICAgICAgICAgICAgICAgICAgIGFsdGVyV2VydCA9ICRvay5hbHRlcldlcnQ7IG5ldWVyV2Vy dCA9ICRvay53ZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICByb2xsZSA9ICRSb2xsZTsgb3Zl cnJpZGUgPSAkZmFsc2U7IGJ1bGsgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dFbnRyeSAnemVsbGUnICRvay5kYXR1bSAkb2su cGVyc29uSWQgJG9rLndlcnQgJFVzZXJuYW1lICRSb2xsZSBAew0KICAgICAgICAgICAgICAgICAg ICAgICAgYWx0ZXJXZXJ0ID0gJG9rLmFsdGVyV2VydDsgYnVsayA9ICR0cnVlDQogICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJHN0YXR1c0Nv ZGUgPSBpZiAoKEAoJEtvbmZsaWt0ZSkuQ291bnQgKyBAKCRWZXJib3RlbikuQ291bnQgKyBAKCRH ZXNwZXJydCkuQ291bnQgKyBAKCRGZWhsZXIpLkNvdW50KSAtZ3QgMCkgeyAyMDcgfSBlbHNlIHsg MjAwIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAg ICAgICBzdGF0dXMgICAgICA9ICd2ZXJhcmJlaXRldCcNCiAgICAgICAgICAgICAgICAgICAgZXJm b2xncmVpY2ggPSBAKCRFcmZvbGdyZWljaCkNCiAgICAgICAgICAgICAgICAgICAga29uZmxpa3Rl ICAgPSBAKCRLb25mbGlrdGUpDQogICAgICAgICAgICAgICAgICAgIGdlc3BlcnJ0ICAgID0gQCgk R2VzcGVycnQpDQogICAgICAgICAgICAgICAgICAgIHZlcmJvdGVuICAgID0gQCgkVmVyYm90ZW4p DQogICAgICAgICAgICAgICAgICAgIGZlaGxlciAgICAgID0gQCgkRmVobGVyKQ0KICAgICAgICAg ICAgICAgICAgICByb2xsZSAgICAgICA9ICRSb2xsZQ0KICAgICAgICAgICAgICAgIH0gJHN0YXR1 c0NvZGUNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAjIEtvbW1lbnRhciBzZXR6ZW4vbG9lc2NoZW4gKFBoYXNlIEE1OiBGaWxlLUxvY2sgKyBP cHRpbWlzdGljLUNvbmN1cnJlbmN5ICsgQ2hhbmdlLUxvZykNCiAgICAgICAgICAgIGlmICgkUGF0 aCAtZXEgJy9hcGkvcGxhbnVuZy9rb21tZW50YXInIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7 DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAg IGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3Nz JyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQSA9ICRCb2R5IHwgQ29udmVydEZy b20tSnNvbg0KICAgICAgICAgICAgICAgICREYXR1bSA9IFtzdHJpbmddJEEuZGF0dW0NCiAgICAg ICAgICAgICAgICAkUGVyc29uSWQgPSBbc3RyaW5nXSRBLnBlcnNvbklkDQogICAgICAgICAgICAg ICAgJFRleHQgPSBpZiAoJEEudGV4dCkgeyAoW3N0cmluZ10kQS50ZXh0KS5UcmltKCkgfSBlbHNl IHsgJycgfQ0KICAgICAgICAgICAgICAgICRIYXRFcndhcnRldCA9ICRBLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ2Vyd2FydGV0ZXJBbHRlclRleHQnXQ0KICAgICAgICAgICAgICAgICRFcndhcnRldCA9 IGlmICgkSGF0RXJ3YXJ0ZXQpIHsgW3N0cmluZ10kQS5lcndhcnRldGVyQWx0ZXJUZXh0IH0gZWxz ZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FDQog ICAgICAgICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KDQogICAgICAgICAgICAgICAg JExvY2tSZXN1bHQgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg ICAgICAgICRMb2NrUmVzdWx0ID0gSW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7 DQogICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51 bmcuanNvbicNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcp IHsgcmV0dXJuIEB7IHR5cCA9ICdlcnJvcic7IGNvZGUgPSA0MDQ7IG1zZyA9ICdwbGFudW5nLmpz b24gbmljaHQgZ2VmdW5kZW4nIH0gfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5v dCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90 ZVByb3BlcnR5IC1OYW1lICdrb21tZW50YXJlJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3Qp DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo LW5vdCAkUGxhbnVuZy5rb21tZW50YXJlLlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmtvbW1lbnRhcmUgfCBBZGQtTWVt YmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVlIChOZXctT2Jq ZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgICAgICAgICAkQWx0ZXJUZXh0ID0gJycNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk UGxhbnVuZy5rb21tZW50YXJlLiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJzb25JZF0p IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0ZXJFaW50cmFnID0gJFBsYW51bmcu a29tbWVudGFyZS4kRGF0dW0uJFBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBCYWNrd2FyZC1Db21wYXQ6IGFsdGVyIEVpbnRyYWcga2FubiBTdHJpbmcgT0RFUiB7dGV4dCwg Z2VhZW5kZXJ0QW0sIGdlYWVuZGVydFZvbn0gc2Vpbg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkQWx0ZXJFaW50cmFnIC1pcyBbc3RyaW5nXSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQWx0ZXJUZXh0ID0gJEFsdGVyRWludHJhZw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZWlmICgkQWx0ZXJFaW50cmFnLlBTT2JqZWN0LlByb3BlcnRpZXNb J3RleHQnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0ZXJUZXh0ID0g W3N0cmluZ10kQWx0ZXJFaW50cmFnLnRleHQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo JEhhdEVyd2FydGV0IC1hbmQgJEVyd2FydGV0IC1uZSAkQWx0ZXJUZXh0KSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9ICdrb25mbGlrdCc7IGFrdHVlbGwgPSAk QWx0ZXJUZXh0IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRUZXh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ldU9i aiA9IFtQU0N1c3RvbU9iamVjdF1Aew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZXh0ICAgICAgICAgPSAkVGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZWFl bmRlcnRBbSAgPSAoR2V0LURhdGUgLUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlYWVuZGVydFZvbiA9IChHZXQtQWt0dWVsbGVy QmVudXR6ZXIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5rb21tZW50YXJlLiREYXR1bS5QU09iamVjdC5Qcm9w ZXJ0aWVzWyRQZXJzb25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBs YW51bmcua29tbWVudGFyZS4kRGF0dW0uJFBlcnNvbklkID0gJE5ldU9iag0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRQbGFudW5nLmtvbW1lbnRhcmUuJERhdHVtIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl UHJvcGVydHkgLU5hbWUgJFBlcnNvbklkIC1WYWx1ZSAkTmV1T2JqDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcua29tbWVudGFyZS4kRGF0dW0uUFNPYmpl Y3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRQbGFudW5nLmtvbW1lbnRhcmUuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3Zl KCRQZXJzb25JZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKEAoJFBsYW51bmcua29tbWVudGFyZS4kRGF0dW0uUFNPYmplY3Qu UHJvcGVydGllcykuQ291bnQgLWVxIDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJFBsYW51bmcua29tbWVudGFyZS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkRGF0dW0p DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtUGxhbnVuZ01pdEludGVncml0YWV0ICRQ bGFudW5nIEAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQHsga2luZCA9ICdrb21tZW50 YXJlJzsgZGF0dW0gPSAkRGF0dW07IHBlcnNvbklkID0gJFBlcnNvbklkIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBAeyB0eXAgPSAn b2snOyBhbHRlclRleHQgPSAkQWx0ZXJUZXh0IH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRS ZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgaWYgKCRMb2NrUmVzdWx0LnR5cCAtZXEgJ2Vycm9yJykgeyBTZW5kLUVycm9yICRSZXMgJExv Y2tSZXN1bHQubXNnICRMb2NrUmVzdWx0LmNvZGU7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAg ICBpZiAoJExvY2tSZXN1bHQudHlwIC1lcSAna29uZmxpa3QnKSB7DQogICAgICAgICAgICAgICAg ICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIgICAg ICAgICA9ICdrb25mbGlrdCcNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lbGR1bmcgICAgICAg ID0gJ0tvbW1lbnRhciB3dXJkZSBpbnp3aXNjaGVuIGdlYWVuZGVydC4nDQogICAgICAgICAgICAg ICAgICAgICAgICBha3R1ZWxsZXJUZXh0ICA9ICRMb2NrUmVzdWx0LmFrdHVlbGwNCiAgICAgICAg ICAgICAgICAgICAgfSA0MDkNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAkS3VyeiA9IGlmICgkVGV4dC5MZW5ndGggLWd0 IDEwMCkgeyAkVGV4dC5TdWJzdHJpbmcoMCwgMTAwKSB9IGVsc2UgeyAkVGV4dCB9DQogICAgICAg ICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAna29tbWVudGFyLmdlYWVuZGVydCcgQHsNCiAgICAg ICAgICAgICAgICAgICAgZGF0dW0gICAgPSAkRGF0dW0NCiAgICAgICAgICAgICAgICAgICAgcGVy c29uSWQgPSAkUGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAgdGV4dCAgICAgPSAkS3Vyeg0K ICAgICAgICAgICAgICAgICAgICByb2xsZSAgICA9ICRSb2xsZQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICBBZGQtQ2hhbmdlTG9nRW50cnkgJ2tvbW1lbnRhcicgJERhdHVtICRQ ZXJzb25JZCAkVGV4dCAkVXNlcm5hbWUgJFJvbGxlIEB7DQogICAgICAgICAgICAgICAgICAgIGFs dGVyVGV4dCA9ICRMb2NrUmVzdWx0LmFsdGVyVGV4dA0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0NCiAg ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09 PT09PT09PT09PT09PT09PT09PSBCQUNLVVBTID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAg ICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL2JhY2t1cHMnIC1hbmQgJE1ldGhvZCAt ZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsg U2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgICRFaW50cmFlZ2UgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5B cnJheUxpc3QNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkRiBpbiBHZXQtQ2hpbGRJdGVtIC1Q YXRoICREYXRhRGlyIC1GaWx0ZXIgJ3BsYW51bmdfYmFja3VwXyouanNvbicgLUZpbGUpIHsNCiAg ICAgICAgICAgICAgICAgICAgJE5hbWUgPSAkRi5OYW1lDQogICAgICAgICAgICAgICAgICAgICRU eXAgPSBpZiAoJE5hbWUgLWxpa2UgJypiYWNrdXBfdm9yX2R1bW15XyonKSB7ICd2b3IgRHVtbXlk YXRlbicgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmICgkTmFtZSAtbGlrZSAn KmJhY2t1cF92b3JfcmVzZXRfKicpIHsgJ3ZvciBSZXNldCcgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWxzZWlmICgkTmFtZSAtbGlrZSAnKmJhY2t1cF92b3Jfd2llZGVyaGVyc3RlbGx1 bmdfKicpIHsgJ3ZvciBXaWVkZXJoZXJzdGVsbHVuZycgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgZWxzZSB7ICdtYW51ZWxsJyB9DQogICAgICAgICAgICAgICAgICAgIFt2b2lkXSRFaW50 cmFlZ2UuQWRkKFtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgICAgICAgICBkYXRlaW5hbWUg ID0gJE5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIGdyb2Vzc2UgICAgPSAkRi5MZW5ndGgN CiAgICAgICAgICAgICAgICAgICAgICAgIGVyc3RlbGx0QW0gPSAkRi5MYXN0V3JpdGVUaW1lLlRv U3RyaW5nKCd5eXl5LU1NLWRkVEhIOm1tOnNzLmZmZmZmZmYnKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgdHlwICAgICAgICA9ICRUeXANCiAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgJFNvcnRpZXJ0ID0gQCgkRWludHJhZWdlIHwgU29y dC1PYmplY3QgLVByb3BlcnR5IGVyc3RlbGx0QW0gLURlc2NlbmRpbmcpDQogICAgICAgICAgICAg ICAgJEpzb24gPSBDb252ZXJ0VG8tSnNvbiAtSW5wdXRPYmplY3QgQCgkU29ydGllcnQpIC1EZXB0 aCA1IC1Db21wcmVzcw0KICAgICAgICAgICAgICAgIFNlbmQtSnNvblJhdyAkUmVzICRKc29uDQog ICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYg KCRQYXRoIC1saWtlICcvYXBpL3BsYW51bmcvYmFja3VwL2Rvd25sb2FkLyonIC1hbmQgJE1ldGhv ZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikp IHsgU2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0K ICAgICAgICAgICAgICAgICROYW1lID0gW1N5c3RlbS5XZWIuSHR0cFV0aWxpdHldOjpVcmxEZWNv ZGUoJFBhdGguU3Vic3RyaW5nKCcvYXBpL3BsYW51bmcvYmFja3VwL2Rvd25sb2FkLycuTGVuZ3Ro KSkNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoJE5hbWUuU3RhcnRzV2l0aCgncGxhbnVuZ19i YWNrdXBfJykgLWFuZCAkTmFtZS5FbmRzV2l0aCgnLmpzb24nKSkgLW9yICROYW1lLkNvbnRhaW5z KCcvJykgLW9yICROYW1lLkNvbnRhaW5zKCdcJykgLW9yICROYW1lLkNvbnRhaW5zKCcuLicpKSB7 DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXIgRGF0ZWlu YW1lJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRG UGF0aCA9IEpvaW4tUGF0aCAkRGF0YURpciAkTmFtZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90 IChUZXN0LVBhdGggJEZQYXRoKSkgeyBTZW5kLUVycm9yICRSZXMgJ0JhY2t1cCBuaWNodCBnZWZ1 bmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgU2VuZC1GaWxlQXR0YWNobWVu dCAkUmVzICRGUGF0aCAkTmFtZQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZy9iYWNrdXAnIC1h bmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3Qt SXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkUGxhbnVuZ1BhdGggPSBKb2luLVBhdGggJERhdGFE aXIgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRQ bGFudW5nUGF0aCkpIHsgU2VuZC1FcnJvciAkUmVzICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5k ZW4nIDQwNDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRUcyA9IEdldC1EYXRlIC1Gb3Jt YXQgJ3l5eXlNTWRkX0hIbW1zcycNCiAgICAgICAgICAgICAgICAkQmFja3VwTmFtZSA9ICJwbGFu dW5nX2JhY2t1cF8kVHMuanNvbiINCiAgICAgICAgICAgICAgICBDb3B5LUl0ZW0gLVBhdGggJFBs YW51bmdQYXRoIC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICREYXRhRGlyICRCYWNrdXBOYW1lKSAt Rm9yY2UNCiAgICAgICAgICAgICAgICBJbnZva2UtQmFja3VwUm90YXRpb24gJ3BsYW51bmdfYmFj a3VwXyouanNvbicgMjAgICMgUGhhc2UgRDM6IG1heCAyMCBiZWhhbHRlbg0KICAgICAgICAgICAg ICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2JhY2t1cC5lcnN0ZWxsdCcgQHsgZGF0ZWluYW1lID0gJEJh Y2t1cE5hbWUgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdl cnN0ZWxsdCc7IGRhdGVpbmFtZSA9ICRCYWNrdXBOYW1lIH0NCiAgICAgICAgICAgICAgICBjb250 aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3Bs YW51bmcvYmFja3VwL3dpZWRlcmhlcnN0ZWxsZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7 DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3Ig JFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAg ICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAk Qm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUg fQ0KICAgICAgICAgICAgICAgICREYXRlbiA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAg ICAgICAgICAgICAgICROYW1lID0gW3N0cmluZ10kRGF0ZW4uZGF0ZWluYW1lDQogICAgICAgICAg ICAgICAgaWYgKC1ub3QgKCROYW1lLlN0YXJ0c1dpdGgoJ3BsYW51bmdfYmFja3VwXycpIC1hbmQg JE5hbWUuRW5kc1dpdGgoJy5qc29uJykpIC1vciAkTmFtZS5Db250YWlucygnLycpIC1vciAkTmFt ZS5Db250YWlucygnXCcpIC1vciAkTmFtZS5Db250YWlucygnLi4nKSkgew0KICAgICAgICAgICAg ICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VyIERhdGVpbmFtZScgNDAwOyBjb250 aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkUXVlbGxQYXRoID0gSm9p bi1QYXRoICREYXRhRGlyICROYW1lDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0 aCAkUXVlbGxQYXRoKSkgeyBTZW5kLUVycm9yICRSZXMgJ0JhY2t1cCBuaWNodCBnZWZ1bmRlbicg NDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJFBsYW51bmdQYXRoID0gSm9pbi1QYXRo ICREYXRhRGlyICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgJFRzID0gR2V0LURhdGUg LUZvcm1hdCAneXl5eU1NZGRfSEhtbXNzJw0KICAgICAgICAgICAgICAgICRTaWNoZXJOYW1lID0g InBsYW51bmdfYmFja3VwX3Zvcl93aWVkZXJoZXJzdGVsbHVuZ18kVHMuanNvbiINCiAgICAgICAg ICAgICAgICBpZiAoVGVzdC1QYXRoICRQbGFudW5nUGF0aCkgew0KICAgICAgICAgICAgICAgICAg ICBDb3B5LUl0ZW0gLVBhdGggJFBsYW51bmdQYXRoIC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICRE YXRhRGlyICRTaWNoZXJOYW1lKSAtRm9yY2UNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgQ29weS1JdGVtIC1QYXRoICRRdWVsbFBhdGggLURlc3RpbmF0aW9uICRQbGFudW5nUGF0 aCAtRm9yY2UNCiAgICAgICAgICAgICAgICBJbnZva2UtQmFja3VwUm90YXRpb24gJ3BsYW51bmdf YmFja3VwXyouanNvbicgMjANCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdiYWNr dXAud2llZGVyaGVyZ2VzdGVsbHQnIEB7IHF1ZWxsZSA9ICROYW1lOyBzaWNoZXJ1bmcgPSAkU2lj aGVyTmFtZSB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ3dp ZWRlcmhlcmdlc3RlbGx0Jzsgc2ljaGVydW5nID0gJFNpY2hlck5hbWUgfQ0KICAgICAgICAgICAg ICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEg Jy9hcGkvcGxhbnVuZy9iYWNrdXAvbG9lc2NoZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7 DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3Ig JFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAg ICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAk Qm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUg fQ0KICAgICAgICAgICAgICAgICREYXRlbiA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAg ICAgICAgICAgICAgICROYW1lID0gW3N0cmluZ10kRGF0ZW4uZGF0ZWluYW1lDQogICAgICAgICAg ICAgICAgaWYgKC1ub3QgKCROYW1lLlN0YXJ0c1dpdGgoJ3BsYW51bmdfYmFja3VwXycpIC1hbmQg JE5hbWUuRW5kc1dpdGgoJy5qc29uJykpIC1vciAkTmFtZS5Db250YWlucygnLycpIC1vciAkTmFt ZS5Db250YWlucygnXCcpIC1vciAkTmFtZS5Db250YWlucygnLi4nKSkgew0KICAgICAgICAgICAg ICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VyIERhdGVpbmFtZScgNDAwOyBjb250 aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkRlBhdGggPSBKb2luLVBh dGggJERhdGFEaXIgJE5hbWUNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRG UGF0aCkpIHsgU2VuZC1FcnJvciAkUmVzICdCYWNrdXAgbmljaHQgZ2VmdW5kZW4nIDQwNDsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICRGUGF0aCAtRm9yY2UN CiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdiYWNrdXAuZ2Vsb2VzY2h0JyBAeyBk YXRlaW5hbWUgPSAkTmFtZSB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3Rh dHVzID0gJ2dlbG9lc2NodCcgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFBFUlNPTkVOID09PT09 PT09PT09PT09PT09PT09PQ0KDQogICAgICAgICAgICAjIFBlcnNvbiBhbmxlZ2VuDQogICAgICAg ICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BlcnNvbmVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NU Jykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVy cm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAg ICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgICROZXUgPSAkQm9k eSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkUGxhbnVuZyA9IFJlYWQtSnNv bkZpbGUgJ3BsYW51bmcuanNvbicNCg0KICAgICAgICAgICAgICAgICRBbGxlID0gQChHZXQtUGVy c29uZW5BcnJheSAkUGxhbnVuZykNCiAgICAgICAgICAgICAgICAkTWF4SWQgPSAwDQogICAgICAg ICAgICAgICAgZm9yZWFjaCAoJFAgaW4gJEFsbGUpIHsgaWYgKFtpbnRdJFAuaWQgLWd0ICRNYXhJ ZCkgeyAkTWF4SWQgPSBbaW50XSRQLmlkIH0gfQ0KICAgICAgICAgICAgICAgICROZXVlSWQgPSAk TWF4SWQgKyAxDQoNCiAgICAgICAgICAgICAgICAjIEVpbnJlaWhlbjogdm9yL25hY2gvdW50ZW4N CiAgICAgICAgICAgICAgICAkRWlucmVpaGVuID0gaWYgKCROZXUuZWlucmVpaGVuKSB7IChbc3Ry aW5nXSROZXUuZWlucmVpaGVuKS5Ub0xvd2VyKCkgfSBlbHNlIHsgJ3VudGVuJyB9DQogICAgICAg ICAgICAgICAgJFJlZklkID0gJE5ldS5yZWZlcmVueklkDQogICAgICAgICAgICAgICAgJFppZWxQ b3MgPSAkbnVsbA0KDQogICAgICAgICAgICAgICAgJEFsbGVTb3J0aWVydCA9IEAoJEFsbGUgfCBT b3J0LU9iamVjdCAtUHJvcGVydHkgQHtFeHByZXNzaW9uPXtbaW50XSgkXy5wb3NpdGlvbil9OyBB c2NlbmRpbmc9JHRydWV9KQ0KDQogICAgICAgICAgICAgICAgaWYgKCgkRWlucmVpaGVuIC1lcSAn dm9yJyAtb3IgJEVpbnJlaWhlbiAtZXEgJ25hY2gnKSAtYW5kICRudWxsIC1uZSAkUmVmSWQpIHsN CiAgICAgICAgICAgICAgICAgICAgJFJlZlBvcyA9ICRudWxsDQogICAgICAgICAgICAgICAgICAg IGZvcmVhY2ggKCRQIGluICRBbGxlU29ydGllcnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIChbaW50XSRQLmlkIC1lcSBbaW50XSRSZWZJZCkgeyAkUmVmUG9zID0gW2ludF0kUC5wb3Np dGlvbjsgYnJlYWsgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg IGlmICgkbnVsbCAtbmUgJFJlZlBvcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFppZWxQ b3MgPSBpZiAoJEVpbnJlaWhlbiAtZXEgJ3ZvcicpIHsgJFJlZlBvcyB9IGVsc2UgeyAkUmVmUG9z ICsgMSB9DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUCBpbiAkQWxsZVNvcnRp ZXJ0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtpbnRdJFAucG9zaXRpb24g LWdlICRaaWVsUG9zKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQLnBvc2l0 aW9uID0gW2ludF0kUC5wb3NpdGlvbiArIDENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkWmllbFBvcykgew0K ICAgICAgICAgICAgICAgICAgICAkTWF4UG9zID0gMA0KICAgICAgICAgICAgICAgICAgICBmb3Jl YWNoICgkUCBpbiAkQWxsZSkgeyBpZiAoW2ludF0kUC5wb3NpdGlvbiAtZ3QgJE1heFBvcykgeyAk TWF4UG9zID0gW2ludF0kUC5wb3NpdGlvbiB9IH0NCiAgICAgICAgICAgICAgICAgICAgJFppZWxQ b3MgPSAkTWF4UG9zICsgMQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICMg QXVkaXQtSXRlci1COiBuYWNobmFtZSBpc3QgU291cmNlLW9mLVRydXRoLCBuYW1lIG51ciBCYWNr d2FyZC1Db21wYXQtRmFsbGJhY2suDQogICAgICAgICAgICAgICAgJE5hY2huYW1lTmV1ID0gaWYg KCROZXUuUFNPYmplY3QuUHJvcGVydGllc1snbmFjaG5hbWUnXSAtYW5kIC1ub3QgW3N0cmluZ106 OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSROZXUubmFjaG5hbWUpKSB7DQogICAgICAgICAg ICAgICAgICAgIFtzdHJpbmddJE5ldS5uYWNobmFtZQ0KICAgICAgICAgICAgICAgIH0gZWxzZWlm ICgkTmV1LlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hbWUnXSkgew0KICAgICAgICAgICAgICAgICAg ICBbc3RyaW5nXSROZXUubmFtZQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7ICcnIH0NCg0KICAg ICAgICAgICAgICAgICRQZXJzb24gPSBbUFNDdXN0b21PYmplY3RdQHsNCiAgICAgICAgICAgICAg ICAgICAgaWQgICAgICAgICAgID0gJE5ldWVJZA0KICAgICAgICAgICAgICAgICAgICBha3RpdiAg ICAgICAgPSBpZiAoJG51bGwgLW5lICROZXUuYWt0aXYpIHsgW2Jvb2xdJE5ldS5ha3RpdiB9IGVs c2UgeyAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgICAgIG5hY2huYW1lICAgICA9ICROYWNobmFt ZU5ldQ0KICAgICAgICAgICAgICAgICAgICB2b3JuYW1lICAgICAgPSBpZiAoJE5ldS52b3JuYW1l KSB7IFtzdHJpbmddJE5ldS52b3JuYW1lIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAg ICAgZGllbnN0Z3JhZCAgID0gaWYgKCROZXUuZGllbnN0Z3JhZCkgeyBbc3RyaW5nXSROZXUuZGll bnN0Z3JhZCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgIGZ1bmt0aW9uICAgICA9 IGlmICgkTmV1LmZ1bmt0aW9uKSB7IFtzdHJpbmddJE5ldS5mdW5rdGlvbiB9IGVsc2UgeyAnJyB9 DQogICAgICAgICAgICAgICAgICAgIG9lICAgICAgICAgICA9IGlmICgkTmV1Lm9lKSB7IFtzdHJp bmddJE5ldS5vZSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgIGRpZW5zdG51bW1l ciA9IGlmICgkTmV1LmRpZW5zdG51bW1lcikgeyBbc3RyaW5nXSROZXUuZGllbnN0bnVtbWVyIH0g ZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgdGVsZWZvbiAgICAgID0gaWYgKCROZXUu dGVsZWZvbikgeyBbc3RyaW5nXSROZXUudGVsZWZvbiB9IGVsc2UgeyAnJyB9DQogICAgICAgICAg ICAgICAgICAgIHBvc2l0aW9uICAgICA9ICRaaWVsUG9zDQogICAgICAgICAgICAgICAgICAgIGVt YWlsICAgICAgICA9IGlmICgkTmV1LmVtYWlsKSB7IFtzdHJpbmddJE5ldS5lbWFpbCB9IGVsc2Ug eyAnJyB9DQogICAgICAgICAgICAgICAgICAgIG53S2VubnVuZyAgICA9IGlmICgkTmV1Lm53S2Vu bnVuZykgeyBbc3RyaW5nXSROZXUubndLZW5udW5nIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAg ICAgICAgICAgIyBBdWRpdC1GaW5kaW5nIEQxOiBvcHRpb25hbGUgRmVsZGVyIG1pdCBudWxsLURl ZmF1bHQNCiAgICAgICAgICAgICAgICAgICAgIyBzdGF0dCAiIiAoTWlycm9yIHNlcnZlci5weToz NDAxLTM0MDUpLg0KICAgICAgICAgICAgICAgICAgICBnZWJ1cnRzZGF0dW0gPSBpZiAoJE5ldS5n ZWJ1cnRzZGF0dW0pIHsgW3N0cmluZ10kTmV1LmdlYnVydHNkYXR1bSB9IGVsc2UgeyAkbnVsbCB9 DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgJFBsYW51bmcucGVyc29uZW4g PSBAKCRBbGxlICsgJFBlcnNvbikNCiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAncGxh bnVuZy5qc29uJyAkUGxhbnVuZw0KICAgICAgICAgICAgICAgICMgQXV0by1Sb2xsZW4tU3luYyAo REdMLzEuRUIgLT4gc3VwZXJVc2VyLCAxLkVCIFYuIC0+IGZhY2hhdWZzaWNodGVuKQ0KICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRBZG1pbiA9IFJlYWQtSnNvbkZp bGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgICAgIGlmIChTeW5jLVJvbGxlbkF1c1Bl cnNvbmVuICRQbGFudW5nICRBZG1pbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUt SnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgfSBjYXRjaCB7IFdyaXRlLVdhcm5pbmcgIlJvbGxlbi1TeW5jIG5hY2ggUGVy c29uLUFubGFnZSBmZWhsZ2VzY2hsYWdlbjogJF8iIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1M b2dFaW50cmFnICdwZXJzb24uYW5nZWxlZ3QnIEB7IHBlcnNvbklkID0gJE5ldWVJZDsgbmFjaG5h bWUgPSAiJCgkTmV1LnZvcm5hbWUpICROYWNobmFtZU5ldSIuVHJpbSgpIH0NCiAgICAgICAgICAg ICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnYW5nZWxlZ3QnOyBpZCA9ICROZXVlSWQ7 IHBvc2l0aW9uID0gJFppZWxQb3MgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICMgUGVyc29uIGFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAg ICRQZXJzb25NYXRjaCA9IFtyZWdleF06Ok1hdGNoKCRQYXRoLCAnXi9hcGkvcGVyc29uZW4vKFxk KykkJykNCiAgICAgICAgICAgIGlmICgkUGVyc29uTWF0Y2guU3VjY2VzcyAtYW5kICRNZXRob2Qg LWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7 IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAg ICAgICAgICAgICAgICAkSWQgPSBbaW50XSRQZXJzb25NYXRjaC5Hcm91cHNbMV0uVmFsdWUNCiAg ICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgJFVw ZGF0ZSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICRQbGFudW5n ID0gUmVhZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KDQogICAgICAgICAgICAgICAgIyBBdWRp dC1JdGVyLUI6IExlZ2FjeS1uYW1lIC0+IG5hY2huYW1lIG1hcHBlbiwgZGFubiBuYW1lIGF1cyBV cGRhdGUgZW50ZmVybmVuDQogICAgICAgICAgICAgICAgaWYgKCRVcGRhdGUuUFNPYmplY3QuUHJv cGVydGllc1snbmFtZSddIC1hbmQgLW5vdCAkVXBkYXRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25h Y2huYW1lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgJFVwZGF0ZSB8IEFkZC1NZW1iZXIgLU1l bWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICduYWNobmFtZScgLVZhbHVlIChbc3RyaW5nXSRV cGRhdGUubmFtZSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRVcGRh dGUuUFNPYmplY3QuUHJvcGVydGllc1snbmFtZSddKSB7DQogICAgICAgICAgICAgICAgICAgICRV cGRhdGUuUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJ25hbWUnKQ0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICMgQXVkaXQtRmluZGluZyBEMTogb3B0aW9uYWxlIERhdHVt cy0vTm90aXotRmVsZGVyIGF1ZiBudWxsDQogICAgICAgICAgICAgICAgIyBub3JtYWxpc2llcmVu IChNaXJyb3Igc2VydmVyLnB5OjM0MzUtMzQzOCkuDQogICAgICAgICAgICAgICAgZm9yZWFjaCAo JE9wdEZlbGQgaW4gQCgnZ2VidXJ0c2RhdHVtJywnZW5kRGF0dW0nLCdlcmlubmVydW5nc05vdGl6 JykpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRVcGRhdGUuUFNPYmplY3QuUHJvcGVydGll c1skT3B0RmVsZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRWID0gJFVwZGF0ZS4oJE9w dEZlbGQpDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFYgLWlzIFtzdHJpbmddIC1hbmQg W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVikpIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkVXBkYXRlLigkT3B0RmVsZCkgPSAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgJEdlZnVuZGVuID0gJGZhbHNlDQogICAgICAgICAgICAgICAgZm9yICgkaSA9IDA7 ICRpIC1sdCAkUGxhbnVuZy5wZXJzb25lbi5Db3VudDsgJGkrKykgew0KICAgICAgICAgICAgICAg ICAgICBpZiAoW2ludF0kUGxhbnVuZy5wZXJzb25lblskaV0uaWQgLWVxICRJZCkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJFByb3AgaW4gJFVwZGF0ZS5QU09iamVjdC5Qcm9w ZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQcm9wLk5hbWUgLW5l ICdpZCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLnBl cnNvbmVuWyRpXS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQcm9wLk5hbWVdKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZXJzb25lblskaV0uKCRQcm9wLk5h bWUpID0gJFByb3AuVmFsdWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBlcnNvbmVu WyRpXSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRQcm9wLk5h bWUgLVZhbHVlICRQcm9wLlZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAjIExlZ2FjeS1uYW1lLUZlbGQgZW5kZ3VlbHRpZyBh dXMgUGVyc29uIGVudGZlcm5lbiwgZmFsbHMgbm9jaCB2b3JoYW5kZW4NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkUGxhbnVuZy5wZXJzb25lblskaV0uUFNPYmplY3QuUHJvcGVydGllc1sn bmFtZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExlZ2FjeU5hbWUgPSBbc3Ry aW5nXSRQbGFudW5nLnBlcnNvbmVuWyRpXS5uYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkTGVnYWN5TmFtZSkgLWFu ZCBgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbc3RyaW5nXTo6SXNOdWxsT3JX aGl0ZVNwYWNlKFtzdHJpbmddJFBsYW51bmcucGVyc29uZW5bJGldLm5hY2huYW1lKSkpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLnBlcnNvbmVuWyRpXS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyduYWNobmFtZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkUGxhbnVuZy5wZXJzb25lblskaV0ubmFjaG5hbWUgPSAkTGVnYWN5TmFt ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGVyc29uZW5bJGldIHwgQWRkLU1lbWJl ciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ25hY2huYW1lJyAtVmFsdWUgJExlZ2Fj eU5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZXJz b25lblskaV0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJ25hbWUnKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJEdlZnVuZGVuID0gJHRydWU7 IGJyZWFrDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgaWYgKC1ub3QgJEdlZnVuZGVuKSB7IFNlbmQtRXJyb3IgJFJlcyAiUGVyc29uICRJ ZCBuaWNodCBnZWZ1bmRlbiIgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgV3JpdGUt SnNvbkZpbGUgJ3BsYW51bmcuanNvbicgJFBsYW51bmcNCiAgICAgICAgICAgICAgICAjIEF1dG8t Um9sbGVuLVN5bmMgbmFjaCBFZGl0IChGdW5rdGlvbiBrYW5uIHNpY2ggZ2VhZW5kZXJ0IGhhYmVu KQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRBZG1pbiA9IFJl YWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgICAgIGlmIChTeW5jLVJv bGxlbkF1c1BlcnNvbmVuICRQbGFudW5nICRBZG1pbikgew0KICAgICAgICAgICAgICAgICAgICAg ICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7IFdyaXRlLVdhcm5pbmcgIlJvbGxlbi1TeW5j IG5hY2ggUGVyc29uLUVkaXQgZmVobGdlc2NobGFnZW46ICRfIiB9DQogICAgICAgICAgICAgICAg V3JpdGUtTG9nRWludHJhZyAncGVyc29uLmdlYWVuZGVydCcgQHsgcGVyc29uSWQgPSAkSWQgfQ0K ICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdha3R1YWxpc2llcnQn IH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAjIFJlaWhlbmZvbGdlIGFlbmRlcm4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkv cGVyc29uZW4vcmVpaGVuZm9sZ2UnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAg ICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdLZWlu ZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5ID0g UmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICAkUmVpaGVuZm9sZ2UgPSAkQm9keSB8IENv bnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUg J3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkUiBpbiAkUmVpaGVuZm9s Z2UpIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIC1sdCAkUGxhbnVuZy5w ZXJzb25lbi5Db3VudDsgJGkrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtpbnRd JFBsYW51bmcucGVyc29uZW5bJGldLmlkIC1lcSBbaW50XSRSLmlkKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFBsYW51bmcucGVyc29uZW5bJGldLnBvc2l0aW9uID0gW2ludF0kUi5w b3NpdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicgJFBsYW51bmcNCiAg ICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdwZXJzb25lbi5yZWloZW5mb2xnZS5nZWFl bmRlcnQnIEB7fQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdh a3R1YWxpc2llcnQnIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBTVEFUSVNUSUsgPT09PT09PT09 PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3N0YXRpc3Rpaycg LWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgIEhhbmRsZS1TdGF0aXN0 aWsgJFJlcw0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IERVTU1ZREFURU4gLyBSRVNFVCA9PT09PT09 PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZy9k dW1teWRhdGVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlm ICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRp Z3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgSGFuZGxlLUR1bW15ZGF0ZW4g JFJlcw0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAg ICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvcmVzZXQnIC1hbmQgJE1ldGhvZCAtZXEgJ1BP U1QnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQt RXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICBIYW5kbGUtUmVzZXQgJFJlcw0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IEZMRDogU0NI SUNIVC1JTVBPUlQgKFBhc3RlLWJhc2llcnQpID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAg ICAgICAgIyBTcGllZ2VsIHp1IHNlcnZlci5weSBQT1NUIC9hcGkvaW1wb3J0L3NjaGljaHRlbi91 ZWJlcm5laG1lbi4NCiAgICAgICAgICAgICMgQ2xpZW50IHBhcnN0IGRpZSBnZXBhc3RldGVuIEV4 Y2VsLURhdGVuIGNsaWVudHNlaXRpZyB1bmQgc2NoaWNrdA0KICAgICAgICAgICAgIyBlaW50cmFl Z2UgKyBwZmxpY2h0LUZsYWdzIHp1bSBTY2hyZWliZW4uDQogICAgICAgICAgICBpZiAoJFBhdGgg LWVxICcvYXBpL2ltcG9ydC9zY2hpY2h0ZW4vdWViZXJuZWhtZW4nIC1hbmQgJE1ldGhvZCAtZXEg J1BPU1QnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkg eyBTZW5kLUVycm9yICRSZXMgJ051ciBTdXBlclVzZXIgZHVlcmZlbiBpbXBvcnRpZXJlbicgNDAz OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAg ICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZy YWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICB0cnkgew0KICAg ICAgICAgICAgICAgICAgICAkUGFyYW0gPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAg ICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVz ICdVbmd1ZWx0aWdlcyBKU09OJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgJExvY2tSZXN1bHQgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgICAgICRMb2NrUmVzdWx0ID0gSW52b2tlLVdpdGhGaWxlTG9jayAn cGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyA9IFJlYWQt SnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVs bCAtZXEgJFBsYW51bmcpIHsgcmV0dXJuIEB7IHR5cCA9ICdlcnJvcic7IGNvZGUgPSA0MDQ7IG1z ZyA9ICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5kZW4nIH0gfQ0KDQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2Un XSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ2VpbnRyYWVnZScgLVZhbHVlIChOZXctT2Jq ZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sncGZsaWNodCdd KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1N ZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAncGZsaWNodCcgLVZhbHVlIChOZXctT2JqZWN0 IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgICAgICAjIEF1ZGl0LUlJLTEgRjE6IFNjaGljaHRjb2RlLVdoaXRlbGlzdCBhdWNoIGltIElt cG9ydC1QZmFkLg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBNaXJyb3IgenUgc2VydmVyLnB5 OjM1NjQtMzU2OC4NCiAgICAgICAgICAgICAgICAgICAgICAgICRBZG1pbkZ1ZXJJbXBvcnQgPSBS ZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgJFZhbGlk Q29kZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkhhc2hTZXRbc3Ry aW5nXQ0KICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFZhbGlkQ29kZXMuQWRkKCcnKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkQWRtaW5GdWVySW1wb3J0IC1h bmQgJEFkbWluRnVlckltcG9ydC5QU09iamVjdC5Qcm9wZXJ0aWVzWydzY2hpY2h0Y29kZXMnXSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRTYyBpbiAkQWRtaW5GdWVy SW1wb3J0LnNjaGljaHRjb2Rlcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoJG51bGwgLW5lICRTYyAtYW5kICRTYy5QU09iamVjdC5Qcm9wZXJ0aWVzWydjb2RlJ10pIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRWYWxpZENvZGVzLkFk ZChbc3RyaW5nXSRTYy5jb2RlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICAkQW56ID0gMDsgJE5PcnBoYW4gPSAwDQogICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJFBhcmFtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVn ZSddIC1hbmQgJG51bGwgLW5lICRQYXJhbS5laW50cmFlZ2UpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3JlYWNoICgkRGF0dW1Qcm9wIGluICRQYXJhbS5laW50cmFlZ2UuUFNPYmpl Y3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0dW0g PSAkRGF0dW1Qcm9wLk5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBpZE1h cCA9ICREYXR1bVByb3AuVmFsdWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KC1ub3QgJFBsYW51bmcuZWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlIHwg QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1WYWx1ZSAo TmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUGlkUHJvcCBpbiAkUGlk TWFwLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRQZXJzb25JZCA9IFtzdHJpbmddJFBpZFByb3AuTmFtZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJFdlcnQgPSBbc3RyaW5nXSRQaWRQcm9wLlZhbHVlDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkVmFsaWRDb2Rlcy5Db250 YWlucygkV2VydCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Tk9ycGhhbisrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJFBlcnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZS4kRGF0dW0uJFBlcnNvbklkID0gJFdlcnQN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlLiREYXR1bSB8 IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRQZXJzb25JZCAtVmFs dWUgJFdlcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBbnorKw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBhcmFtLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQnXSAtYW5kICRudWxsIC1uZSAkUGFyYW0ucGZsaWNodCkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCREYXR1bVByb3AgaW4gJFBh cmFtLnBmbGljaHQuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkRGF0dW0gPSAkRGF0dW1Qcm9wLk5hbWUNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJFBpZE1hcCA9ICREYXR1bVByb3AuVmFsdWUNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcucGZsaWNodC5QU09iamVjdC5Qcm9wZXJ0 aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFu dW5nLnBmbGljaHQgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAk RGF0dW0gLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRQ aWRQcm9wIGluICRQaWRNYXAuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJFBlcnNvbklkID0gW3N0cmluZ10kUGlkUHJvcC5OYW1lDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRmxhZyA9ICRQaWRQcm9wLlZhbHVl DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJEZsYWcpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGZsaWNodC4k RGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQuJERhdHVtLiRQZXJz b25JZCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51 bmcucGZsaWNodC4kRGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAt TmFtZSAkUGVyc29uSWQgLVZhbHVlICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcu cGZsaWNodC4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQuJERh dHVtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRQZXJzb25JZCkNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAgICAgICAgIFdyaXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyAgICMg QnVsay1PcDogYWxsZSBITUFDcyBuZXUNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBA eyB0eXAgPSAnb2snOyBlaW50cmFlZ2UgPSAkQW56OyB1bmJla2FubnRlQ29kZXMgPSAkTk9ycGhh biB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAg ICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICJVZWJlcm5haG1lLUZlaGxlcjogJF8i IDUwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAo JExvY2tSZXN1bHQudHlwIC1lcSAnZXJyb3InKSB7IFNlbmQtRXJyb3IgJFJlcyAkTG9ja1Jlc3Vs dC5tc2cgJExvY2tSZXN1bHQuY29kZTsgY29udGludWUgfQ0KDQogICAgICAgICAgICAgICAgV3Jp dGUtTG9nRWludHJhZyAnc2NoaWNodGVuLmltcG9ydGllcnQnIEB7IGVpbnRyYWVnZSA9ICRMb2Nr UmVzdWx0LmVpbnRyYWVnZTsgdW5iZWthbm50ZUNvZGVzID0gJExvY2tSZXN1bHQudW5iZWthbm50 ZUNvZGVzIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAndWVi ZXJub21tZW4nOyBlaW50cmFlZ2UgPSAkTG9ja1Jlc3VsdC5laW50cmFlZ2U7IHVuYmVrYW5udGVD b2RlcyA9ICRMb2NrUmVzdWx0LnVuYmVrYW5udGVDb2RlcyB9DQogICAgICAgICAgICAgICAgRGVi dWctTG9nICdBUEknICJQT1NUIC9hcGkvaW1wb3J0L3NjaGljaHRlbi91ZWJlcm5laG1lbiAtPiAk KCRMb2NrUmVzdWx0LmVpbnRyYWVnZSkgRWludHJhZWdlIGdlc2NocmllYmVuLCAkKCRMb2NrUmVz dWx0LnVuYmVrYW5udGVDb2RlcykgdW5iZWthbm50ZSBDb2RlcyB2ZXJ3b3JmZW4iDQogICAgICAg ICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09 PT09PT09PT09PT09PT0gRkxEOiBFWENFTC1JTVBPUlQgKFZvcnNjaGF1KSA9PT09PT09PT09PT09 PT09PT09PT0NCiAgICAgICAgICAgICMgU3BpZWdlbCB6dSBzZXJ2ZXIucHkgUE9TVCAvYXBpL2lt cG9ydC9leGNlbC92b3JzY2hhdS4NCiAgICAgICAgICAgICMgQ2xpZW50IChCcm93c2VyLCBtaXQg eGxzeC5mdWxsLm1pbi5qcyAvIFNoZWV0SlMpIHBhcnN0IGRpZQ0KICAgICAgICAgICAgIyBFeGNl bC1Wb3JsYWdlIHVuZCBzY2hpY2t0IGRhcyBmZXJ0aWctZ2VwYXJzdGUgU2NoZW1hLg0KICAgICAg ICAgICAgIyBTZXJ2ZXIgbGllZmVydCBudXIgZGVuIFBlcnNvbmVuLURpZmYgenVyIGFrdHVlbGxl biBwbGFudW5nLmpzb24uDQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2ltcG9ydC9l eGNlbC92b3JzY2hhdScgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAg ICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1 cGVyVXNlciBkdWVyZmVuIGltcG9ydGllcmVuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAg ICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1l cSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGlu dWUgfQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRQYXJhbSA9 ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAg ICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VzIEpTT04nIDQwMDsg Y29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBh cmFtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlcnNvbmVuRXhjZWwnXSAtb3IgJG51bGwgLWVxICRQ YXJhbS5wZXJzb25lbkV4Y2VsKSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJl cyAncGVyc29uZW5FeGNlbCAoQXJyYXkpIGZlaGx0JyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICRQZXJzb25lbkV4Y2VsID0gQCgkUGFyYW0ucGVyc29u ZW5FeGNlbCkNCg0KICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxh bnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICRQZXJzb25lblBsYW51bmcgPSBAKCkNCiAgICAg ICAgICAgICAgICBpZiAoJFBsYW51bmcgLWFuZCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVz WydwZXJzb25lbiddKSB7DQogICAgICAgICAgICAgICAgICAgICRQZXJzb25lblBsYW51bmcgPSBA KCRQbGFudW5nLnBlcnNvbmVuKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg ICMgTWF0Y2gtSGV1cmlzdGlrOiBOYWNobmFtZSB6dWVyc3QsIGRhbm4gVm9ybmFtZSwgbWl0IERp ZW5zdGdyYWQgYWxzDQogICAgICAgICAgICAgICAgIyBUaWVicmVha2VyLiBIYXJkLUZhaWwgd2Vu biBiZWlkZSBOYWNobmFtZW4gZ2VzZXR6dCBhYmVyIHVudGVyc2NoaWVkbGljaC4NCiAgICAgICAg ICAgICAgICAjIEdyZWVkeS0xOjEtWnVvcmRudW5nICh2ZXJoaW5kZXJ0IGRhc3MgendlaSBFeGNl bC0nTGVuYScgYmVpZGUgYXVmDQogICAgICAgICAgICAgICAgIyBkaWUgZ2xlaWNoZSBwbGFudW5n LUxlbmEgbGFuZGVuKS4NCiAgICAgICAgICAgICAgICAjIEluYWt0aXZlIFBlcnNvbmVuIHdlcmRl biBlYmVuZmFsbHMgYmVydWVja3NpY2h0aWd0LCBzb25zdCB3dWVyZGVuDQogICAgICAgICAgICAg ICAgIyB6dXZvciBkZWFrdGl2aWVydGUgUGVyc29uZW4gYmVpIFJlLUltcG9ydCBhbHMgJ25ldScg YW5nZWxlZ3Qgc3RhdHQNCiAgICAgICAgICAgICAgICAjIHJlYWt0aXZpZXJ0LiBBa3RpdmUgYmVr b21tZW4gKzAuNSBTY29yZS1Cb251cy4NCiAgICAgICAgICAgICAgICAkQWxsZVBsYW51bmcgPSBA KCRQZXJzb25lblBsYW51bmcpDQoNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBHZXQtTmFtZVRv a2VucygkTmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAjIFNwbGl0IGJlaSBCaW5kZXN0cmlj aCArIFdoaXRlc3BhY2UsIGxvd2VyY2FzZSwgbGVlcmUgcmF1cy4NCiAgICAgICAgICAgICAgICAg ICAgIyAnUmVtdXMtQXJ0aHVyJyAtPiBAKCdyZW11cycsICdhcnRodXInKQ0KICAgICAgICAgICAg ICAgICAgICAjIFVtbGF1dGUgKyBzcy1Ob3JtOiAnTXVlbGxlcicgbWF0Y2hlZCAnTcO8bGxlcics ICdNYXJpc3MnICdNYXJpw58nLg0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkTmFtZSkg eyByZXR1cm4gQCgpIH0NCiAgICAgICAgICAgICAgICAgICAgJHMgPSAoW3N0cmluZ10kTmFtZSku VHJpbSgpLlRvTG93ZXIoKQ0KICAgICAgICAgICAgICAgICAgICAkcyA9ICRzIC1yZXBsYWNlICfD pCcsJ2FlJyAtcmVwbGFjZSAnw7YnLCdvZScgLXJlcGxhY2UgJ8O8JywndWUnIC1yZXBsYWNlICfD nycsJ3NzJw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQCgkcyAtc3BsaXQgJ1stXHNdKycg fCBXaGVyZS1PYmplY3QgeyAkXyB9KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgIGZ1bmN0aW9uIFRlc3QtTmFtZXNNYXRjaCgkQSwgJEIpIHsNCiAgICAgICAgICAgICAgICAg ICAgIyBUcnVlIHdlbm4gZGllIFRva2VuLVNldHMgc2ljaCB1ZWJlcmxhcHBlbi4NCiAgICAgICAg ICAgICAgICAgICAgJHRhID0gR2V0LU5hbWVUb2tlbnMgJEENCiAgICAgICAgICAgICAgICAgICAg JHRiID0gR2V0LU5hbWVUb2tlbnMgJEINCiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJHRh IC1vciAtbm90ICR0YikgeyByZXR1cm4gJGZhbHNlIH0NCiAgICAgICAgICAgICAgICAgICAgZm9y ZWFjaCAoJHQgaW4gJHRhKSB7IGlmICgkdGIgLWNvbnRhaW5zICR0KSB7IHJldHVybiAkdHJ1ZSB9 IH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRmYWxzZQ0KICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIEdldC1QZXJzb25TY29yZSgkRXhjZWwsICRQbGFu dW5nKSB7DQogICAgICAgICAgICAgICAgICAgICRlTiA9IChbc3RyaW5nXSRFeGNlbC5uYWNobmFt ZSkuVHJpbSgpDQogICAgICAgICAgICAgICAgICAgICRlViA9IChbc3RyaW5nXSRFeGNlbC52b3Ju YW1lKS5UcmltKCkNCiAgICAgICAgICAgICAgICAgICAgJGVEID0gKFtzdHJpbmddJEV4Y2VsLmRp ZW5zdGdyYWQpLlRyaW0oKS5Ub0xvd2VyKCkNCiAgICAgICAgICAgICAgICAgICAgJHBOID0gaWYg KCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hY2huYW1lJ10pIHsgKFtzdHJpbmddJFBs YW51bmcubmFjaG5hbWUpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAg ICRwViA9IGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWyd2b3JuYW1lJ10pIHsgKFtz dHJpbmddJFBsYW51bmcudm9ybmFtZSkuVHJpbSgpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAg ICAgICAgICAgJHBEID0gaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2RpZW5zdGdy YWQnXSkgeyAoW3N0cmluZ10kUGxhbnVuZy5kaWVuc3RncmFkKS5UcmltKCkuVG9Mb3dlcigpIH0g ZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgIyBIYXJkLUZhaWw6IGJlaWRlIE5hY2hu YW1lbiBnZXNldHp0LCBhYmVyIGtlaW5lIFRva2VuLVVlYmVybGFwcHVuZw0KICAgICAgICAgICAg ICAgICAgICBpZiAoJGVOIC1hbmQgJHBOIC1hbmQgLW5vdCAoVGVzdC1OYW1lc01hdGNoICRlTiAk cE4pKSB7IHJldHVybiAwIH0NCiAgICAgICAgICAgICAgICAgICAgJG5NID0gKFRlc3QtTmFtZXNN YXRjaCAkZU4gJHBOKQ0KICAgICAgICAgICAgICAgICAgICAkdk0gPSAoVGVzdC1OYW1lc01hdGNo ICRlViAkcFYpDQogICAgICAgICAgICAgICAgICAgICRkTSA9ICgkZUQgLWFuZCAkcEQgLWFuZCAk ZUQgLWVxICRwRCkNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRuTSAtYW5kICR2TSAtYW5kICRk TSkgeyByZXR1cm4gNSB9ICAgIyBwZXJmZWt0DQogICAgICAgICAgICAgICAgICAgIGlmICgkbk0g LWFuZCAkdk0pIHsgcmV0dXJuIDQgfSAgICAgICAgICAgICMgc2VociBzdGFyaw0KICAgICAgICAg ICAgICAgICAgICBpZiAoJG5NIC1hbmQgJGRNKSB7IHJldHVybiAzIH0NCiAgICAgICAgICAgICAg ICAgICAgaWYgKCRuTSkgeyByZXR1cm4gMyB9DQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90 ICRwTiAtYW5kICR2TSAtYW5kICRkTSkgeyByZXR1cm4gMyB9DQogICAgICAgICAgICAgICAgICAg IGlmICgtbm90ICRwTiAtYW5kICR2TSkgeyByZXR1cm4gMiB9DQogICAgICAgICAgICAgICAgICAg IHJldHVybiAwDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24g R2V0LVBlcnNvbktvbXBha3QoJFApIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7DQog ICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICRQLmlkDQogICAgICAgICAgICAgICAgICAgICAg ICB2b3JuYW1lID0gaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Zvcm5hbWUnXSkgeyAkUC52 b3JuYW1lIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5hY2huYW1lID0g aWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hY2huYW1lJ10pIHsgJFAubmFjaG5hbWUgfSBl bHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZGllbnN0Z3JhZCA9IGlmICgkUC5Q U09iamVjdC5Qcm9wZXJ0aWVzWydkaWVuc3RncmFkJ10pIHsgJFAuZGllbnN0Z3JhZCB9IGVsc2Ug eyAnJyB9DQogICAgICAgICAgICAgICAgICAgICAgICBmdW5rdGlvbiA9IGlmICgkUC5QU09iamVj dC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7ICRQLmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgIGFrdGl2ID0gaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNb J2FrdGl2J10pIHsgJFAuYWt0aXYgfSBlbHNlIHsgJHRydWUgfQ0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgIyBQaGFzZSAxOiBhbGxl IChzY29yZSwgZWksIHBpKS1QYWFyZS4gQWt0aXZlICswLjUgQm9udXMuDQogICAgICAgICAgICAg ICAgJFBhYXJlID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAg ICAgICAgICAgICAgZm9yICgkZWkgPSAwOyAkZWkgLWx0ICRQZXJzb25lbkV4Y2VsLkNvdW50OyAk ZWkrKykgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKCRwaSA9IDA7ICRwaSAtbHQgJEFsbGVQ bGFudW5nLkNvdW50OyAkcGkrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHMgPSBHZXQt UGVyc29uU2NvcmUgJFBlcnNvbmVuRXhjZWxbJGVpXSAkQWxsZVBsYW51bmdbJHBpXQ0KICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCRzIC1ndCAwKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGlzdEFrdGl2ID0gLW5vdCAkQWxsZVBsYW51bmdbJHBpXS5QU09iamVjdC5Qcm9wZXJ0 aWVzWydha3RpdiddIC1vciAkQWxsZVBsYW51bmdbJHBpXS5ha3RpdiAtZXEgJHRydWUNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGlzdEFrdGl2KSB7ICRzICs9IDAuNSB9DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFBhYXJlLkFkZChAeyBzPSRzOyBlaT0kZWk7 IHBpPSRwaSB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICMgUGhhc2UgMjogZ3JlZWR5 IG5hY2ggU2NvcmUgYWJzdGVpZ2VuZA0KICAgICAgICAgICAgICAgICRTb3J0ZWQgPSBAKCRQYWFy ZSB8IFNvcnQtT2JqZWN0IC1Qcm9wZXJ0eSBAe0V4cHJlc3Npb249eyAtJF8ucyB9fSkNCiAgICAg ICAgICAgICAgICAkRXhjZWxadVBsYW51bmcgPSBAe30NCiAgICAgICAgICAgICAgICAkUGxhbnVu Z1VzZWQgPSBAe30NCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcHAgaW4gJFNvcnRlZCkgew0K ICAgICAgICAgICAgICAgICAgICBpZiAoJEV4Y2VsWnVQbGFudW5nLkNvbnRhaW5zS2V5KCRwcC5l aSkpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmdVc2VkLkNv bnRhaW5zS2V5KCRwcC5waSkpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAkRXhj ZWxadVBsYW51bmdbJHBwLmVpXSA9IEB7IHBpID0gJHBwLnBpOyBzID0gJHBwLnMgfQ0KICAgICAg ICAgICAgICAgICAgICAkUGxhbnVuZ1VzZWRbJHBwLnBpXSA9ICR0cnVlDQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgJE1hdGNoID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVj dGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAgJE5ldSA9IE5ldy1PYmplY3QgU3lzdGVt LkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICRVbnNpY2hlciA9IE5ldy1P YmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICRFbnRm ZXJudCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KDQogICAgICAg ICAgICAgICAgIyBQaGFzZSAzOiBNZWhyZGV1dGlna2VpdHMtQ2hlY2sNCiAgICAgICAgICAgICAg ICBmb3IgKCRlaSA9IDA7ICRlaSAtbHQgJFBlcnNvbmVuRXhjZWwuQ291bnQ7ICRlaSsrKSB7DQog ICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRFeGNlbFp1UGxhbnVuZy5Db250YWluc0tleSgk ZWkpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgJGcgPSAkRXhjZWxadVBsYW51 bmdbJGVpXQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJGcucyAtbGUgMykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgJEFuZGVyZSA9IEAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9y ICgkcGkgPSAwOyAkcGkgLWx0ICRBbGxlUGxhbnVuZy5Db3VudDsgJHBpKyspIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAoJHBpIC1lcSAkZy5waSkgeyBjb250aW51ZSB9DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nVXNlZC5Db250YWluc0tleSgkcGkp KSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2sgPSBHZXQtUGVy c29uU2NvcmUgJFBlcnNvbmVuRXhjZWxbJGVpXSAkQWxsZVBsYW51bmdbJHBpXQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRpc3RBID0gLW5vdCAkQWxsZVBsYW51bmdbJHBpXS5QU09iamVj dC5Qcm9wZXJ0aWVzWydha3RpdiddIC1vciAkQWxsZVBsYW51bmdbJHBpXS5ha3RpdiAtZXEgJHRy dWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHNrIC1ndCAwIC1hbmQgJGlzdEEp IHsgJHNrICs9IDAuNSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzayAtZXEg JGcucykgeyAkQW5kZXJlICs9ICRwaSB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAoJEFuZGVyZS5Db3VudCAtZ3QgMCkgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRLYW5kSWR4ID0gQCgkZy5waSkgKyAkQW5kZXJlDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEthbmRPYmogPSBAKCkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3JlYWNoICgkcGkgaW4gJEthbmRJZHgpIHsgJEthbmRPYmogKz0gKEdldC1QZXJz b25Lb21wYWt0ICRBbGxlUGxhbnVuZ1skcGldKSB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgW3ZvaWRdJFVuc2ljaGVyLkFkZChAeyBleGNlbCA9ICRQZXJzb25lbkV4Y2VsWyRlaV07IGth bmRpZGF0ZW4gPSAkS2FuZE9iaiB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRFeGNl bFp1UGxhbnVuZy5SZW1vdmUoJGVpKSB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAjIFBoYXNlIDQ6IG1hdGNoICsgbmV1IGtsYXNzaWZpemllcmVuDQogICAgICAgICAg ICAgICAgZm9yICgkZWkgPSAwOyAkZWkgLWx0ICRQZXJzb25lbkV4Y2VsLkNvdW50OyAkZWkrKykg ew0KICAgICAgICAgICAgICAgICAgICBpZiAoJEV4Y2VsWnVQbGFudW5nLkNvbnRhaW5zS2V5KCRl aSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRnID0gJEV4Y2VsWnVQbGFudW5nWyRlaV0N CiAgICAgICAgICAgICAgICAgICAgICAgICRjb25maWRlbmNlID0gaWYgKCRnLnMgLWdlIDQpIHsg J2hvY2gnIH0gZWxzZSB7ICdtaXR0ZWwnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lk XSRNYXRjaC5BZGQoQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9ICRQZXJz b25lbkV4Y2VsWyRlaV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFudW5nID0gKEdl dC1QZXJzb25Lb21wYWt0ICRBbGxlUGxhbnVuZ1skZy5waV0pDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uZmlkZW5jZSA9ICRjb25maWRlbmNlDQogICAgICAgICAgICAgICAgICAgICAg ICB9KQ0KICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoLW5vdCAoJFVuc2ljaGVyIHwgV2hl cmUtT2JqZWN0IHsgJF8uZXhjZWwgLWVxICRQZXJzb25lbkV4Y2VsWyRlaV0gfSkpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgIFt2b2lkXSROZXUuQWRkKEB7IGV4Y2VsID0gJFBlcnNvbmVuRXhj ZWxbJGVpXSB9KQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgIyBQaGFzZSA1OiBlbnRmZXJudCA9IEFLVElWRSBwbGFudW5nIG9obmUg TWF0Y2ggKGluYWt0aXZlIGJsZWliZW4gZWluZmFjaCBpbmFrdGl2KQ0KICAgICAgICAgICAgICAg IGZvciAoJHBpID0gMDsgJHBpIC1sdCAkQWxsZVBsYW51bmcuQ291bnQ7ICRwaSsrKSB7DQogICAg ICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nVXNlZC5Db250YWluc0tleSgkcGkpKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAkaXN0QWt0aXYgPSAtbm90ICRBbGxlUGxhbnVuZ1sk cGldLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10gLW9yICRBbGxlUGxhbnVuZ1skcGldLmFr dGl2IC1lcSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpc3RBa3Rpdikgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRFbnRmZXJudC5BZGQoQHsgcGxhbnVu ZyA9IChHZXQtUGVyc29uS29tcGFrdCAkQWxsZVBsYW51bmdbJHBpXSkgfSkNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAg IGphaHIgPSBpZiAoJFBhcmFtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2phaHInXSkgeyAkUGFyYW0u amFociB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgICAgIHBlcnNvbmVuID0gQHsN CiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gQCgkTWF0Y2gpDQogICAgICAgICAgICAg ICAgICAgICAgICBuZXUgPSBAKCROZXUpDQogICAgICAgICAgICAgICAgICAgICAgICBlbnRmZXJu dCA9IEAoJEVudGZlcm50KQ0KICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWNoZXIgPSBAKCRV bnNpY2hlcikNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBhbnph aGwgPSBAew0KICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5FeGNlbCA9ICRQZXJzb25l bkV4Y2VsLkNvdW50DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgRGVidWctTG9nICdBUEknICJQT1NUIC9hcGkvaW1wb3J0L2V4Y2VsL3Zv cnNjaGF1IC0+ICQoJFBlcnNvbmVuRXhjZWwuQ291bnQpIFBlcnNvbmVuLCBtYXRjaD0kKCRNYXRj aC5Db3VudCkgbmV1PSQoJE5ldS5Db3VudCkgZW50ZmVybnQ9JCgkRW50ZmVybnQuQ291bnQpIHVu c2ljaGVyPSQoJFVuc2ljaGVyLkNvdW50KSINCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBGTEQ6IEVY Q0VMLUlNUE9SVCAoVWViZXJuYWhtZSkgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAg ICAjIFNwaWVnZWwgenUgc2VydmVyLnB5IFBPU1QgL2FwaS9pbXBvcnQvZXhjZWwvdWViZXJuZWht ZW4uDQogICAgICAgICAgICAjIEJvZHkgZW50aGFlbHQgZ2VwYXJzdGUgRXhjZWwtRGF0ZW4gKyBV c2VyLUFrdGlvbmVuIGF1cyBkZW0gV2l6YXJkLg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAn L2FwaS9pbXBvcnQvZXhjZWwvdWViZXJuZWhtZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7 DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBTZW5kLUVy cm9yICRSZXMgJ051ciBTdXBlclVzZXIgZHVlcmZlbiBpbXBvcnRpZXJlbicgNDAzOyBjb250aW51 ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAg ICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdy b3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAg ICAgICAgICAkUGFyYW0gPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAg ICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdVbmd1ZWx0 aWdlcyBKU09OJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAgICAgJFBhcnNlZCA9ICRQYXJhbS5wYXJzZWREYXRlbg0KICAgICAgICAgICAgICAgICRBa3Rp b25lbiA9IEAoJFBhcmFtLnBlcnNvbmVuQWt0aW9uZW4pDQogICAgICAgICAgICAgICAgJE9wdHMg PSAkUGFyYW0udWViZXJuZWhtZW4NCiAgICAgICAgICAgICAgICAkT3B0U2NoaWNodGVuID0gaWYg KCRPcHRzLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NjaGljaHRlbiddKSB7IFtib29sXSRPcHRzLnNj aGljaHRlbiB9IGVsc2UgeyAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgJE9wdEtvbW1lbnRhcmUg PSBpZiAoJE9wdHMuUFNPYmplY3QuUHJvcGVydGllc1sna29tbWVudGFyZSddKSB7IFtib29sXSRP cHRzLmtvbW1lbnRhcmUgfSBlbHNlIHsgJHRydWUgfQ0KICAgICAgICAgICAgICAgICRPcHRTb25k ZXJ0ZXJtaW5lID0gaWYgKCRPcHRzLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NvbmRlcnRlcm1pbmUn XSkgeyBbYm9vbF0kT3B0cy5zb25kZXJ0ZXJtaW5lIH0gZWxzZSB7ICR0cnVlIH0NCiAgICAgICAg ICAgICAgICAkT3B0VGFnZXNkYXRlbiA9IGlmICgkT3B0cy5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0 YWdlc2RhdGVuJ10pIHsgW2Jvb2xdJE9wdHMudGFnZXNkYXRlbiB9IGVsc2UgeyAkdHJ1ZSB9DQog ICAgICAgICAgICAgICAgJE9wdFJlaWhlbmZvbGdlID0gaWYgKCRPcHRzLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ3JlaWhlbmZvbGdlJ10pIHsgW2Jvb2xdJE9wdHMucmVpaGVuZm9sZ2UgfSBlbHNlIHsg JHRydWUgfQ0KDQogICAgICAgICAgICAgICAgJEV4Y2VsUGVyc29uZW4gPSBpZiAoJFBhcnNlZC5Q U09iamVjdC5Qcm9wZXJ0aWVzWydwZXJzb25lbiddKSB7IEAoJFBhcnNlZC5wZXJzb25lbikgfSBl bHNlIHsgQCgpIH0NCiAgICAgICAgICAgICAgICAkRXhjZWxFaW50cmFlZ2UgPSBpZiAoJFBhcnNl ZC5QU09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2UnXSkgeyAkUGFyc2VkLmVpbnRyYWVnZSB9 IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgJEV4Y2VsUGZsaWNodCA9IGlmICgkUGFy c2VkLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQnXSkgeyAkUGFyc2VkLnBmbGljaHQgfSBl bHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICRFeGNlbEtvbW1lbnRhcmUgPSBpZiAoJFBh cnNlZC5QU09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsgJFBhcnNlZC5rb21tZW50 YXJlIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkRXhjZWxUZXJtaW5lID0gaWYg KCRQYXJzZWQuUFNPYmplY3QuUHJvcGVydGllc1sndGVybWluZSddKSB7ICRQYXJzZWQudGVybWlu ZSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgJEV4Y2VsVGFnZXNkYXRlbiA9IGlm ICgkUGFyc2VkLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RhZ2VzZGF0ZW4nXSkgeyAkUGFyc2VkLnRh Z2VzZGF0ZW4gfSBlbHNlIHsgJG51bGwgfQ0KDQogICAgICAgICAgICAgICAgIyBFeGNlbC1Sb3cg LT4gRXhjZWwtUGVyc29uIEhhc2htYXANCiAgICAgICAgICAgICAgICAkRXhjZWxCeVJvdyA9IEB7 fQ0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRFeGNlbFBlcnNvbmVuKSB7DQogICAg ICAgICAgICAgICAgICAgIGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydleGNlbFJvdyddKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAkRXhjZWxCeVJvd1tbaW50XSRwLmV4Y2VsUm93XSA9 ICRwDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAkSmV0enQgPSBHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1NLWRkIEhIOm1tOnNzJw0K ICAgICAgICAgICAgICAgICRUcyA9IEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXlNTWRkX0hIbW1zcycN CiAgICAgICAgICAgICAgICAkQmFja3VwTmFtZSA9ICJwbGFudW5nX2JhY2t1cF92b3JfZXhjZWxf aW1wb3J0XyRUcy5qc29uIg0KDQogICAgICAgICAgICAgICAgJExvY2tSZXN1bHQgPSAkbnVsbA0K ICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRMb2NrUmVzdWx0ID0g SW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAgICAgICAg ICAgICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcpIHsgcmV0dXJuIEB7IHR5cCA9ICdl cnJvcic7IGNvZGUgPSA0MDQ7IG1zZyA9ICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5kZW4nIH0g fQ0KICAgICAgICAgICAgICAgICAgICAgICAgIyBCYWNrdXAgdW50ZXIgZGVtIExvY2sNCiAgICAg ICAgICAgICAgICAgICAgICAgICRQbGFudW5nUGF0aCA9IEpvaW4tUGF0aCAkRGF0YURpciAncGxh bnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgQ29weS1JdGVtIC1QYXRoICRQbGFu dW5nUGF0aCAtRGVzdGluYXRpb24gKEpvaW4tUGF0aCAkRGF0YURpciAkQmFja3VwTmFtZSkgLUZv cmNlDQogICAgICAgICAgICAgICAgICAgICAgICBJbnZva2UtQmFja3VwUm90YXRpb24gJ3BsYW51 bmdfYmFja3VwXyouanNvbicgMjANCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3Qg JFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sncGVyc29uZW4nXSkgeyAkUGxhbnVuZyB8IEFk ZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdwZXJzb25lbicgLVZhbHVl IEAoKSB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVj dC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2UnXSkgeyAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJl clR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdlaW50cmFlZ2UnIC1WYWx1ZSAoTmV3LU9iamVjdCBQ U09iamVjdCkgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNP YmplY3QuUHJvcGVydGllc1sncGZsaWNodCddKSB7ICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVt YmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3BmbGljaHQnIC1WYWx1ZSAoTmV3LU9iamVjdCBQ U09iamVjdCkgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNP YmplY3QuUHJvcGVydGllc1sna29tbWVudGFyZSddKSB7ICRQbGFudW5nIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ2tvbW1lbnRhcmUnIC1WYWx1ZSAoTmV3LU9i amVjdCBQU09iamVjdCkgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAjIFBlcnNvbmVuLUxp c3RlIG11dGllcmVuDQogICAgICAgICAgICAgICAgICAgICAgICAkUGVyc29uZW5MaXN0ZSA9IE5l dy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICAg ICAgICAgZm9yZWFjaCAoJHAgaW4gQCgkUGxhbnVuZy5wZXJzb25lbikpIHsgW3ZvaWRdJFBlcnNv bmVuTGlzdGUuQWRkKCRwKSB9DQogICAgICAgICAgICAgICAgICAgICAgICAkTmV4dElkID0gMQ0K ICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJFBlcnNvbmVuTGlzdGUpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1sn aWQnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaSA9IFtpbnRdJHAuaWQN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpIC1nZSAkTmV4dElkKSB7ICRO ZXh0SWQgPSAkaSArIDEgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJEV4Y2VsUm93VG9Q aWQgPSBAe30NCiAgICAgICAgICAgICAgICAgICAgICAgICROUGVyc29uZW5OZXUgPSAwOyAkTlBl cnNvbmVuRGVha3QgPSAwOyAkTlBlcnNvbmVuQWt0dWFsaXNpZXJ0ID0gMA0KICAgICAgICAgICAg ICAgICAgICAgICAgIyBwbGFudW5nLVBlcnNvbmVuLUxvb2t1cCBuYWNoIGlkIChmdWVyIG1hdGNo LVVwZGF0ZXMpDQogICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZ0J5SWQgPSBAe30NCiAg ICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRQZXJzb25lbkxpc3RlKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2lk J10pIHsgJFBsYW51bmdCeUlkW1tpbnRdJHAuaWRdID0gJHAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGEgaW4gJEFrdGlvbmVu KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFrdCA9IFtzdHJpbmddJGEuYWt0aW9u DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRha3QgLWVxICdtYXRjaCcpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVyID0gW2ludF0kYS5leGNlbFJvdw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWF0Y2hQaWQgPSBbaW50XSRhLnBsYW51bmdz SWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTY2hpY2h0ZW4gKyBLb21tZW50 YXJlIHdlcmRlbiBJTU1FUiBpbXBvcnRpZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgKGF1Y2ggZnVlciBpbmFrdGl2ZSBQZXJzb25lbiAtIERhdGVuIHZlcmZ1ZWdiYXINCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmYWxscyBkaWUgUGVyc29uIHNwYWV0ZXIg cmVha3RpdmllcnQgd2lyZCkuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWFr dCA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGEuUFNPYmpl Y3QuUHJvcGVydGllc1sncmVha3RpdmllcmVuJ10pIHsgJHJlYWt0ID0gW2Jvb2xdJGEucmVha3Rp dmllcmVuIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEV4Y2VsUm93VG9QaWRb JGVyXSA9ICRtYXRjaFBpZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEV4Y2Vs LUZlbGRlciBzcGllZ2VsbiwgYWJlciBOVVIgbGVlcmUgRmVsZGVyIHVlYmVyc2NocmVpYmVuDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkRXhjZWxCeVJvdy5Db250YWluc0tl eSgkZXIpIC1hbmQgJFBsYW51bmdCeUlkLkNvbnRhaW5zS2V5KCRtYXRjaFBpZCkpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcCA9ICRFeGNlbEJ5Um93WyRlcl0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0YXJnZXQgPSAkUGxhbnVuZ0J5SWRb JG1hdGNoUGlkXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdlYWVuZGVy dCA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBSZWFrdGl2 aWVyZW4gTlVSIHdlbm4gVXNlciBleHBsaXppdCBhbmdlZm9yZGVydA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGlzdEFrdGl2ID0gLW5vdCAkdGFyZ2V0LlBTT2JqZWN0LlBy b3BlcnRpZXNbJ2FrdGl2J10gLW9yICR0YXJnZXQuYWt0aXYgLWVxICR0cnVlDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkaXN0QWt0aXYgLWFuZCAkcmVha3Qp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRhcmdldC5Q U09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddKSB7ICR0YXJnZXQuYWt0aXYgPSAkdHJ1ZSB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICR0YXJnZXQgfCBB ZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnYWt0aXYnIC1WYWx1ZSAk dHJ1ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdlYWVuZGVy dCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZmVsZCBpbiBAKCduYWNobmFt ZScsICdkaWVuc3RncmFkJywgJ2Z1bmt0aW9uJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkbmV1ID0gaWYgKCRlcC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRmZWxk XSkgeyAoW3N0cmluZ10kZXAuJGZlbGQpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsdCA9IGlmICgkdGFyZ2V0LlBTT2JqZWN0 LlByb3BlcnRpZXNbJGZlbGRdKSB7IChbc3RyaW5nXSR0YXJnZXQuJGZlbGQpLlRyaW0oKSB9IGVs c2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRu ZXUgLWFuZCAtbm90ICRhbHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCR0YXJnZXQuUFNPYmplY3QuUHJvcGVydGllc1skZmVsZF0pIHsgJHRhcmdl dC4kZmVsZCA9ICRuZXUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbHNlIHsgJHRhcmdldCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5 IC1OYW1lICRmZWxkIC1WYWx1ZSAkbmV1IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJGdlYWVuZGVydCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBMZWdhY3ktRmVsZCAnbmFt ZScgYXVzIGFsdGVuIERhdGVuc3RhZW5kZW4gZW50ZmVybmVuIChBdWRpdC1JdGVyLUIpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRhcmdldC5QU09iamVjdC5Qcm9w ZXJ0aWVzWyduYW1lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkdGFyZ2V0LlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCduYW1lJykNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2VhZW5kZXJ0ID0gJHRydWUNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkZ2VhZW5kZXJ0KSB7ICROUGVyc29uZW5Ba3R1YWxpc2llcnQrKyB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9IGVsc2VpZiAoJGFrdCAtZXEgJ25ldScpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGVyID0gW2ludF0kYS5leGNlbFJvdw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoLW5vdCAkRXhjZWxCeVJvdy5Db250YWluc0tleSgkZXIpKSB7IGNvbnRpbnVl IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVwID0gJEV4Y2VsQnlSb3dbJGVy XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXhOYWNoID0gaWYgKCRlcC5QU09i amVjdC5Qcm9wZXJ0aWVzWyduYWNobmFtZSddKSB7ICRlcC5uYWNobmFtZSB9IGVsc2UgeyAnJyB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgV2l6YXJkLVJhZGlvICJpbmFrdGl2 IGltcG9ydGllcmVuIiByZXNwZWt0aWVyZW4gKEF1ZGl0LUl0ZXItQikNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEFrdGl2RmxhZyA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkYS5QU09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddIC1hbmQgJG51 bGwgLW5lICRhLmFrdGl2KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk QWt0aXZGbGFnID0gW2Jvb2xdJGEuYWt0aXYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV1UGVyc29uID0gW1BTQ3Vz dG9tT2JqZWN0XUB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICRO ZXh0SWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFrdGl2ID0gJEFrdGl2 RmxhZw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9ybmFtZSA9IGlmICgk ZXAuUFNPYmplY3QuUHJvcGVydGllc1sndm9ybmFtZSddKSB7ICRlcC52b3JuYW1lIH0gZWxzZSB7 ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hY2huYW1lID0gJGV4 TmFjaA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGllbnN0Z3JhZCA9IGlm ICgkZXAuUFNPYmplY3QuUHJvcGVydGllc1snZGllbnN0Z3JhZCddKSB7ICRlcC5kaWVuc3RncmFk IH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmt0 aW9uID0gaWYgKCRlcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7ICRlcC5mdW5r dGlvbiB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFBlcnNvbmVuTGlzdGUuQWRkKCRO ZXVQZXJzb24pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nQnlJZFsk TmV4dElkXSA9ICROZXVQZXJzb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEV4 Y2VsUm93VG9QaWRbJGVyXSA9ICROZXh0SWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJE5leHRJZCsrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROUGVyc29uZW5O ZXUrKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkYWt0IC1lcSAnZGVh a3RpdmllcmVuJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVha3RJZCA9 IFtpbnRdJGEucGxhbnVuZ3NJZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Jl YWNoICgkcCBpbiAkUGVyc29uZW5MaXN0ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2lkJ10gLWFuZCBbaW50XSRwLmlk IC1lcSAkZGVha3RJZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddKSB7ICRwLmFrdGl2ID0gJGZhbHNl IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJHAgfCBB ZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnYWt0aXYnIC1WYWx1ZSAk ZmFsc2UgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROUGVyc29u ZW5EZWFrdCsrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBTY2hpY2h0ZW4g KyBQZmxpY2h0DQogICAgICAgICAgICAgICAgICAgICAgICAkTkVpbnRyYWVnZSA9IDA7ICROUGZs aWNodCA9IDA7ICROT3JwaGFuID0gMA0KICAgICAgICAgICAgICAgICAgICAgICAgIyBBdWRpdC1J SS0xIEYxOiBTY2hpY2h0Y29kZS1XaGl0ZWxpc3QgYXVjaCBpbSBFeGNlbC1JbXBvcnQuDQogICAg ICAgICAgICAgICAgICAgICAgICAjIE1pcnJvciB6dSBzZXJ2ZXIucHk6Mzc2Ni0zNzcwLg0KICAg ICAgICAgICAgICAgICAgICAgICAgJEV4Y2VsVmFsaWRDb2RlcyA9IE5ldy1PYmplY3QgU3lzdGVt LkNvbGxlY3Rpb25zLkdlbmVyaWMuSGFzaFNldFtzdHJpbmddDQogICAgICAgICAgICAgICAgICAg ICAgICBbdm9pZF0kRXhjZWxWYWxpZENvZGVzLkFkZCgnJykNCiAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkbnVsbCAtbmUgJEFkbWluIC1hbmQgJEFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNb J3NjaGljaHRjb2RlcyddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAo JFNjIGluICRBZG1pbi5zY2hpY2h0Y29kZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1uZSAkU2MgLWFuZCAkU2MuUFNPYmplY3QuUHJvcGVydGllc1snY29k ZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kRXhjZWxW YWxpZENvZGVzLkFkZChbc3RyaW5nXSRTYy5jb2RlKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRPcHRTY2hpY2h0ZW4gLWFu ZCAkbnVsbCAtbmUgJEV4Y2VsRWludHJhZWdlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yZWFjaCAoJERhdHVtUHJvcCBpbiAkRXhjZWxFaW50cmFlZ2UuUFNPYmplY3QuUHJvcGVy dGllcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0dW0gPSAkRGF0dW1Q cm9wLk5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51 bmcuZWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1WYWx1ZSAoTmV3LU9iamVjdCBQ U09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUGlkUHJvcCBpbiAkRGF0dW1Qcm9wLlZhbHVl LlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRlciA9IFtpbnRdJFBpZFByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKC1ub3QgJEV4Y2VsUm93VG9QaWQuQ29udGFpbnNLZXkoJGVyKSkgeyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGlkU3RyID0gW3N0 cmluZ10kRXhjZWxSb3dUb1BpZFskZXJdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkd2VydCA9IFtzdHJpbmddJFBpZFByb3AuVmFsdWUNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICgtbm90ICRFeGNlbFZhbGlkQ29kZXMuQ29udGFpbnMoJHdlcnQp KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5PcnBoYW4rKw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoJFBsYW51bmcuZWludHJhZWdlLiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0 aWVzWyRwaWRTdHJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JFBsYW51bmcuZWludHJhZWdlLiREYXR1bS4kcGlkU3RyID0gJHdlcnQNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlLiREYXR1bSB8IEFkZC1NZW1iZXIgLU1l bWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRwaWRTdHIgLVZhbHVlICR3ZXJ0DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkTkVpbnRyYWVnZSsrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1uZSAkRXhjZWxQZmxpY2h0KSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvcmVhY2ggKCREYXR1bVByb3AgaW4gJEV4Y2VsUGZsaWNodC5QU09iamVj dC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0 dW0gPSAkRGF0dW1Qcm9wLk5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICgtbm90ICRQbGFudW5nLnBmbGljaHQuUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNo dCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFs dWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUGlk UHJvcCBpbiAkRGF0dW1Qcm9wLlZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXIgPSBbaW50XSRQaWRQcm9wLk5hbWUN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkRXhjZWxS b3dUb1BpZC5Db250YWluc0tleSgkZXIpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkcGlkU3RyID0gW3N0cmluZ10kRXhjZWxSb3dUb1BpZFsk ZXJdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQaWRQcm9w LlZhbHVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwaWRTdHJdKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVu Zy5wZmxpY2h0LiREYXR1bS4kcGlkU3RyID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQuJERhdHVtIHwgQWRkLU1lbWJl ciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJHBpZFN0ciAtVmFsdWUgJHRydWUNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTlBmbGljaHQrKw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICAgICAgIyBLb21tZW50YXJlDQogICAgICAgICAgICAgICAgICAgICAgICAk TktvbW1lbnRhcmUgPSAwDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJE9wdEtvbW1lbnRh cmUgLWFuZCAkbnVsbCAtbmUgJEV4Y2VsS29tbWVudGFyZSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvcmVhY2ggKCREYXR1bVByb3AgaW4gJEV4Y2VsS29tbWVudGFyZS5QU09iamVj dC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXR1bSA9 ICREYXR1bVByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5v dCAkUGxhbnVuZy5rb21tZW50YXJlLlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcua29tbWVudGFyZSB8IEFk ZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFsdWUgKE5l dy1PYmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJFBpZFByb3AgaW4gJERhdHVt UHJvcC5WYWx1ZS5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkZXIgPSBbaW50XSRQaWRQcm9wLk5hbWUNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRFeGNlbFJvd1RvUGlkLkNvbnRhaW5zS2V5KCRl cikpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBp ZFN0ciA9IFtzdHJpbmddJEV4Y2VsUm93VG9QaWRbJGVyXQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEtvbU9iaiA9IFtQU0N1c3RvbU9iamVjdF1Aew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBbc3RyaW5nXSRQaWRQcm9wLlZhbHVl DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VhZW5kZXJ0QW0gPSAk SmV0enQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZWFlbmRlcnRW b24gPSAoR2V0LUFrdHVlbGxlckJlbnV0emVyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFu dW5nLmtvbW1lbnRhcmUuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBpZFN0cl0pIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5rb21tZW50YXJl LiREYXR1bS4kcGlkU3RyID0gJEtvbU9iag0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk UGxhbnVuZy5rb21tZW50YXJlLiREYXR1bSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICRwaWRTdHIgLVZhbHVlICRLb21PYmoNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRO S29tbWVudGFyZSsrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICMgUmVpaGVuZm9sZ2UNCiAgICAgICAgICAgICAgICAgICAgICAg IGlmICgkT3B0UmVpaGVuZm9sZ2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhj ZWxPcmRlclJvd3MgPSBAKCRBa3Rpb25lbiB8IFdoZXJlLU9iamVjdCB7IEAoJ21hdGNoJywnbmV1 JykgLWNvbnRhaW5zICRfLmFrdGlvbiAtYW5kICRfLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2V4Y2Vs Um93J10gfSB8IFNvcnQtT2JqZWN0IHsgW2ludF0kXy5leGNlbFJvdyB9KQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRTb3J0UGlkcyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25z LkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRhIGluICRF eGNlbE9yZGVyUm93cykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXIgPSBb aW50XSRhLmV4Y2VsUm93DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkRXhj ZWxSb3dUb1BpZC5Db250YWluc0tleSgkZXIpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkc29ydElkID0gJEV4Y2VsUm93VG9QaWRbJGVyXQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFNvcnRQaWRzLkNvbnRhaW5zKCRzb3J0SWQp KSB7IFt2b2lkXSRTb3J0UGlkcy5BZGQoJHNvcnRJZCkgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCeUlkID0gQHt9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yZWFjaCAoJHAgaW4gJFBlcnNvbmVuTGlzdGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2lkJ10pIHsgJEJ5SWRbW2ludF0k cC5pZF0gPSAkcCB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICROZXVlTGlzdGUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9u cy5BcnJheUxpc3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGVyc0lk IGluICRTb3J0UGlkcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJEJ5 SWQuQ29udGFpbnNLZXkoJHBlcnNJZCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFt2b2lkXSROZXVlTGlzdGUuQWRkKCRCeUlkWyRwZXJzSWRdKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJEJ5SWQuUmVtb3ZlKCRwZXJzSWQpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBSZXN0bGljaGUgUGVyc29uZW46IGFrdGl2ZSB6 dWVyc3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmVzdEFrdGl2ZSA9IEAoJEJ5SWQu VmFsdWVzIHwgV2hlcmUtT2JqZWN0IHsgLW5vdCAkXy5QU09iamVjdC5Qcm9wZXJ0aWVzWydha3Rp diddIC1vciAkXy5ha3RpdiAtZXEgJHRydWUgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUmVzdEluYWt0aXZlID0gQCgkQnlJZC5WYWx1ZXMgfCBXaGVyZS1PYmplY3QgeyAkXy5QU09i amVjdC5Qcm9wZXJ0aWVzWydha3RpdiddIC1hbmQgJF8uYWt0aXYgLWVxICRmYWxzZSB9KQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRSZXN0QWt0aXZlKSB7IFt2 b2lkXSROZXVlTGlzdGUuQWRkKCRwKSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y ZWFjaCAoJHAgaW4gJFJlc3RJbmFrdGl2ZSkgeyBbdm9pZF0kTmV1ZUxpc3RlLkFkZCgkcCkgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ3Bvc2l0aW9uJyBmb3J0bGF1ZmVuZCBuZXUg dmVyZ2ViZW4gKEZyb250ZW5kIHNvcnRpZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBuYWNoIHAucG9zaXRpb24sIE5JQ0hUIG5hY2ggQXJyYXktUmVpaGVuZm9sZ2UpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJHBvc0NvdW50ZXIgPSAxDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJE5ldWVMaXN0ZSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1sncG9zaXRpb24nXSkgeyAk cC5wb3NpdGlvbiA9ICRwb3NDb3VudGVyIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZSB7ICRwIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUg J3Bvc2l0aW9uJyAtVmFsdWUgJHBvc0NvdW50ZXIgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkcG9zQ291bnRlcisrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBlcnNvbmVuID0gQCgkTmV1ZUxpc3Rl KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIEF1Y2ggb2huZSBSZWloZW5mb2xnZS1VcGRhdGU6IG5ldWUgUGVyc29uZW4gYnJh dWNoZW4gJ3Bvc2l0aW9uJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXhQb3MgPSAw DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJFBlcnNvbmVuTGlz dGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ3Bvc2l0aW9uJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRwcCA9IFtpbnRdKCRwLnBvc2l0aW9uIHwgRm9yRWFjaC1PYmplY3QgeyBpZiAoJF8pIHsg JF8gfSBlbHNlIHsgMCB9IH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoJHBwIC1ndCAkbWF4UG9zKSB7ICRtYXhQb3MgPSAkcHAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRQZXJzb25lbkxpc3RlKSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoYXRQb3MgPSAkZmFsc2UNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Bvc2l0aW9u J10gLWFuZCAkcC5wb3NpdGlvbikgeyAkaGF0UG9zID0gJHRydWUgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkaGF0UG9zKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkbWF4UG9zKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydwb3NpdGlvbiddKSB7ICRwLnBvc2l0 aW9uID0gJG1heFBvcyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNl IHsgJHAgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAncG9zaXRp b24nIC1WYWx1ZSAkbWF4UG9zIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUGxhbnVuZy5wZXJzb25lbiA9IEAoJFBlcnNvbmVuTGlzdGUpDQogICAgICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICMgLS0tLSBUYWdlc2RhdGVuIC8g U2NoaWNodHJvdGF0aW9uIGF1cyBFeGNlbC1SNC1SOSAtLS0tDQogICAgICAgICAgICAgICAgICAg ICAgICAkTlJvdGF0aW9uU2xvdHMgPSAwDQogICAgICAgICAgICAgICAgICAgICAgICAkTlRhZ2Vz ZGF0ZW5PdmVycmlkZXMgPSAwDQogICAgICAgICAgICAgICAgICAgICAgICAkQWRtaW5NdXRhdGVk ID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkT3B0VGFnZXNkYXRlbiAtYW5k ICRudWxsIC1uZSAkRXhjZWxUYWdlc2RhdGVuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgJHRkUHJvcHMgPSBAKCRFeGNlbFRhZ2VzZGF0ZW4uUFNPYmplY3QuUHJvcGVydGllcykNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRkUHJvcHMuQ291bnQgLWd0IDApIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNvcnRlZERhdGVzID0gQCgkdGRQcm9wcyB8 IEZvckVhY2gtT2JqZWN0IHsgJF8uTmFtZSB9IHwgU29ydC1PYmplY3QpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRlcnN0ZXNEID0gW2RhdGV0aW1lXTo6UGFyc2VFeGFjdCgkc29y dGVkRGF0ZXNbMF0sICd5eXl5LU1NLWRkJywgJG51bGwpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRkb3cgPSBbaW50XSRlcnN0ZXNELkRheU9mV2Vlaw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJGRvdyAtZXEgMCkgeyAkb2Zmc2V0TW8gPSAxIH0gZWxzZSB7 ICRvZmZzZXRNbyA9ICg4IC0gJGRvdykgJSA3IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJG1vSWR4ID0gJG9mZnNldE1vDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICR3b2NoZW5BbnphaGwgPSAzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzbG90 Q291bnQgPSAkd29jaGVuQW56YWhsICogNw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJG1vSWR4ICsgJHNsb3RDb3VudCAtbGUgJHNvcnRlZERhdGVzLkNvdW50KSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcm90YXRpb25zVGFnZSA9IEAoKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIC1sdCAkc2xv dENvdW50OyAkaSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JHJvdGF0aW9uc1RhZ2UgKz0gJEV4Y2VsVGFnZXNkYXRlbi4oJHNvcnRlZERhdGVzWyRtb0lkeCAr ICRpXSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRBZG1pbk11dGF0ZWQgPSBSZWFkLUpzb25GaWxlICdh ZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxs IC1uZSAkQWRtaW5NdXRhdGVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKC1ub3QgJEFkbWluTXV0YXRlZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0YWdlc2Rh dGVuUm90YXRpb24nXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkQWRtaW5NdXRhdGVkIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkg LU5hbWUgJ3RhZ2VzZGF0ZW5Sb3RhdGlvbicgLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkcm90ID0gJEFkbWluTXV0YXRlZC50YWdlc2RhdGVu Um90YXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcm90U3Rh cnRJc28gPSAkc29ydGVkRGF0ZXNbJG1vSWR4XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkcm90LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3dvY2hlbkFuemFobCdd KSB7ICRyb3Qud29jaGVuQW56YWhsID0gJHdvY2hlbkFuemFobCB9IGVsc2UgeyAkcm90IHwgQWRk LU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3dvY2hlbkFuemFobCcgLVZh bHVlICR3b2NoZW5BbnphaGwgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkcm90LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N0YXJ0RGF0dW0nXSkgeyAkcm90LnN0 YXJ0RGF0dW0gPSAkcm90U3RhcnRJc28gfSBlbHNlIHsgJHJvdCB8IEFkZC1NZW1iZXIgLU1lbWJl clR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdzdGFydERhdHVtJyAtVmFsdWUgJHJvdFN0YXJ0SXNv IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJvdC5QU09i amVjdC5Qcm9wZXJ0aWVzWyd0YWdlJ10pIHsgJHJvdC50YWdlID0gQCgkcm90YXRpb25zVGFnZSkg fSBlbHNlIHsgJHJvdCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1l ICd0YWdlJyAtVmFsdWUgQCgkcm90YXRpb25zVGFnZSkgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICROUm90YXRpb25TbG90cyA9ICRzbG90Q291bnQNCg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgT3ZlcnJpZGUtUHJ1ZWZ1bmcNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5Q U09iamVjdC5Qcm9wZXJ0aWVzWyd0YWdlc2RhdGVuJ10pIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBl IE5vdGVQcm9wZXJ0eSAtTmFtZSAndGFnZXNkYXRlbicgLVZhbHVlIChOZXctT2JqZWN0IFBTT2Jq ZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0ZVByb3BzID0gQCgkUGxhbnVuZy50 YWdlc2RhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXMgfCBXaGVyZS1PYmplY3Qgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkXy5WYWx1ZS5QU09iamVjdC5Qcm9w ZXJ0aWVzWydfc3JjJ10gLWFuZCAkXy5WYWx1ZS5fc3JjIC1lcSAnZXhjZWwnDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcHIgaW4gJGFsdGVQcm9wcykgeyAkUGxhbnVuZy50 YWdlc2RhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRwci5OYW1lKSB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcm90U3RhcnREID0gW2RhdGV0aW1l XTo6UGFyc2VFeGFjdCgkcm90U3RhcnRJc28sICd5eXl5LU1NLWRkJywgJG51bGwpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHByb3AgaW4gJHRkUHJv cHMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhdHVt SXNvID0gJHByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkdGQgPSAkcHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkZGF0dW1EID0gW2RhdGV0aW1lXTo6UGFyc2VFeGFjdCgkZGF0dW1Jc28sICd5 eXl5LU1NLWRkJywgJG51bGwpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRkaWZmRGF5cyA9ICgkZGF0dW1EIC0gJHJvdFN0YXJ0RCkuRGF5cw0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXN0T3ZlcnJpZGUgPSAkZmFsc2UN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRkaWZmRGF5 cyAtbHQgMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJGlzdE92ZXJyaWRlID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRzbG90SWR4ID0gJGRpZmZEYXlzICUgJHNsb3RDb3VudA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNsb3RUZCA9ICRyb3RhdGlv bnNUYWdlWyRzbG90SWR4XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGpzb25UZCA9ICR0ZCB8IENvbnZlcnRUby1Kc29uIC1Db21wcmVzcyAtRGVwdGgg Ng0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpzb25T bG90ID0gJHNsb3RUZCB8IENvbnZlcnRUby1Kc29uIC1Db21wcmVzcyAtRGVwdGggNg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRqc29uVGQgLW5l ICRqc29uU2xvdCkgeyAkaXN0T3ZlcnJpZGUgPSAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRpc3RPdmVycmlkZSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRkTWFya2VkID0gJHRkIHwgQ29udmVydFRvLUpz b24gLURlcHRoIDYgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkdGRNYXJrZWQgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBl IE5vdGVQcm9wZXJ0eSAtTmFtZSAnX3NyYycgLVZhbHVlICdleGNlbCcgLUZvcmNlDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcudGFn ZXNkYXRlbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRkYXR1bUlzb10pIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy50YWdlc2RhdGVu LiRkYXR1bUlzbyA9ICR0ZE1hcmtlZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy50YWdlc2RhdGVuIHwgQWRkLU1lbWJlciAtTWVt YmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJGRhdHVtSXNvIC1WYWx1ZSAkdGRNYXJrZWQNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROVGFnZXNkYXRlbk92ZXJy aWRlcysrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAk UGxhbnVuZyAgICMgQnVsay1PcDogYWxsZSBITUFDcyBuZXUNCg0KICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwID0gJ29rJw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9ICRCYWNrdXBOYW1lDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5OZXUgPSAkTlBlcnNvbmVuTmV1DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5Ba3R1YWxpc2llcnQgPSAkTlBlcnNvbmVuQWt0 dWFsaXNpZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5EZWFrdGl2aWVy dCA9ICROUGVyc29uZW5EZWFrdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVpbnRyYWVn ZSA9ICRORWludHJhZWdlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZsaWNodCA9ICRO UGZsaWNodA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtvbW1lbnRhcmUgPSAkTktvbW1l bnRhcmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmJla2FubnRlQ29kZXMgPSAkTk9y cGhhbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uU2xvdHMgPSAkTlJvdGF0 aW9uU2xvdHMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdlc2RhdGVuT3ZlcnJpZGVz ID0gJE5UYWdlc2RhdGVuT3ZlcnJpZGVzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRt aW5NdXRhdGVkID0gJEFkbWluTXV0YXRlZA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAg ICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiVWViZXJuYWhtZS1GZWhsZXI6ICRfIiA1MDA7IGNv bnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCRMb2NrUmVz dWx0LnR5cCAtZXEgJ2Vycm9yJykgeyBTZW5kLUVycm9yICRSZXMgJExvY2tSZXN1bHQubXNnICRM b2NrUmVzdWx0LmNvZGU7IGNvbnRpbnVlIH0NCg0KICAgICAgICAgICAgICAgICMgU29uZGVydGVy bWluZSBzZXBhcmF0IGluIGFkbWluLmpzb24gc2NocmVpYmVuIChrZWluIEhNQUMpLg0KICAgICAg ICAgICAgICAgICMgRXJzdCBhbGxlIHZvcmhhbmRlbmVuICdzdF9leGNlbF8nLUVpbnRyYWVnZSBs b2VzY2hlbiwgZGFubiBuZXVlDQogICAgICAgICAgICAgICAgIyBhbmxlZ2VuIC0gc29kYXNzIFJl LUltcG9ydCBpZGVtcG90ZW50IGlzdCB1bmQgbmljaHQgZG9wcGVsdC4NCiAgICAgICAgICAgICAg ICAjIFVzZXItVm9yZ2FiZSAoQXVkaXQtSXRlci1ELCBzeW5jIG1pdCBzZXJ2ZXIucHk6MzgyNyk6 IEV4Y2VsLVplaWxlDQogICAgICAgICAgICAgICAgIyAoMjUtMjkpIHdpcmQgTklDSFQgbWVociBh bHMgS2F0ZWdvcmllIGF1c2dld2VydGV0IC0gYWxsZSBUZXJtaW5lDQogICAgICAgICAgICAgICAg IyBzaW5kICdoaW53ZWlzJyBtaXQgSWNvbiAnaW5mbycsIFVzZXIga2xhc3NpZml6aWVydCBzcGFl dGVyIG1hbnVlbGwNCiAgICAgICAgICAgICAgICAjIGltIFRlcm1pbmUtVGFiLiBSZS1JbXBvcnQg YmxlaWJ0IGRhbWl0IHN0cnVrdHVyLXN0YWJpbC4NCiAgICAgICAgICAgICAgICAkTlRlcm1pbmUg PSAwDQogICAgICAgICAgICAgICAgaWYgKCRPcHRTb25kZXJ0ZXJtaW5lKSB7DQogICAgICAgICAg ICAgICAgICAgICRBZG1pbiA9IGlmICgkbnVsbCAtbmUgJExvY2tSZXN1bHQuYWRtaW5NdXRhdGVk KSB7ICRMb2NrUmVzdWx0LmFkbWluTXV0YXRlZCB9IGVsc2UgeyBSZWFkLUpzb25GaWxlICdhZG1p bi5qc29uJyB9DQogICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEFkbWluKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkQWRtaW4uUFNPYmplY3QuUHJvcGVydGll c1snc29uZGVydGVybWluZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFkbWlu IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3NvbmRlcnRlcm1p bmUnIC1WYWx1ZSBAKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgICMgQWx0ZSBFeGNlbC1JbXBvcnRlIGZpbHRlcm4NCiAgICAgICAgICAgICAgICAg ICAgICAgICRTdExpc3RlID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0 DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcyBpbiBAKCRBZG1pbi5zb25kZXJ0 ZXJtaW5lKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaWQgPSBpZiAoJHMuUFNP YmplY3QuUHJvcGVydGllc1snaWQnXSkgeyBbc3RyaW5nXSRzLmlkIH0gZWxzZSB7ICcnIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkc2lkLlN0YXJ0c1dpdGgoJ3N0X2V4 Y2VsXycpKSB7IFt2b2lkXSRTdExpc3RlLkFkZCgkcykgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkRXhjZWxUZXJtaW5l KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJERhdHVtUHJvcCBpbiAk RXhjZWxUZXJtaW5lLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJERhdHVtID0gJERhdHVtUHJvcC5OYW1lDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvcmVhY2ggKCR0IGluIEAoJERhdHVtUHJvcC5WYWx1ZSkpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc3RTa2lwID0gJGZhbHNlDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHQuUFNPYmplY3QuUHJvcGVydGllc1sn c2tpcCddKSB7ICRpc3RTa2lwID0gW2Jvb2xdJHQuc2tpcCB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJGlzdFNraXApIHsgY29udGludWUgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJHRpdGVsID0gaWYgKCR0LlBTT2JqZWN0LlByb3BlcnRp ZXNbJ3RpdGVsJ10pIHsgKFtzdHJpbmddJHQudGl0ZWwpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGV4dCA9IGlmICgkdC5QU09iamVj dC5Qcm9wZXJ0aWVzWyd0ZXh0J10pIHsgKFtzdHJpbmddJHQudGV4dCkuVHJpbSgpIH0gZWxzZSB7 ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICR0aXRl bCAtYW5kIC1ub3QgJHRleHQpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKC1ub3QgJHRpdGVsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJGVyc3RlID0gKCR0ZXh0IC1zcGxpdCAiYG4iLCAyKVswXQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aXRlbCA9IGlmICgkZXJzdGUuTGVu Z3RoIC1ndCA2MCkgeyAkZXJzdGUuU3Vic3RyaW5nKDAsIDYwKSB9IGVsc2UgeyAkZXJzdGUgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBSYW5kb20tSGV4LUlEIGFuYWxvZyB6dSBQeXRob24gc2VjcmV0 cy50b2tlbl9oZXgoNikgLSAxMiBIZXgtWmVpY2hlbi4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRSYW5kSGV4ID0gW2d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoJ04nKS5T dWJzdHJpbmcoMCwgMTIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV1 ID0gW1BTQ3VzdG9tT2JqZWN0XUB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWQgPSAnc3RfZXhjZWxfJyArICRSYW5kSGV4DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0dW0gPSAkRGF0dW0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aXRlbCA9ICR0aXRlbA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRleHQgPSAkdGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGljb24gPSAnaW5mbycgICAgICAgICMgZ2VuZXJpc2NoZXMgSGlud2Vpcy1J Y29uLCBLRUlOIEVtb2ppDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dHlwID0gJ2hpbndlaXMnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBLRUlOICdrYXRlZ29yaWUnLUZlbGQgLSBFeGNlbC1aZWlsZW4tTWFwcGluZyB3aXJkIGlnbm9y aWVydA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFN0TGlzdGUuQWRkKCROZXUpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTlRlcm1pbmUrKw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJEFkbWluLnNvbmRl cnRlcm1pbmUgPSBAKCRTdExpc3RlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtSnNv bkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgfSBlbHNlaWYgKCRudWxsIC1uZSAkTG9ja1Jlc3VsdC5hZG1pbk11dGF0ZWQgLWFu ZCAkTG9ja1Jlc3VsdC5yb3RhdGlvblNsb3RzIC1ndCAwKSB7DQogICAgICAgICAgICAgICAgICAg ICMgVGFnZXNkYXRlbiBoYXQgQWRtaW4gbXV0aWVydCwgYWJlciBrZWluIFNvbmRlcnRlcm1pbmUt QmxvY2sgaGF0IGdlc2NocmllYmVuLg0KICAgICAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmls ZSAnYWRtaW4uanNvbicgJExvY2tSZXN1bHQuYWRtaW5NdXRhdGVkDQogICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgIyBBdXRvLVJvbGxlbi1TeW5jIG5hY2ggRXhjZWwtSW1wb3J0 IChuZXVlIFBlcnNvbmVuIG1pdCBER0wvMS5FQi8xLkVCIFYuIC0+IExpc3RlbikNCiAgICAgICAg ICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZ0Z1ZXJTeW5jID0gUmVh ZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAkQWRtaW5GdWVy U3luYyA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgICAgIGlm IChTeW5jLVJvbGxlbkF1c1BlcnNvbmVuICRQbGFudW5nRnVlclN5bmMgJEFkbWluRnVlclN5bmMp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5qc29uJyAk QWRtaW5GdWVyU3luYw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBj YXRjaCB7IFdyaXRlLVdhcm5pbmcgIlJvbGxlbi1TeW5jIG5hY2ggRXhjZWwtSW1wb3J0IGZlaGxn ZXNjaGxhZ2VuOiAkXyIgfQ0KDQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnZXhj ZWwuaW1wb3J0aWVydCcgQHsNCiAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gJExvY2tSZXN1 bHQuYmFja3VwDQogICAgICAgICAgICAgICAgICAgIHBlcnNvbmVuTmV1ID0gJExvY2tSZXN1bHQu cGVyc29uZW5OZXUNCiAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5Ba3R1YWxpc2llcnQgPSAk TG9ja1Jlc3VsdC5wZXJzb25lbkFrdHVhbGlzaWVydA0KICAgICAgICAgICAgICAgICAgICBwZXJz b25lbkRlYWt0aXZpZXJ0ID0gJExvY2tSZXN1bHQucGVyc29uZW5EZWFrdGl2aWVydA0KICAgICAg ICAgICAgICAgICAgICBlaW50cmFlZ2UgPSAkTG9ja1Jlc3VsdC5laW50cmFlZ2UNCiAgICAgICAg ICAgICAgICAgICAgcGZsaWNodCA9ICRMb2NrUmVzdWx0LnBmbGljaHQNCiAgICAgICAgICAgICAg ICAgICAga29tbWVudGFyZSA9ICRMb2NrUmVzdWx0LmtvbW1lbnRhcmUNCiAgICAgICAgICAgICAg ICAgICAgdW5iZWthbm50ZUNvZGVzID0gJExvY2tSZXN1bHQudW5iZWthbm50ZUNvZGVzDQogICAg ICAgICAgICAgICAgICAgIHNvbmRlcnRlcm1pbmUgPSAkTlRlcm1pbmUNCiAgICAgICAgICAgICAg ICAgICAgcm90YXRpb25TbG90cyA9ICRMb2NrUmVzdWx0LnJvdGF0aW9uU2xvdHMNCiAgICAgICAg ICAgICAgICAgICAgdGFnZXNkYXRlbk92ZXJyaWRlcyA9ICRMb2NrUmVzdWx0LnRhZ2VzZGF0ZW5P dmVycmlkZXMNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBTZW5kLUpzb24g JFJlcyBAew0KICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snDQogICAgICAgICAgICAg ICAgICAgIGJhY2t1cCA9ICRMb2NrUmVzdWx0LmJhY2t1cA0KICAgICAgICAgICAgICAgICAgICBh bnphaGwgPSBAew0KICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5OZXUgPSAkTG9ja1Jl c3VsdC5wZXJzb25lbk5ldQ0KICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5Ba3R1YWxp c2llcnQgPSAkTG9ja1Jlc3VsdC5wZXJzb25lbkFrdHVhbGlzaWVydA0KICAgICAgICAgICAgICAg ICAgICAgICAgcGVyc29uZW5EZWFrdGl2aWVydCA9ICRMb2NrUmVzdWx0LnBlcnNvbmVuRGVha3Rp dmllcnQNCiAgICAgICAgICAgICAgICAgICAgICAgIGVpbnRyYWVnZSA9ICRMb2NrUmVzdWx0LmVp bnRyYWVnZQ0KICAgICAgICAgICAgICAgICAgICAgICAgcGZsaWNodCA9ICRMb2NrUmVzdWx0LnBm bGljaHQNCiAgICAgICAgICAgICAgICAgICAgICAgIGtvbW1lbnRhcmUgPSAkTG9ja1Jlc3VsdC5r b21tZW50YXJlDQogICAgICAgICAgICAgICAgICAgICAgICB1bmJla2FubnRlQ29kZXMgPSAkTG9j a1Jlc3VsdC51bmJla2FubnRlQ29kZXMNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvbmRlcnRl cm1pbmUgPSAkTlRlcm1pbmUNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uU2xvdHMg PSAkTG9ja1Jlc3VsdC5yb3RhdGlvblNsb3RzDQogICAgICAgICAgICAgICAgICAgICAgICB0YWdl c2RhdGVuT3ZlcnJpZGVzID0gJExvY2tSZXN1bHQudGFnZXNkYXRlbk92ZXJyaWRlcw0KICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIERlYnVn LUxvZyAnQVBJJyAiUE9TVCAvYXBpL2ltcG9ydC9leGNlbC91ZWJlcm5laG1lbiAtPiAkKCRMb2Nr UmVzdWx0LmVpbnRyYWVnZSkgRWludHJhZWdlLCAkKCRMb2NrUmVzdWx0LmtvbW1lbnRhcmUpIEtv bW1lbnRhcmUsICROVGVybWluZSBUZXJtaW5lLCBCYWNrdXA6ICQoJExvY2tSZXN1bHQuYmFja3Vw KSINCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAjID09PT09PT09PT09PT09PT09PT09PSBMT0dCVUNIID09PT09PT09PT09PT09PT09PT09PQ0K ICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9sb2didWNoJyAtYW5kICRNZXRob2QgLWVx ICdHRVQnKSB7DQogICAgICAgICAgICAgICAgIyBBZG1pbi1HdWFyZDogTG9nYnVjaCBlbnRoYWVs dCBwZXJzb25lbmJlem9nZW5lIERhdGVuDQogICAgICAgICAgICAgICAgIyAoU2NoaWNodGFlbmRl cnVuZ2VuIHBybyBVc2VyIG1pdCBhbHRlbS9uZXVlbSBXZXJ0KS4gSW0NCiAgICAgICAgICAgICAg ICAjIEZyb250ZW5kIG51ciBmdWVyIFN1cGVyVXNlciBvZGVyIEFkbWluIHNpY2h0YmFyDQogICAg ICAgICAgICAgICAgIyAoZGFyZkxvZ2J1Y2hUYWIoKSBpbiBqcy9jb3JlL3Blcm1pc3Npb25zLmpz OjI1MykuIE1pcnJvcg0KICAgICAgICAgICAgICAgICMgenUgc2VydmVyLnB5OjIxMzQtMjEzOS4N CiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAk UmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAg ICRMb2dQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdsb2didWNoLmpzb24nDQogICAgICAgICAg ICAgICAgJEVpbnRyYWVnZSA9IEAoKQ0KICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggJExv Z1BhdGgpIHsNCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICRMb2dDb250ZW50ID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJExvZ1BhdGgs IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpLlRyaW0oKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRMb2dDb250ZW50Lkxlbmd0aCAtZ3QgMSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRQYXJzZWQgPSAkTG9nQ29udGVudCB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRQYXJzZWQpIHsgJEVpbnRyYWVn ZSA9IEAoJFBhcnNlZCkgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLVN0YXJ0dXBM b2cgIkxvZ2J1Y2gtUmVhZC1GZWhsZXI6ICRfIC0tIGxpZWZlcmUgbGVlcmUgTGlzdGUiDQogICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBQ UyA1LjEgdW53cmFwcGVkIEAoKSB1bmQgU2luZ2xlLUVsZW1lbnQtQXJyYXlzIGluIENvbnZlcnRU by1Kc29uIC0tDQogICAgICAgICAgICAgICAgIyBkYWhlciBTb25kZXJwZmFkZS4gRnJvbnRlbmQg ZXJ3YXJ0ZXQgaW1tZXIgZWluIEpTT04tQXJyYXkuDQogICAgICAgICAgICAgICAgaWYgKCRFaW50 cmFlZ2UuQ291bnQgLWVxIDApIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uUmF3ICRS ZXMgJ1tdJw0KICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkRWludHJhZWdlLkNvdW50IC1lcSAx KSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvblJhdyAkUmVzICgnWycgKyAoQ29udmVy dFRvLUpzb24gLUlucHV0T2JqZWN0ICRFaW50cmFlZ2VbMF0gLURlcHRoIDI1IC1Db21wcmVzcykg KyAnXScpDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU2Vu ZC1Kc29uUmF3ICRSZXMgKENvbnZlcnRUby1Kc29uIC1JbnB1dE9iamVjdCAkRWludHJhZWdlIC1E ZXB0aCAyNSAtQ29tcHJlc3MpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNv bnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09 PT09IE1FRElFTjogTGlzdGUgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAo JFBhdGggLWVxICcvYXBpL21lZGllbicgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAg ICAgICAgICAgICMgQmVpbSBlcnN0ZW4gQXVmcnVmIFN5c3RlbS1NZWRpZW4gYXVzIC9pbWFnZXMv IGVpbm1hbGlnIGltcG9ydGllcmVuLg0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAg ICAgICAgICAgIEludm9rZS1XaXRoRmlsZUxvY2sgJ21lZGllbi5qc29uJyB7IEludm9rZS1NZWRp ZW5TeXN0ZW1JbXBvcnRGYWxsc05vZXRpZyB8IE91dC1OdWxsIH0gfCBPdXQtTnVsbA0KICAgICAg ICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBEZWJ1Zy1Mb2cgJ0FQSScg InN5c3RlbS1pbXBvcnQgc2tpcHBlZDogJF8iDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICRNZXRhID0gUmVhZC1NZWRpZW5NZXRhDQogICAgICAgICAgICAgICAgJE1lZGllbkxp c3RlID0gaWYgKCRNZXRhLm1lZGllbikgeyBAKCRNZXRhLm1lZGllbikgfSBlbHNlIHsgQCgpIH0N CiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBtZWRpZW4gPSAkTWVkaWVuTGlzdGU7 IGthdGVnb3JpZW4gPSAoR2V0LU1lZGllbkthdGVnb3JpZUtleXMpIH0NCiAgICAgICAgICAgICAg ICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09 PT09PT09PSBNRURJRU46IERhdGVpIGF1c2xpZWZlcm4gPT09PT09PT09PT09PT09PT09PT09DQog ICAgICAgICAgICBpZiAoJFBhdGguU3RhcnRzV2l0aCgnL2FwaS9tZWRpZW4vZGF0ZWkvJykgLWFu ZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgICRNaWQgPSAkUGF0aC5TdWJz dHJpbmcoJFBhdGguTGFzdEluZGV4T2YoJy8nKSArIDEpDQogICAgICAgICAgICAgICAgJE1ldGEg PSBSZWFkLU1lZGllbk1ldGENCiAgICAgICAgICAgICAgICAkRWludHJhZyA9ICRudWxsDQogICAg ICAgICAgICAgICAgaWYgKCRNZXRhLm1lZGllbikgew0KICAgICAgICAgICAgICAgICAgICBmb3Jl YWNoICgkbSBpbiBAKCRNZXRhLm1lZGllbikpIHsgaWYgKCRtLmlkIC1lcSAkTWlkKSB7ICRFaW50 cmFnID0gJG07IGJyZWFrIH0gfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBp ZiAoJG51bGwgLWVxICRFaW50cmFnKSB7IFNlbmQtRXJyb3IgJFJlcyAnTmljaHQgZ2VmdW5kZW4n IDQwNDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRlaSA9IEdldC1NZWRpZW5QZmFk ICRFaW50cmFnDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkRGF0ZWkpKSB7 IFNlbmQtRXJyb3IgJFJlcyAnRGF0ZWkgbmljaHQgdm9yaGFuZGVuJyA0MDQ7IGNvbnRpbnVlIH0N CiAgICAgICAgICAgICAgICBTZW5kLUZpbGUgJFJlcyAkRGF0ZWkNCiAgICAgICAgICAgICAgICBj b250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09 PT09PSBNRURJRU46IFVwbG9hZCAoQmFzZTY0LUpTT04pID09PT09PT09PT09PT09PT09PT09PQ0K ICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9tZWRpZW4nIC1hbmQgJE1ldGhvZCAtZXEg J1BPU1QnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkg eyBTZW5kLUVycm9yICRSZXMgJ051ciBTdXBlclVzZXIgZGFyZiBNZWRpZW4gaG9jaGxhZGVuJyA0 MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQog ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0Fu ZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIHRyeSB7ICRB ID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uIH0gY2F0Y2ggeyBTZW5kLUVycm9yICRSZXMgJ1Vu Z3VlbHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRLYXRlZ29y aWUgPSAoW3N0cmluZ10kQS5rYXRlZ29yaWUpLlRvTG93ZXIoKS5UcmltKCkNCiAgICAgICAgICAg ICAgICBpZiAoLW5vdCAoKEdldC1NZWRpZW5LYXRlZ29yaWVLZXlzKSAtY29udGFpbnMgJEthdGVn b3JpZSkpIHsgU2VuZC1FcnJvciAkUmVzICdVbmd1ZWx0aWdlIEthdGVnb3JpZScgNDAwOyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgJE1pbWUgPSAoW3N0cmluZ10kQS5taW1lVHlwZSkuVG9M b3dlcigpLlRyaW0oKQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRzY3JpcHQ6TWVkaWVuRXJs YXVidGVNaW1lcy5Db250YWluc0tleSgkTWltZSkpIHsgU2VuZC1FcnJvciAkUmVzICdEYXRlaXR5 cCBuaWNodCBlcmxhdWJ0JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQmV6ZWlj aG51bmcgPSAoW3N0cmluZ10kQS5iZXplaWNobnVuZykuVHJpbSgpDQogICAgICAgICAgICAgICAg aWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJEJlemVpY2hudW5nKSkgeyBTZW5kLUVy cm9yICRSZXMgJ0JlemVpY2hudW5nIGZlaGx0JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAg ICAgICAkRGF0YUI2NCA9IGlmICgkQS5kYXRhKSB7IFtzdHJpbmddJEEuZGF0YSB9IGVsc2UgeyAn JyB9DQogICAgICAgICAgICAgICAgaWYgKCREYXRhQjY0LlN0YXJ0c1dpdGgoJ2RhdGE6JykpIHsN CiAgICAgICAgICAgICAgICAgICAgJGlkeCA9ICREYXRhQjY0LkluZGV4T2YoJywnKQ0KICAgICAg ICAgICAgICAgICAgICBpZiAoJGlkeCAtZ2UgMCkgeyAkRGF0YUI2NCA9ICREYXRhQjY0LlN1YnN0 cmluZygkaWR4ICsgMSkgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB0cnkg eyAkUm9oQnl0ZXMgPSBbU3lzdGVtLkNvbnZlcnRdOjpGcm9tQmFzZTY0U3RyaW5nKCREYXRhQjY0 KSB9IGNhdGNoIHsgU2VuZC1FcnJvciAkUmVzICdCYXNlNjQgdW5ndWVsdGlnJyA0MDA7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICBpZiAoJFJvaEJ5dGVzLkxlbmd0aCAtZ3QgJHNjcmlwdDpN ZWRpZW5NYXhCeXRlcykgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgIkRh dGVpIHp1IGdyb3NzIChtYXggJChbTWF0aF06OkZsb29yKCRzY3JpcHQ6TWVkaWVuTWF4Qnl0ZXMg LyAxTUIpKSBNQikiIDQxMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgJEV4dCA9ICRzY3JpcHQ6TWVkaWVuRXJsYXVidGVNaW1lc1skTWltZV0NCiAgICAgICAg ICAgICAgICAkTWlkID0gTmV3LU1lZGllbklkDQogICAgICAgICAgICAgICAgIyBSb3V0aW5nOiBX ZW5uIEltYWdlcy88a2F0Pi8gYWxzIERpc2stT3JkbmVyIGV4aXN0aWVydCAtPiBkb3J0IGhpbnNj aHJlaWJlbg0KICAgICAgICAgICAgICAgICMgbWl0IHNhbml0aXNpZXJ0ZW0gT3JpZ2luYWwtRGF0 ZWluYW1lbiArIGBwZmFkYCBpbSBFaW50cmFnIHNldHplbi4NCiAgICAgICAgICAgICAgICAjIFNv bnN0IEZhbGxiYWNrIGF1ZiBkYXRhL21lZGllbi88a2F0Pi88aWQ+LjxleHQ+Lg0KICAgICAgICAg ICAgICAgICRJbWFnZXNEaXIgPSBHZXQtTWVkaWVuSW1hZ2VzT3JkbmVyICRLYXRlZ29yaWUNCiAg ICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRJbWFnZXNEaXIpIHsNCiAgICAgICAgICAgICAg ICAgICAgJFVwbG9hZE5hbWUgPSBpZiAoJEEuZGF0ZWluYW1lKSB7IFtzdHJpbmddJEEuZGF0ZWlu YW1lIH0gZWxzZSB7ICRCZXplaWNobnVuZyB9DQogICAgICAgICAgICAgICAgICAgICRCYXNlID0g R2V0LU1lZGllbkJhc2VuYW1lQXVzVXBsb2FkICRVcGxvYWROYW1lDQogICAgICAgICAgICAgICAg ICAgICRaaWVsID0gR2V0LU1lZGllbkZyZWllckRhdGVpbmFtZSAkSW1hZ2VzRGlyICRCYXNlICRF eHQNCiAgICAgICAgICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxCeXRlcygk WmllbCwgJFJvaEJ5dGVzKQ0KICAgICAgICAgICAgICAgICAgICAkWmllbE5hbWUgPSBbU3lzdGVt LklPLlBhdGhdOjpHZXRGaWxlTmFtZSgkWmllbCkNCiAgICAgICAgICAgICAgICAgICAgJEVpbnRy YWcgPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAkTWlkDQogICAg ICAgICAgICAgICAgICAgICAgICBrYXRlZ29yaWUgPSAkS2F0ZWdvcmllDQogICAgICAgICAgICAg ICAgICAgICAgICBiZXplaWNobnVuZyA9ICRCZXplaWNobnVuZw0KICAgICAgICAgICAgICAgICAg ICAgICAgZGF0ZWluYW1lID0gJFppZWxOYW1lDQogICAgICAgICAgICAgICAgICAgICAgICBtaW1l VHlwZSA9ICRNaW1lDQogICAgICAgICAgICAgICAgICAgICAgICBncm9lc3NlID0gJFJvaEJ5dGVz Lkxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgcGZhZCA9ICcvaW1hZ2VzLycgKyAkS2F0 ZWdvcmllICsgJy8nICsgJFppZWxOYW1lDQogICAgICAgICAgICAgICAgICAgICAgICBob2NoZ2Vs YWRlbkFtID0gKEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXktTU0tZGQgSEg6bW06c3MnKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgaG9jaGdlbGFkZW5Wb24gPSAoR2V0LUFrdHVlbGxlckJlbnV0emVy KQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAg ICAgICAgICAgICAgICAgJEthdERpciA9IEpvaW4tUGF0aCAoR2V0LU1lZGllbkRpcikgJEthdGVn b3JpZQ0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRLYXREaXIpKSB7 IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJEthdERpciAtRm9yY2UgfCBPdXQt TnVsbCB9DQogICAgICAgICAgICAgICAgICAgICRaaWVsID0gSm9pbi1QYXRoICRLYXREaXIgKCRN aWQgKyAkRXh0KQ0KICAgICAgICAgICAgICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFs bEJ5dGVzKCRaaWVsLCAkUm9oQnl0ZXMpDQogICAgICAgICAgICAgICAgICAgICRFaW50cmFnID0g W29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJE1pZA0KICAgICAgICAg ICAgICAgICAgICAgICAga2F0ZWdvcmllID0gJEthdGVnb3JpZQ0KICAgICAgICAgICAgICAgICAg ICAgICAgYmV6ZWljaG51bmcgPSAkQmV6ZWljaG51bmcNCiAgICAgICAgICAgICAgICAgICAgICAg IGRhdGVpbmFtZSA9IGlmICgkQS5kYXRlaW5hbWUpIHsgKFtzdHJpbmddJEEuZGF0ZWluYW1lKS5U cmltKCkuU3Vic3RyaW5nKDAsIFtNYXRoXTo6TWluKChbc3RyaW5nXSRBLmRhdGVpbmFtZSkuTGVu Z3RoLCAyMDApKSB9IGVsc2UgeyAoJE1pZCArICRFeHQpIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgIG1pbWVUeXBlID0gJE1pbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIGdyb2Vzc2UgPSAk Um9oQnl0ZXMuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICBob2NoZ2VsYWRlbkFtID0g KEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXktTU0tZGQgSEg6bW06c3MnKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgaG9jaGdlbGFkZW5Wb24gPSAoR2V0LUFrdHVlbGxlckJlbnV0emVyKQ0KICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgICAgIEludm9rZS1XaXRoRmlsZUxvY2sgJ21lZGllbi5qc29uJyB7 DQogICAgICAgICAgICAgICAgICAgICAgICAkTWV0YSA9IFJlYWQtTWVkaWVuTWV0YQ0KICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJE1ldGEubWVkaWVuKSB7ICRNZXRhID0gW1BTQ3Vz dG9tT2JqZWN0XUB7IG1lZGllbiA9IEAoKSB9IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICRM aXN0ZSA9IEAoJE1ldGEubWVkaWVuKSArIFtQU0N1c3RvbU9iamVjdF0kRWludHJhZw0KICAgICAg ICAgICAgICAgICAgICAgICAgJE1ldGEgPSBbUFNDdXN0b21PYmplY3RdQHsgbWVkaWVuID0gJExp c3RlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU1lZGllbk1ldGEgJE1ldGENCiAg ICAgICAgICAgICAgICAgICAgfSB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7 DQogICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggJFppZWwpIHsgUmVtb3ZlLUl0ZW0g JFppZWwgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfQ0KICAgICAgICAgICAgICAgICAg ICBTZW5kLUVycm9yICRSZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ21lZGllbi5ob2NoZ2VsYWRlbicgQHsg aWQgPSAkTWlkOyBrYXRlZ29yaWUgPSAkS2F0ZWdvcmllOyBiZXplaWNobnVuZyA9ICRCZXplaWNo bnVuZzsgZ3JvZXNzZSA9ICRSb2hCeXRlcy5MZW5ndGg7IG1pbWVUeXBlID0gJE1pbWUgfQ0KICAg ICAgICAgICAgICAgICRVc2VybmFtZSA9ICRlbnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAgICAk Um9sbGUgPSBHZXQtVXNlclJvbGxlDQogICAgICAgICAgICAgICAgQWRkLUNoYW5nZUxvZ0VudHJ5 ICdtZWRpZW4nICRudWxsICRudWxsICRudWxsICRVc2VybmFtZSAkUm9sbGUgQHsgYWt0aW9uID0g J2hvY2hnZWxhZGVuJzsgaWQgPSAkTWlkOyBrYXRlZ29yaWUgPSAkS2F0ZWdvcmllOyBiZXplaWNo bnVuZyA9ICRCZXplaWNobnVuZyB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsg c3RhdHVzID0gJ2dlc3BlaWNoZXJ0JzsgbWVkaXVtID0gJEVpbnRyYWcgfSAyMDENCiAgICAgICAg ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09 PT09PT09PT09PT09PSBNRURJRU46IFVtYmVuZW5uZW4gLyBWZXJzY2hpZWJlbiAvIERhdGVpIGVy c2V0emVuID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoLlN0YXJ0 c1dpdGgoJy9hcGkvbWVkaWVuLycpIC1hbmQgJE1ldGhvZCAtZXEgJ1BBVENIJyAtYW5kIC1ub3Qg JFBhdGguU3RhcnRzV2l0aCgnL2FwaS9tZWRpZW4vZGF0ZWkvJykpIHsNCiAgICAgICAgICAgICAg ICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1 cGVyVXNlciBkYXJmIE1lZGllbiBhZW5kZXJuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAg ICAgICAkTWlkID0gJFBhdGguU3Vic3RyaW5nKCRQYXRoLkxhc3RJbmRleE9mKCcvJykgKyAxKQ0K ICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBp ZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycg NDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgdHJ5IHsgJEEgPSAkQm9keSB8IENvbnZl cnRGcm9tLUpzb24gfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXMgSlNPTicg NDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJE5ldWVCZXogPSBpZiAoJEEuUFNPYmpl Y3QuUHJvcGVydGllc1snYmV6ZWljaG51bmcnXSkgeyBbc3RyaW5nXSRBLmJlemVpY2hudW5nIH0g ZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkTmV1ZUthdCA9IGlmICgkQS5QU09iamVj dC5Qcm9wZXJ0aWVzWydrYXRlZ29yaWUnXSkgeyAoW3N0cmluZ10kQS5rYXRlZ29yaWUpLlRvTG93 ZXIoKS5UcmltKCkgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAt bmUgJE5ldWVLYXQgLWFuZCAtbm90ICgoR2V0LU1lZGllbkthdGVnb3JpZUtleXMpIC1jb250YWlu cyAkTmV1ZUthdCkpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdVbmd1 ZWx0aWdlIEthdGVnb3JpZScgNDAwOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAjIE9wdGlvbmFsOiBEYXRlaS1JbmhhbHQgYXVzdGF1c2NoZW4gKCJEYXRlaSBl cnNldHplbiItQWt0aW9uKQ0KICAgICAgICAgICAgICAgICROZXVlRGF0YUI2NCA9IGlmICgkQS5Q U09iamVjdC5Qcm9wZXJ0aWVzWydkYXRhJ10pIHsgW3N0cmluZ10kQS5kYXRhIH0gZWxzZSB7ICRu dWxsIH0NCiAgICAgICAgICAgICAgICAkTmV1ZU1pbWUgICAgPSBpZiAoJEEuUFNPYmplY3QuUHJv cGVydGllc1snbWltZVR5cGUnXSkgeyAoW3N0cmluZ10kQS5taW1lVHlwZSkuVG9Mb3dlcigpLlRy aW0oKSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgJE5ldWVyRGF0ZWluYW1lID0g aWYgKCRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2RhdGVpbmFtZSddKSB7IChbc3RyaW5nXSRBLmRh dGVpbmFtZSkuVHJpbSgpIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkTmV1ZUJ5 dGVzID0gJG51bGwNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JX aGl0ZVNwYWNlKCROZXVlRGF0YUI2NCkpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3Qg JE5ldWVNaW1lKSB7IFNlbmQtRXJyb3IgJFJlcyAnbWltZVR5cGUgZmVobHQgenVtIERhdGVpLUVy c2V0emVuJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJHNj cmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVzLkNvbnRhaW5zS2V5KCROZXVlTWltZSkpIHsgU2VuZC1F cnJvciAkUmVzICdEYXRlaXR5cCBuaWNodCBlcmxhdWJ0JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAg ICAgICAgICAgICAgICAgaWYgKCROZXVlRGF0YUI2NC5TdGFydHNXaXRoKCdkYXRhOicpKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAkaWR4ID0gJE5ldWVEYXRhQjY0LkluZGV4T2YoJywnKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpZHggLWdlIDApIHsgJE5ldWVEYXRhQjY0ID0g JE5ldWVEYXRhQjY0LlN1YnN0cmluZygkaWR4ICsgMSkgfQ0KICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgIHRyeSB7ICROZXVlQnl0ZXMgPSBbU3lzdGVtLkNvbnZlcnRd OjpGcm9tQmFzZTY0U3RyaW5nKCROZXVlRGF0YUI2NCkgfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJl cyAnQmFzZTY0IHVuZ3VlbHRpZycgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAg IGlmICgkTmV1ZUJ5dGVzLkxlbmd0aCAtZ3QgJHNjcmlwdDpNZWRpZW5NYXhCeXRlcykgew0KICAg ICAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICJEYXRlaSB6dSBncm9zcyAobWF4 ICQoW01hdGhdOjpGbG9vcigkc2NyaXB0Ok1lZGllbk1heEJ5dGVzIC8gMU1CKSkgTUIpIiA0MTM7 IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgJHNjcmlwdDpVcGRhdGVkRWludHJhZyA9ICRudWxsOyAkc2NyaXB0OkZvdW5k ID0gJGZhbHNlOyAkc2NyaXB0OkFlbmRlcnVuZ2VuID0gQHt9DQogICAgICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9jayAnbWVkaWVuLmpzb24n IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRNZXRhID0gUmVhZC1NZWRpZW5NZXRhDQogICAg ICAgICAgICAgICAgICAgICAgICAkTmV1ZUxpc3RlID0gQCgpDQogICAgICAgICAgICAgICAgICAg ICAgICBmb3JlYWNoICgkbSBpbiBAKCRNZXRhLm1lZGllbikpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoJG0uaWQgLWVxICRNaWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHNjcmlwdDpGb3VuZCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRBbHRLYXQgPSAkbS5rYXRlZ29yaWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1uZSAkTmV1ZUJleiAtYW5kICROZXVlQmV6LlRyaW0oKSAtbmUgJG0u YmV6ZWljaG51bmcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRiZXog PSAkTmV1ZUJlei5UcmltKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkYmV6Lkxlbmd0aCAtZ3QgMjAwKSB7ICRiZXogPSAkYmV6LlN1YnN0cmluZygwLCAyMDApIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmJlemVpY2hudW5nID0gJGJl eg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNjcmlwdDpBZW5kZXJ1bmdl blsnYmV6ZWljaG51bmcnXSA9ICRiZXoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICROZXVlS2F0 IC1hbmQgJE5ldWVLYXQgLW5lICRBbHRLYXQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRJc3RTeXN0ZW0gPSAkbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmFkJ10gLWFu ZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kbS5wZmFkKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRJc3RTeXN0ZW0pIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFN5c3RlbS1NZWRpdW06IG51ciBN ZXRhLUthdGVnb3JpZSB3ZWNoc2VsbiwgRGF0ZWkgYmxlaWJ0IGltIC9pbWFnZXMvLU9yZG5lcg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmthdGVnb3JpZSA9ICRO ZXVlS2F0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBbHQgPSBHZXQtTWVkaWVuUGZh ZCAkbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmthdGVnb3Jp ZSA9ICROZXVlS2F0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5l dSA9IEdldC1NZWRpZW5QZmFkICRtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJE5ldURpciA9IFNwbGl0LVBhdGggLVBhcmVudCAkTmV1DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg JE5ldURpcikpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkTmV1RGlyIC1G b3JjZSB8IE91dC1OdWxsIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkQWx0KSB7IE1vdmUtSXRlbSAtTGl0ZXJhbFBh dGggJEFsdCAtRGVzdGluYXRpb24gJE5ldSAtRm9yY2UgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNj cmlwdDpBZW5kZXJ1bmdlblsna2F0ZWdvcmllJ10gPSAiJEFsdEthdCAtPiAkTmV1ZUthdCINCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIERhdGVpLVJlcGxhY2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRudWxsIC1uZSAkTmV1ZUJ5dGVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkTmV1ZXJFeHQgPSAkc2NyaXB0Ok1lZGllbkVybGF1YnRlTWltZXNbJE5ldWVNaW1l XQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEthdCA9IGlmICgkbS5rYXRl Z29yaWUpIHsgW3N0cmluZ10kbS5rYXRlZ29yaWUgfSBlbHNlIHsgJ3NvbnN0aWdlcycgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEltYWdlc0RpcjIgPSBHZXQtTWVkaWVu SW1hZ2VzT3JkbmVyICRLYXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRI YXRQZmFkID0gJG0uUFNPYmplY3QuUHJvcGVydGllc1sncGZhZCddIC1hbmQgLW5vdCBbc3RyaW5n XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJG0ucGZhZCkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRaaWVsSW5JbWFnZXMgPSAkSGF0UGZhZCAtb3IgKCRudWxsIC1u ZSAkSW1hZ2VzRGlyMikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk WmllbEluSW1hZ2VzIC1hbmQgJG51bGwgLW5lICRJbWFnZXNEaXIyKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBbHRlIERhdGVpIGJlc2VpdGlnZW4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJEhhdFBmYWQpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFsdEQgPSBKb2luLVBhdGgg JHNjcmlwdDpSb290ICgoW3N0cmluZ10kbS5wZmFkKS5UcmltU3RhcnQoJy8nKSkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0RCA9IEdldC1NZWRpZW5QZmFkICRtDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRBbHREIC1QYXRo VHlwZSBMZWFmKSB7IFJlbW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkQWx0RCAtRm9yY2UgLUVycm9y QWN0aW9uIFNpbGVudGx5Q29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gY2F0Y2gge30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIE5ldWVuIFppZWxuYW1lbiB3w6RobGVuDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRIYXRQZmFkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRTdGVtID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RmlsZU5hbWVX aXRob3V0RXh0ZW5zaW9uKFtzdHJpbmddJG0ucGZhZCkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJFppZWxEID0gSm9pbi1QYXRoICRJbWFnZXNEaXIyICgkU3Rl bSArICROZXVlckV4dCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVXBs b2FkTmFtZTIgPSBpZiAoJE5ldWVyRGF0ZWluYW1lKSB7ICROZXVlckRhdGVpbmFtZSB9IGVsc2Ug eyBbc3RyaW5nXSRtLmJlemVpY2hudW5nIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJhc2UyID0gR2V0LU1lZGllbkJhc2VuYW1lQXVzVXBsb2FkICRVcGxv YWROYW1lMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkWmll bEQgPSBHZXQtTWVkaWVuRnJlaWVyRGF0ZWluYW1lICRJbWFnZXNEaXIyICRCYXNlMiAkTmV1ZXJF eHQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxC eXRlcygkWmllbEQsICROZXVlQnl0ZXMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJFppZWxOYW1lMiA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRaaWVs RCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG0uUFNPYmpl Y3QuUHJvcGVydGllc1sncGZhZCddKSB7ICRtLnBmYWQgPSAnL2ltYWdlcy8nICsgJEthdCArICcv JyArICRaaWVsTmFtZTIgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVsc2UgeyAkbSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdw ZmFkJyAtVmFsdWUgKCcvaW1hZ2VzLycgKyAkS2F0ICsgJy8nICsgJFppZWxOYW1lMikgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmRhdGVpbmFtZSA9IGlmICgk TmV1ZXJEYXRlaW5hbWUpIHsgJE5ldWVyRGF0ZWluYW1lLlN1YnN0cmluZygwLCBbTWF0aF06Ok1p bigkTmV1ZXJEYXRlaW5hbWUuTGVuZ3RoLCAyMDApKSB9IGVsc2UgeyAkWmllbE5hbWUyIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbS5taW1lVHlwZSA9ICROZXVl TWltZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmdyb2Vzc2Ug PSAkTmV1ZUJ5dGVzLkxlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydzeXN0ZW0nXSkgeyAkbS5QU09iamVjdC5Q cm9wZXJ0aWVzLlJlbW92ZSgnc3lzdGVtJykgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRtLmhvY2hnZWxhZGVuQW0gPSAoR2V0LURhdGUgLUZvcm1hdCAneXl5eS1N TS1kZCBISDptbTpzcycpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JG0uaG9jaGdlbGFkZW5Wb24gPSAoR2V0LUFrdHVlbGxlckJlbnV0emVyKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6QWVuZGVydW5nZW5bJ2RhdGVpJ10g PSAiJE5ldWVNaW1lICQoJE5ldWVCeXRlcy5MZW5ndGgpIEIiDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgZGF0YS9tZWRpZW4tUGZhZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgtbm90ICRIYXRQZmFkKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRBbHREID0gR2V0LU1lZGllblBmYWQgJG0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQ YXRoICRBbHREIC1QYXRoVHlwZSBMZWFmKSB7IFJlbW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkQWx0 RCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmFkJ10pIHsgJG0uUFNPYmpl Y3QuUHJvcGVydGllcy5SZW1vdmUoJ3BmYWQnKSB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N5c3RlbSddKSB7ICRt LlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCdzeXN0ZW0nKSB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJG0ubWltZVR5cGUgPSAkTmV1ZU1pbWUNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJE5ldWVyRGF0ZWluYW1lKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmRhdGVpbmFtZSA9 ICROZXVlckRhdGVpbmFtZS5TdWJzdHJpbmcoMCwgW01hdGhdOjpNaW4oJE5ldWVyRGF0ZWluYW1l Lkxlbmd0aCwgMjAwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0uZ3JvZXNzZSA9ICRO ZXVlQnl0ZXMuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JG0uaG9jaGdlbGFkZW5BbSA9IChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1NLWRkIEhIOm1tOnNz JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbS5ob2NoZ2VsYWRl blZvbiA9IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFppZWxEID0gR2V0LU1lZGllblBmYWQgJG0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkWmllbERpciA9IFNwbGl0LVBhdGggLVBhcmVudCAk WmllbEQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAo VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkWmllbERpcikpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERp cmVjdG9yeSAtUGF0aCAkWmllbERpciAtRm9yY2UgfCBPdXQtTnVsbCB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxCeXRl cygkWmllbEQsICROZXVlQnl0ZXMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJHNjcmlwdDpBZW5kZXJ1bmdlblsnZGF0ZWknXSA9ICIkTmV1ZU1pbWUgJCgkTmV1ZUJ5 dGVzLkxlbmd0aCkgQiINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkc2NyaXB0OlVwZGF0ZWRFaW50cmFnID0gJG0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ldWVMaXN0ZSArPSAkbQ0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRz Y3JpcHQ6Rm91bmQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1NZWRpZW5N ZXRhIChbUFNDdXN0b21PYmplY3RdQHsgbWVkaWVuID0gJE5ldWVMaXN0ZSB9KQ0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9IHwgT3V0LU51bGwNCiAgICAg ICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVz ICIkXyIgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBp ZiAoLW5vdCAkc2NyaXB0OkZvdW5kKSB7IFNlbmQtRXJyb3IgJFJlcyAnTmljaHQgZ2VmdW5kZW4n IDQwNDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ21lZGll bi5nZWFlbmRlcnQnIEB7IGlkID0gJE1pZDsgYmV6ZWljaG51bmcgPSAkc2NyaXB0OlVwZGF0ZWRF aW50cmFnLmJlemVpY2hudW5nOyBrYXRlZ29yaWUgPSAkc2NyaXB0OlVwZGF0ZWRFaW50cmFnLmth dGVnb3JpZSB9DQogICAgICAgICAgICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAg ICAgICAgICAgICAgICRSb2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICBBZGQt Q2hhbmdlTG9nRW50cnkgJ21lZGllbicgJG51bGwgJG51bGwgJG51bGwgJFVzZXJuYW1lICRSb2xs ZSBAeyBha3Rpb24gPSAnZ2VhZW5kZXJ0JzsgaWQgPSAkTWlkOyBiZXplaWNobnVuZyA9ICRzY3Jp cHQ6VXBkYXRlZEVpbnRyYWcuYmV6ZWljaG51bmc7IGthdGVnb3JpZSA9ICRzY3JpcHQ6VXBkYXRl ZEVpbnRyYWcua2F0ZWdvcmllIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBz dGF0dXMgPSAnZ2VzcGVpY2hlcnQnOyBtZWRpdW0gPSAkc2NyaXB0OlVwZGF0ZWRFaW50cmFnIH0N CiAgICAgICAgICAgICAgICAkc2NyaXB0OkZvdW5kID0gJGZhbHNlOyAkc2NyaXB0OlVwZGF0ZWRF aW50cmFnID0gJG51bGwNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBNRURJRU46IExvZXNjaGVuID09 PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoLlN0YXJ0c1dpdGgoJy9h cGkvbWVkaWVuLycpIC1hbmQgJE1ldGhvZCAtZXEgJ0RFTEVURScgLWFuZCAtbm90ICRQYXRoLlN0 YXJ0c1dpdGgoJy9hcGkvbWVkaWVuL2RhdGVpLycpKSB7DQogICAgICAgICAgICAgICAgaWYgKC1u b3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBTZW5kLUVycm9yICRSZXMgJ051ciBTdXBlclVzZXIg ZGFyZiBNZWRpZW4gbG9lc2NoZW4nIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRN aWQgPSAkUGF0aC5TdWJzdHJpbmcoJFBhdGguTGFzdEluZGV4T2YoJy8nKSArIDEpDQogICAgICAg ICAgICAgICAgJHNjcmlwdDpGb3VuZCA9ICRmYWxzZTsgJHNjcmlwdDpHZWxvZXNjaHRlckVpbnRy YWcgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIElu dm9rZS1XaXRoRmlsZUxvY2sgJ21lZGllbi5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICAg ICAkTWV0YSA9IFJlYWQtTWVkaWVuTWV0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldWVM aXN0ZSA9IEAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJG0gaW4gQCgkTWV0 YS5tZWRpZW4pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRtLmlkIC1lcSAk TWlkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6Rm91bmQgPSAk dHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2NyaXB0OkdlbG9lc2NodGVy RWludHJhZyA9ICRtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRGlzay1EYXRl aSBudXIgc2Nob25lbiwgd2VubiBPcmlnaW5hbC1TeXN0ZW0tQXNzZXQgKHN5c3RlbT0kdHJ1ZSku DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVXNlci1VcGxvYWRzIG1pdCBgcGZh ZGAgKGluIEltYWdlcy88a2F0Pi8pIHdlcmRlbiBtaXQgZ2Vsb2VzY2h0Lg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkSXN0U3lzdGVtQXNzZXQgPSAkbS5QU09iamVjdC5Qcm9wZXJ0 aWVzWydzeXN0ZW0nXSAtYW5kIFtib29sXSRtLnN5c3RlbQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkSXN0U3lzdGVtQXNzZXQpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICREYXRlaSA9IEdldC1NZWRpZW5QZmFkICRtDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkRGF0 ZWkgLVBhdGhUeXBlIExlYWYpIHsgUmVtb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICREYXRlaSAtRXJy b3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkTmV1ZUxpc3RlICs9ICRtDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRzY3JpcHQ6Rm91bmQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBX cml0ZS1NZWRpZW5NZXRhIChbUFNDdXN0b21PYmplY3RdQHsgbWVkaWVuID0gJE5ldWVMaXN0ZSB9 KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9IHwgT3V0 LU51bGwNCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2Vu ZC1FcnJvciAkUmVzICIkXyIgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkc2NyaXB0OkZvdW5kKSB7IFNlbmQtRXJyb3IgJFJlcyAnTmlj aHQgZ2VmdW5kZW4nIDQwNDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0Vp bnRyYWcgJ21lZGllbi5nZWxvZXNjaHQnIEB7IGlkID0gJE1pZDsga2F0ZWdvcmllID0gJHNjcmlw dDpHZWxvZXNjaHRlckVpbnRyYWcua2F0ZWdvcmllOyBiZXplaWNobnVuZyA9ICRzY3JpcHQ6R2Vs b2VzY2h0ZXJFaW50cmFnLmJlemVpY2hudW5nIH0NCiAgICAgICAgICAgICAgICAkVXNlcm5hbWUg PSAkZW52OlVTRVJOQU1FDQogICAgICAgICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0K ICAgICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dFbnRyeSAnbWVkaWVuJyAkbnVsbCAkbnVsbCAk bnVsbCAkVXNlcm5hbWUgJFJvbGxlIEB7IGFrdGlvbiA9ICdnZWxvZXNjaHQnOyBpZCA9ICRNaWQ7 IGthdGVnb3JpZSA9ICRzY3JpcHQ6R2Vsb2VzY2h0ZXJFaW50cmFnLmthdGVnb3JpZTsgYmV6ZWlj aG51bmcgPSAkc2NyaXB0OkdlbG9lc2NodGVyRWludHJhZy5iZXplaWNobnVuZyB9DQogICAgICAg ICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlbG9lc2NodCcgfQ0KICAgICAg ICAgICAgICAgICRzY3JpcHQ6Rm91bmQgPSAkZmFsc2U7ICRzY3JpcHQ6R2Vsb2VzY2h0ZXJFaW50 cmFnID0gJG51bGwNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBTVEFUSVNDSEUgREFURUlFTiA9PT09 PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgICRSZWxQYXRoID0gJFBhdGguVHJpbVN0YXJ0 KCcvJykNCiAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRSZWxQ YXRoKSkgeyAkUmVsUGF0aCA9ICdpbmRleC5odG1sJyB9DQogICAgICAgICAgICAkU2FmZVBhdGgg PSBSZXNvbHZlLVNhZmVQYXRoICRSZWxQYXRoDQogICAgICAgICAgICBpZiAoJG51bGwgLWVxICRT YWZlUGF0aCkgeyBTZW5kLUVycm9yICRSZXMgJ1p1Z3JpZmYgdmVyd2VpZ2VydCcgNDAzOyBjb250 aW51ZSB9DQogICAgICAgICAgICBpZiAoKFRlc3QtUGF0aCAkU2FmZVBhdGgpIC1hbmQgLW5vdCAo R2V0LUl0ZW0gJFNhZmVQYXRoKS5QU0lzQ29udGFpbmVyKSB7DQogICAgICAgICAgICAgICAgU2Vu ZC1GaWxlICRSZXMgJFNhZmVQYXRoDQogICAgICAgICAgICB9IGVsc2VpZiAoJFJlbFBhdGggLWVx ICdpbmRleC5odG1sJykgew0KICAgICAgICAgICAgICAgICMgRGlhZ25vc2UtU2VpdGUgc3RhdHQg NDA0IC0gemVpZ3QgZGlyZWt0IGltIEJyb3dzZXIsIHdhcyBsb3MgaXN0DQogICAgICAgICAgICAg ICAgJF9kaWFnSW5oYWx0ID0gJycNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAg ICAgICAgICAkX2RpYWdGaWxlcyA9IEdldC1DaGlsZEl0ZW0gLVBhdGggJFJvb3QgLUZvcmNlIC1F cnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMzAgfCBG b3JFYWNoLU9iamVjdCB7ICc8bGk+JyArIFtTeXN0ZW0uV2ViLkh0dHBVdGlsaXR5XTo6SHRtbEVu Y29kZSgkXy5OYW1lKSArICc8L2xpPicgfQ0KICAgICAgICAgICAgICAgICAgICAkX2RpYWdJbmhh bHQgPSAkX2RpYWdGaWxlcyAtam9pbiAiYG4iDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7ICRf ZGlhZ0luaGFsdCA9ICc8bGk+KFZlcnplaWNobmlzIG5pY2h0IGxlc2Jhcik8L2xpPicgfQ0KICAg ICAgICAgICAgICAgICRfZGlhZ0h0bWwgPSBAIg0KPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGhlYWQ+ PG1ldGEgY2hhcnNldD0idXRmLTgiPjx0aXRsZT5GTEQtU2VydmVyOiBpbmRleC5odG1sIG5pY2h0 IGdlZnVuZGVuPC90aXRsZT4NCjxzdHlsZT5ib2R5e2ZvbnQtZmFtaWx5OlNlZ29lIFVJLHNhbnMt c2VyaWY7YmFja2dyb3VuZDojZmFmYWZhO2NvbG9yOiMyMjI7cGFkZGluZzozMnB4O21heC13aWR0 aDo3ODBweDttYXJnaW46YXV0b30NCmgxe2NvbG9yOiNiNzFjMWN9Y29kZXtiYWNrZ3JvdW5kOiNl ZWU7cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6M3B4fQ0KLmJveHtiYWNrZ3JvdW5kOiNm ZmY7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6MTZweCAyMHB4O2JvcmRlci1yYWRpdXM6 NHB4O21hcmdpbjoxNHB4IDB9DQoubGFiZWx7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM1NTV9dWx7 Zm9udC1zaXplOjEzcHh9PC9zdHlsZT48L2hlYWQ+PGJvZHk+DQo8aDE+RkxELVNlcnZlcjogaW5k ZXguaHRtbCBuaWNodCBnZWZ1bmRlbjwvaDE+DQo8cD5EZXIgU2VydmVyIGxhZXVmdCwga2FubiBh YmVyIHVudGVyIGRlbSBrb25maWd1cmllcnRlbiBBcHAtUm9vdCBrZWluZSA8Y29kZT5pbmRleC5o dG1sPC9jb2RlPiBmaW5kZW4uPC9wPg0KPGRpdiBjbGFzcz0iYm94Ij4NCiAgPGRpdj48c3BhbiBj bGFzcz0ibGFiZWwiPkFrdHVlbGwgZ2VudXR6dGVyIFJvb3QtUGZhZDo8L3NwYW4+PGJyPjxjb2Rl PiRSb290PC9jb2RlPjwvZGl2Pg0KICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjhweCI+PHNwYW4g Y2xhc3M9ImxhYmVsIj5RdWVsbGU6PC9zcGFuPiAkX3Jvb3RTcmM8L2Rpdj4NCiAgPGRpdiBzdHls ZT0ibWFyZ2luLXRvcDo4cHgiPjxzcGFuIGNsYXNzPSJsYWJlbCI+Um9vdFBhdGgtUGFyYW06PC9z cGFuPiA8Y29kZT4kKFtTeXN0ZW0uV2ViLkh0dHBVdGlsaXR5XTo6SHRtbEVuY29kZSgkUm9vdFBh dGgpKTwvY29kZT48L2Rpdj4NCiAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDo4cHgiPjxzcGFuIGNs YXNzPSJsYWJlbCI+UFNTY3JpcHRSb290Ojwvc3Bhbj4gPGNvZGU+JChbU3lzdGVtLldlYi5IdHRw VXRpbGl0eV06Okh0bWxFbmNvZGUoJFBTU2NyaXB0Um9vdCkpPC9jb2RlPjwvZGl2Pg0KPC9kaXY+ DQo8ZGl2IGNsYXNzPSJib3giPg0KICA8ZGl2IGNsYXNzPSJsYWJlbCI+SW5oYWx0IGRlcyBSb290 LVBmYWRzIChtYXggMzAgRWludHJhZWdlKTo8L2Rpdj4NCiAgPHVsPiRfZGlhZ0luaGFsdDwvdWw+ DQo8L2Rpdj4NCjxkaXYgY2xhc3M9ImJveCI+DQogIDxkaXYgY2xhc3M9ImxhYmVsIj5OYWVjaHN0 ZSBTY2hyaXR0ZTo8L2Rpdj4NCiAgPG9sPg0KICAgIDxsaT5QcnVlZmUsIG9iIGltIGdlbmFubnRl biBSb290LVBmYWQgZGllIERhdGVpIDxjb2RlPmluZGV4Lmh0bWw8L2NvZGU+IGxpZWd0LjwvbGk+ DQogICAgPGxpPkZhbGxzIG5pY2h0OiBCYXQgYXVzIGRlbSBrb3JyZWt0ZW4gQXBwLU9yZG5lciBz dGFydGVuIChuaWNodCBhdXMgZGVtIE5XLUhvbWUpLjwvbGk+DQogICAgPGxpPkZhbGxzIGRpZSBC YXQgaW0gcmljaHRpZ2VuIE9yZG5lciBsaWVndDogU2lkZWNhci1EYXRlaSA8Y29kZT5hcHBfcm9v dC50eHQ8L2NvZGU+IG5lYmVuIGRlbSBsb2thbGVuIDxjb2RlPnNlcnZlci5wczE8L2NvZGU+IHBy dWVmZW4uPC9saT4NCiAgICA8bGk+Vm9sbHN0YWVuZGlnZXIgVHJhY2U6IDxjb2RlPiVURU1QJVxG TERfc2VydmVyLmxvZzwvY29kZT4gYnp3LiA8Y29kZT4lVVNFUlBST0ZJTEUlXERlc2t0b3BcRkxE X0ZFSExFUi5sb2c8L2NvZGU+LjwvbGk+DQogIDwvb2w+DQo8L2Rpdj4NCjwvYm9keT48L2h0bWw+ DQoiQA0KICAgICAgICAgICAgICAgICRfYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpV VEY4LkdldEJ5dGVzKCRfZGlhZ0h0bWwpDQogICAgICAgICAgICAgICAgQWRkLVNlY3VyaXR5SGVh ZGVycyAkUmVzDQogICAgICAgICAgICAgICAgJFJlcy5Db250ZW50VHlwZSA9ICd0ZXh0L2h0bWw7 IGNoYXJzZXQ9dXRmLTgnDQogICAgICAgICAgICAgICAgJFJlcy5TdGF0dXNDb2RlID0gNTAzDQog ICAgICAgICAgICAgICAgJFJlcy5Db250ZW50TGVuZ3RoNjQgPSAkX2J5dGVzLkxlbmd0aA0KICAg ICAgICAgICAgICAgIFdyaXRlLVJlc3BvbnNlQnVmZmVyICRSZXMgJF9ieXRlcw0KICAgICAgICAg ICAgICAgIFdyaXRlLVN0YXJ0dXBMb2cgIkRJQUctU2VpdGUgYXVzZ2VsaWVmZXJ0IChpbmRleC5o dG1sIHVudGVyICckUm9vdCcgZmVobHQpIg0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICAgICBTZW5kLUVycm9yICRSZXMgIk5pY2h0IGdlZnVuZGVuOiAkUmVsUGF0aCIgNDA0DQog ICAgICAgICAgICB9DQoNCiAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAjIFBoYXNlIEQ1 OiBlcnJvcklkLVVVSUQgKyBTdGFja3RyYWNlIGlucyBMb2csIE5JQ0hUIGluIFJlc3BvbnNlDQog ICAgICAgICAgICAkZXJyb3JJZCA9IE5ldy1FcnJvcklkDQogICAgICAgICAgICAkZGV0YWlsICA9 ICIkXyB8IFplaWxlICQoJF8uSW52b2NhdGlvbkluZm8uU2NyaXB0TGluZU51bWJlcikgfCAkKCRf Lkludm9jYXRpb25JbmZvLkxpbmUuVHJpbSgpKSINCiAgICAgICAgICAgIFdyaXRlLVN0YXJ0dXBM b2cgIlJFUVVFU1QtRkVITEVSICRNZXRob2QgJFBhdGggZXJyb3JJZD0kZXJyb3JJZCA6ICRkZXRh aWwiDQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7 DQogICAgICAgICAgICAgICAgICAgIGZlaGxlciAgPSAnaW50ZXJuZXJfc2VydmVyZmVobGVyJw0K ICAgICAgICAgICAgICAgICAgICBtZWxkdW5nID0gJ0ludGVybmVyIFNlcnZlcmZlaGxlciAtIGJp dHRlIG1pdCBkZXIgZXJyb3JJZCBhbiBTdXBlclVzZXIgbWVsZGVuLicNCiAgICAgICAgICAgICAg ICAgICAgZXJyb3JJZCA9ICRlcnJvcklkDQogICAgICAgICAgICAgICAgfSA1MDANCiAgICAgICAg ICAgIH0gY2F0Y2gge30NCiAgICAgICAgfQ0KICAgIH0NCn0gZmluYWxseSB7DQogICAgaWYgKCRM aXN0ZW5lciAtYW5kICRMaXN0ZW5lci5Jc0xpc3RlbmluZykgeyAkTGlzdGVuZXIuU3RvcCgpIH0N CiAgICBXcml0ZS1TdGFydHVwTG9nICdTZXJ2ZXIgYmVlbmRldC4nDQp9DQo= ### FILE: style.css | 163105 LyogPT09IFZJMyBER0wtUGxhbnVuZyDigJQgU3R5bGVzaGVldCAoRXhjZWwtdHJldWVzIExheW91 dCkgPT09ICovCgoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJv eDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CgovKiA9PT09PSBDU1MtVmFyaWFibGVuID09PT09 ICovCjpyb290IHsKICAgIC8qIEdlZGVja3RlcywgcHJvZmVzc2lvbmVsbGVzIEZhcmJzY2hlbWEg Ki8KICAgIC0tYmctcHJpbWFyeTogIzJDM0U1MDsKICAgIC0tYmctcHJpbWFyeS1kYXJrOiAjMjQz MzQyOwogICAgLS1iZy1ib2R5OiAjRjBGMUYzOwogICAgLS1iZy1jYXJkOiAjRkZGRkZGOwogICAg LS1iZy1jYXJkLWFsdDogI0Y1RjZGODsKICAgIC0tYmctdG9vbGJhcjogI0U4RUFFRDsKICAgIC0t YmctaG92ZXI6ICNFOEVERjI7CiAgICAtLWJnLWFjdGl2ZTogI0Q2REVFNjsKICAgIC0tYmctaW5w dXQ6ICNGRkZGRkY7CiAgICAtLWJnLXNpZGViYXI6ICNGMEYxRjM7CgogICAgLS10ZXh0LXByaW1h cnk6ICMyQzNFNTA7CiAgICAtLXRleHQtc2Vjb25kYXJ5OiAjNUQ2RDdFOwogICAgLS10ZXh0LW11 dGVkOiAjOTVBNUE2OwogICAgLS10ZXh0LWhlYWRpbmc6ICMyQzNFNTA7CiAgICAtLXRleHQtb24t cHJpbWFyeTogI0VDRjBGMTsKCiAgICAtLWJvcmRlci1jb2xvcjogI0Q1RDhEQzsKICAgIC0tYm9y ZGVyLWxpZ2h0OiAjRTVFOEVCOwogICAgLS1ib3JkZXItc3Ryb25nOiAjQUVCNkJGOwogICAgLS1z aGFkb3ctbGlnaHQ6IHJnYmEoMCwwLDAsMC4wNCk7CiAgICAtLXNoYWRvdy1tZWRpdW06IHJnYmEo MCwwLDAsMC4xMCk7CiAgICAtLXNoYWRvdy1tb2RhbDogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAu MjApOwogICAgLS10cmFuc2l0aW9uLXN0ZDogYWxsIDAuMTVzIGVhc2U7CgogICAgLyogR3JpZC1E aW1lbnNpb25lbiDigJQga29tcGFrdCB3aWUgRXhjZWwgKi8KICAgIC0temVsbGUtYnJlaXRlOiA2 MnB4OwogICAgLS16ZWxsZS1ob2VoZTogMjJweDsKICAgIC0tbmFtZW4tYnJlaXRlOiAyNjBweDsK ICAgIC0ta29wZi16ZWlsZW4taG9laGU6IDIwcHg7CgogICAgLS10YWctbm9ybWFsOiAjRkZGRkZG OwogICAgLS10YWctd29jaGVuZW5kZTogI0YyRURGNTsKICAgIC0tdGFnLWZlaWVydGFnOiAjRkRF QUVBOwogICAgLS10YWctZmVyaWVuOiAjRThGNUVDOwogICAgLS10YWctaGV1dGU6ICMyQzNFNTA7 CiAgICAtLXRhZy1zb25kZXI6ICNGRkY5RTY7CgogICAgLyogR2VkZWNrdGUgU2NoaWNodGZhcmJl biAqLwogICAgLS1mYXJiZS1mcnVlaDogI0I3MUMxQzsKICAgIC0tZmFyYmUtc3BhZXQ6ICMxQTUy NzY7CiAgICAtLWZhcmJlLW5hY2h0OiAjMUI1RTIwOwogICAgLS1mYXJiZS1lcmZvbGc6ICMyNzg5 NkQ7CiAgICAtLWZhcmJlLWZlaGxlcjogI0IwM0EyRTsKICAgIC0tZmFyYmUtd2FybnVuZzogI0NB NkYxRTsKICAgIC0tZmFyYmUtaW5mbzogIzJDM0U1MDsKCiAgICAvKiA9PT0gVGFnZXNsYWdlLVJl ZnJlc2ggKGFkZGl0aXYsIE1vY2t1cC1Ub2tlbnMpID09PSAqLwogICAgLS10bC1ha3otZHNtOiAg ICAgICAgdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAtLXRsLWFrei1zb2xsOiAgICAgICAjQjA4QTNG OyAgICAgICAgICAvKiBnb2xkICovCiAgICAtLXRsLWFrei1mcnVlaDogICAgICAjQzlBOTRBOyAg ICAgICAgICAvKiBQb2xpemVpLUZydWVoIChnZWxiKSAqLwogICAgLS10bC1ha3otc3BhZXQ6ICAg ICAgIzRBOEI1RTsgICAgICAgICAgLyogUG9saXplaS1TcGFldCAoZ3J1ZW4pICovCiAgICAtLXRs LWFrei1uYWNodDogICAgICAjM0U1RThCOyAgICAgICAgICAvKiBQb2xpemVpLU5hY2h0IChibGF1 KSAqLwoKICAgIC0tZ29sZDogICAgICAgICAgICAgICNCMDhBM0Y7CiAgICAtLWdvbGQtc29mdDog ICAgICAgICAjRjRFQ0Q4OwogICAgLS1iZy1zb2Z0OiAgICAgICAgICAgI0ZCRjhFRjsKCiAgICAt LXRsLWJnLXNvbGw6ICAgICAgICB2YXIoLS1iZy1zb2Z0KTsKICAgIC0tdGwtYmctZnJ1ZWg6ICAg ICAgIHJnYmEoMjAxLDE2OSw3NCwwLjA1KTsKICAgIC0tdGwtYmctc3BhZXQ6ICAgICAgIHJnYmEo NzQsMTM5LDk0LDAuMDUpOwogICAgLS10bC1iZy1uYWNodDogICAgICAgcmdiYSg2Miw5NCwxMzks MC4wNCk7CgogICAgLS10bC1zdGF0dXMtb2stYmc6ICAgcmdiYSgzOSwxMzcsMTA5LDAuMTApOwog ICAgLS10bC1zdGF0dXMtb2stZmc6ICAgdmFyKC0tZmFyYmUtZXJmb2xnKTsKICAgIC0tdGwtc3Rh dHVzLXdhcm4tYmc6IHJnYmEoMTc2LDU4LDQ2LDAuMTApOwogICAgLS10bC1zdGF0dXMtd2Fybi1m ZzogdmFyKC0tZmFyYmUtZmVobGVyKTsKCiAgICAvKiBTdGF0dXMtUGlsbGVuIChUYWJlbGxlbi1T cGFsdGUg4oCeU3RhdHVzIiBpbiBBZG1pbikgKi8KICAgIC0tc3RhdHVzLWFrdGl2LWJnOiAgICAg cmdiYSgzOSwxMzcsMTA5LDAuMTIpOwogICAgLS1zdGF0dXMtYWt0aXYtZmc6ICAgICB2YXIoLS1m YXJiZS1lcmZvbGcpOwogICAgLS1zdGF0dXMtYWt0aXYtYm9yZGVyOiByZ2JhKDM5LDEzNywxMDks MC4zMCk7CiAgICAtLXN0YXR1cy1pbmFrdGl2LWJnOiAgIHZhcigtLWJnLWNhcmQtYWx0KTsKICAg IC0tc3RhdHVzLWluYWt0aXYtZmc6ICAgdmFyKC0tdGV4dC1tdXRlZCk7CgogICAgLS1yYWRpdXMt c206IDRweDsKICAgIC0tcmFkaXVzLW1kOiA2cHg7CiAgICAtLXJhZGl1cy1sZzogMTBweDsKICAg IC0tc2NoYXR0ZW4tc206IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMDYpOwogICAgLS1zY2hhdHRl bi1tZDogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4wOCk7Cn0KCltkYXRhLXRoZW1lPSJuaWdodCJd IHsKICAgIC0tYmctcHJpbWFyeTogIzFBMjUyRjsKICAgIC0tYmctcHJpbWFyeS1kYXJrOiAjMTQx RDI1OwogICAgLS1iZy1ib2R5OiAjMTUxRDI1OwogICAgLS1iZy1jYXJkOiAjMUMyNjMwOwogICAg LS1iZy1jYXJkLWFsdDogIzIxMzAzRDsKICAgIC0tYmctdG9vbGJhcjogIzIxMzAzRDsKICAgIC0t YmctaG92ZXI6ICMyODNBNEE7CiAgICAtLWJnLWFjdGl2ZTogIzJGNDQ1ODsKICAgIC0tYmctaW5w dXQ6ICMxQzI2MzA7CiAgICAtLWJnLXNpZGViYXI6ICMxODIyMkM7CgogICAgLS10ZXh0LXByaW1h cnk6ICNENURERTU7CiAgICAtLXRleHQtc2Vjb25kYXJ5OiAjODg5OUE2OwogICAgLS10ZXh0LW11 dGVkOiAjNUE2QTc4OwogICAgLS10ZXh0LWhlYWRpbmc6ICNBOEM0RDg7CiAgICAtLXRleHQtb24t cHJpbWFyeTogI0Q1RERFNTsKCiAgICAtLWJvcmRlci1jb2xvcjogIzI4M0E0QTsKICAgIC0tYm9y ZGVyLWxpZ2h0OiAjMjIzMDQwOwogICAgLS1ib3JkZXItc3Ryb25nOiAjM0E0RTYwOwogICAgLS1z aGFkb3ctbGlnaHQ6IHJnYmEoMCwwLDAsMC4xNSk7CiAgICAtLXNoYWRvdy1tZWRpdW06IHJnYmEo MCwwLDAsMC4zMCk7CiAgICAtLXNoYWRvdy1tb2RhbDogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAu NDUpOwoKICAgIC0tdGFnLW5vcm1hbDogIzFDMjYzMDsKICAgIC0tdGFnLXdvY2hlbmVuZGU6ICMy NjFEMzI7CiAgICAtLXRhZy1mZWllcnRhZzogIzMyMUUxRTsKICAgIC0tdGFnLWZlcmllbjogIzFD MkUyMjsKICAgIC0tdGFnLXNvbmRlcjogIzJFMkExODsKCiAgICAvKiA9PT0gVGFnZXNsYWdlLVJl ZnJlc2g6IE5pZ2h0LVZhcmlhbnRlbiA9PT0gKi8KICAgIC0tdGwtYmctc29sbDogICAgICAgICMx RjI4MzI7CiAgICAtLXRsLWJnLWZydWVoOiAgICAgICByZ2JhKDIwMSwxNjksNzQsMC4wNyk7CiAg ICAtLXRsLWJnLXNwYWV0OiAgICAgICByZ2JhKDc0LDEzOSw5NCwwLjA3KTsKICAgIC0tdGwtYmct bmFjaHQ6ICAgICAgIHJnYmEoNjIsOTQsMTM5LDAuMDcpOwogICAgLS10bC1zdGF0dXMtb2stYmc6 ICAgcmdiYSgzOSwxMzcsMTA5LDAuMTgpOwogICAgLS10bC1zdGF0dXMtd2Fybi1iZzogcmdiYSgx NzYsNTgsNDYsMC4xOCk7CiAgICAtLWdvbGQtc29mdDogICAgICAgICAjMkEyNTIwOwoKICAgIC0t c3RhdHVzLWFrdGl2LWJnOiAgICAgcmdiYSgzOSwxMzcsMTA5LDAuMjApOwogICAgLS1zdGF0dXMt YWt0aXYtZmc6ICAgICAjNjZCQjZBOwogICAgLS1zdGF0dXMtYWt0aXYtYm9yZGVyOiByZ2JhKDM5 LDEzNywxMDksMC40NSk7CiAgICAtLXN0YXR1cy1pbmFrdGl2LWJnOiAgIHZhcigtLWJnLWNhcmQt YWx0KTsKICAgIC0tc3RhdHVzLWluYWt0aXYtZmc6ICAgdmFyKC0tdGV4dC1tdXRlZCk7Cn0KCmh0 bWwsIGJvZHkgewogICAgaGVpZ2h0OiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGZv bnQtZmFtaWx5OiAiU2Vnb2UgVUkiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQs IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBmb250LXNp emU6IDEycHg7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgY29sb3I6IHZhcigtLXRleHQtcHJp bWFyeSk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ib2R5KTsKfQovKiBCb2R5IGFscyBGbGV4 LUNvbHVtbjogSGVhZGVyICh2YXJpYWJlbCBob2NoIGR1cmNoIGN1c3RvbUxvZ29Ib2VoZSkgdW5k CiAgIC5hbnNpY2h0IHRlaWxlbiBzaWNoIGRpZSBIb2VoZSBkeW5hbWlzY2guIFZlcmhpbmRlcnQg Q3JvcHBpbmcgYmVpCiAgIGdyb3NzZW0gTG9nby1IZWFkZXIuICovCmJvZHkgeyBkaXNwbGF5OiBm bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CgovKiA9PT09PSBIZWFkZXIgPT09PT0gKi8K I2tvcGZsZWlzdGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7 CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgcGFk ZGluZzogMCAyMHB4OwogICAgLyogSGVhZGVyIGlzdCBqZXR6dCAzLXplaWxpZyBhdWYgZGVyIHJl Y2h0ZW4gU2VpdGUgKFVzZXIgLyBIZXV0ZStEYXR1bSAvIEluZm8rTmFjaHQpLgogICAgICAgTWlu ZGVzdGhvZWhlIHNvLCBkYXNzIGRpZSAzIFplaWxlbiByZWlucGFzc2VuLCBhYmVyIExvZ28gbGlu a3MgbmljaHQgYWJzY2huZWlkZXQuICovCiAgICBtaW4taGVpZ2h0OiA2NHB4OwogICAgYm94LXNo YWRvdzogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4xNSk7CiAgICB6LWluZGV4OiAxMDA7CiAgICBw b3NpdGlvbjogcmVsYXRpdmU7Cn0KCiNrb3BmbGVpc3RlIGgxIHsgZm9udC1zaXplOiAxNHB4OyBm b250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuM3B4OyB9Ci5oZWFkZXItamFociB7 IGZvbnQtd2VpZ2h0OiA0MDA7IG9wYWNpdHk6IDAuNzsgbWFyZ2luLWxlZnQ6IDhweDsgfQoKLmhl YWRlci1uYXYgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDJweDsgfQoubmF2LWJ0biB7CiAgICBiYWNr Z3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7CiAg ICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgIGJvcmRlci1yYWRpdXM6 IDRweCA0cHggMCAwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxMnB4Owog ICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgdHJhbnNp dGlvbjogdmFyKC0tdHJhbnNpdGlvbi1zdGQpOwp9Ci5uYXYtYnRuOmhvdmVyIHsgY29sb3I6ICNm ZmY7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IH0KLm5hdi1idG4uYWt0aXYg eyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE1KTsgYm9yZGVy LWJvdHRvbTogMnB4IHNvbGlkICNmZmY7IH0KCi8qIFJlY2h0ZXIgSGVhZGVyLUJlcmVpY2g6IDMt emVpbGlnIGtvbXBha3Qg4oCUIFVzZXIgb2JlbiwgSGV1dGUrRGF0dW0gbWl0dGlnLAogICBJbmZv K05hY2h0IHVudGVuLiBBbGxlIFplaWxlbiByZWNodHMgYXVzZ2VyaWNodGV0LCBnbGVpY2hlIFNw YWx0ZW5icmVpdGUuICovCi5oZWFkZXItcmVjaHRzIHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgt ZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29u dGVudDogY2VudGVyOwogICAgZ2FwOiA0cHg7IHBhZGRpbmc6IDZweCAwOwp9Ci5oci16ZWlsZSB7 IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5oci16ZWls ZS11c2VyIC5iZW51dHplci1iYWRnZSB7IGZvbnQtc2l6ZTogMTFweDsgb3BhY2l0eTogMC43OyB9 Ci5oci16ZWlsZS1oZXV0ZSAuaHItaGV1dGUtZGF0dW0gewogICAgZGlzcGxheTogaW5saW5lLWZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGxpbmUtaGVpZ2h0OiAxLjA1OyBtaW4td2lkdGg6 IDA7Cn0KLmhyLXplaWxlLWhldXRlIC5oci1oZXV0ZS1kYXR1bSAua2wtaGV1dGUtZGF0dW0tdHh0 IHsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyB9Ci5oci16ZWlsZS1oZXV0ZSAu aHItaGV1dGUtZGF0dW0gLmtsLWhldXRlLXd0YWctdHh0ICB7IGZvbnQtc2l6ZTogMTBweDsgb3Bh Y2l0eTogMC43OyBtYXJnaW4tdG9wOiAxcHg7IH0KLmhyLXplaWxlLWFrdGlvbmVuIHsgZ2FwOiA2 cHg7IH0KLmJlbnV0emVyLWJhZGdlIHsgZm9udC1zaXplOiAxMXB4OyBvcGFjaXR5OiAwLjc7IH0K Lmljb24tYnRuIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogcmdiYSgyNTUs MjU1LDI1NSwwLjcpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7CiAg ICBwYWRkaW5nOiAzcHggMTBweDsgYm9yZGVyLXJhZGl1czogNHB4OyBjdXJzb3I6IHBvaW50ZXI7 IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICB0cmFuc2l0aW9uOiB2 YXIoLS10cmFuc2l0aW9uLXN0ZCk7Cn0KLmljb24tYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogcmdi YSgyNTUsMjU1LDI1NSwwLjEpOyBjb2xvcjogI2ZmZjsgfQoKLyogPT09PT0gQW5zaWNodGVuID09 PT09ICovCi8qIGZsZXg6MSArIG1pbi1oZWlnaHQ6MCBzdGF0dCBmZXN0ZXIgSG9laGUg4oCUIHBh c3N0IHNpY2ggYW4gdmFyaWFibGUKICAgSGVhZGVyLUhvZWhlIHVuZCBzaWNodGJhcmUgQmFubmVy cyAoVmlldy1BcywgSW50ZWdyaXRhZXQpIGF1dG9tYXRpc2NoIGFuLiAqLwouYW5zaWNodCB7IGZs ZXg6IDE7IG1pbi1oZWlnaHQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGZsZXg7IGZs ZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KLnZlcnN0ZWNrdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9y dGFudDsgfQoKLyogPT09PT0gVG9vbGJhciAoUGxhbnVuZykgPT09PT0gKi8KI3BsYW51bmctdG9v bGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsK ICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctdG9vbGJhcik7 CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGhl aWdodDogMzBweDsKfQoudG9vbGJhci1idG4gewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2Fy ZCk7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFy KC0tYm9yZGVyLXN0cm9uZyk7IHBhZGRpbmc6IDJweCAxMHB4OyBib3JkZXItcmFkaXVzOiAzcHg7 CiAgICBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IGluaGVy aXQ7IHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQoudG9vbGJhci1idG46aG92 ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4 dC1oZWFkaW5nKTsgfQoudG9vbGJhci10cmVubmVyIHsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxNnB4 OyBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3IpOyBtYXJnaW46IDAgNHB4OyB9Ci50b29s YmFyLWluZm8geyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7 IH0KLnRvb2xiYXItY2hlY2sgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1z OiBjZW50ZXI7IGdhcDogNHB4OwogICAgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4 dC1zZWNvbmRhcnkpOyBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAycHggNnB4OyBib3Jk ZXItcmFkaXVzOiAzcHg7Cn0KLnRvb2xiYXItY2hlY2s6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1ob3Zlcik7IH0KLnRvb2xiYXItY2hlY2sgaW5wdXQgeyBjdXJzb3I6IHBvaW50ZXI7IH0K Ci8qIFVtZ2VzZXR6dGUgUGVyc29uZW4gKG51ciB6dXIgUmVjaGVyY2hlIGVpbmdlYmxlbmRldCkg Ki8KLm5hbWVuLXplaWxlLXVtZ2VzZXR6dCB7IG9wYWNpdHk6IDAuNDU7IGZvbnQtc3R5bGU6IGl0 YWxpYzsgfQoubmFtZW4temVpbGUtdW1nZXNldHp0IC5uei1uYW1lIHsgdGV4dC1kZWNvcmF0aW9u OiBsaW5lLXRocm91Z2g7IH0KLmdyaWQtemVpbGUtdW1nZXNldHp0IHsgb3BhY2l0eTogMC40NTsg fQouZ3JpZC16ZWlsZS11bWdlc2V0enQgLmdyaWQtemVsbGUgeyBjdXJzb3I6IG5vdC1hbGxvd2Vk ICFpbXBvcnRhbnQ7IH0KLnplaWxlLXVtZ2VzZXR6dCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhv dmVyKTsgb3BhY2l0eTogMC43OyB9Ci56ZWlsZS11bWdlc2V0enQgdGQgeyBmb250LXN0eWxlOiBp dGFsaWM7IH0KCi8qID09PT09IFBsYW51bmdzLUNvbnRhaW5lciAoRXhjZWwtTGF5b3V0KSA9PT09 PSAqLwojcGxhbnVuZy1jb250YWluZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXg6IDE7 CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7Cn0K Ci8qID09PT09IEZpeGllcnRlIGxpbmtlIFNwYWx0ZSA9PT09PSAqLwojbmFtZW4tc3BhbHRlIHsK ICAgIHdpZHRoOiB2YXIoLS1uYW1lbi1icmVpdGUpOwogICAgbWluLXdpZHRoOiB2YXIoLS1uYW1l bi1icmVpdGUpOwogICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9u Zyk7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGJh Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgei1pbmRleDogMTA7Cn0KCi8qIEtvcGZiZXJl aWNoIGxpbmtzICovCiNrb3BmLWxpbmtzIHsKICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2 YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsK fQoKLmtvcGYtemVpbGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50 ZXI7CiAgICBoZWlnaHQ6IHZhcigtLWtvcGYtemVpbGVuLWhvZWhlKTsKICAgIGJvcmRlci1ib3R0 b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZm9udC1zaXplOiAxMHB4Owog ICAgcGFkZGluZzogMCA2cHg7Cn0KCi8qIEhldXRlLUJ1dHRvbiDigJQgc2l0enQgamV0enQgb2Jl biByZWNodHMgaW4gZGVyIEtvcGZsZWlzdGUgKG5pY2h0IG1laHIKICAgYWxzIEJhbm5lci1PdmVy bGF5IHVlYmVyIGRlbSBsaW5rZW4gSGVhZGVyKS4gKi8KLmtsLWhldXRlLWJ1dHRvbiB7CiAgICBi YWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwogICAgY29sb3I6IHZhcigtLXRleHQt b24tcHJpbWFyeSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMjgp OwogICAgcGFkZGluZzogM3B4IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBmb250 LWZhbWlseTogaW5oZXJpdDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA2 MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0 cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNl LCB0cmFuc2Zvcm0gMC4xcyBlYXNlOwp9Ci5rbC1oZXV0ZS1idXR0b246aG92ZXIgewogICAgYmFj a2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIyKTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgy NTUsMjU1LDI1NSwwLjUwKTsKfQoua2wtaGV1dGUtYnV0dG9uOmFjdGl2ZSB7CiAgICBiYWNrZ3Jv dW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzApOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFw eCk7Cn0KCi8qIExpbmtlIEhlYWRlci1aZWlsZW46IGVpbmhlaXRsaWNoIGR1bmtsZXIgQmxvY2sg b2huZSBoYXJ0ZSBUcmVubmxpbmllbgogICB6d2lzY2hlbiBkZW4gWmVpbGVuIOKAlCB3aXJrdCBh bHMgZWluZSBab25lLCBuaWNodCBnZXN0cmVpZnRlIExpc3RlLgogICBHaWx0IGpldHp0IGZ1ZXIg QUxMRSBIZWFkZXItWmVpbGVuIChWb3JnYWJlL1NvbGwvRFNNL0RhdHVtL1dvY2hlbnRhZy8KICAg RXZlbnRzL0Zlcmllbi9GLUwvUy1ML1VudC1GL1VudC1OKSBzZWl0IFJlb3JkZXIuICovCi5rei1k YXR1bSwgLmt6LXdvY2hlbnRhZywgLmt6LWV2ZW50cywgLmt6LWZlcmllbiwKLmt6LXRhZ2VzZGF0 ZW4sIC5rei1kc20gewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xv cjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cn0KLmt6 LWV2ZW50cyB7IGZvbnQtc2l6ZTogMTBweDsgb3BhY2l0eTogMC44NTsgfQoKLyogTGlua2VyIEhl YWRlciB6dXNhbW1lbnJ1ZWNrZW46IGxlZXJlIERhdHVtL1dvY2hlbnRhZy9FdmVudHMvRmVyaWVu LVplaWxlbgogICBzaW5kIGxpbmtzIG51ciBQbGF0emhhbHRlciAoSW5oYWx0ZSB3ZXJkZW4gcmVj aHRzIHBybyBUYWcgZ2VyZW5kZXJ0KS4KICAgSGFsYmUgSG9laGUgZ2lidCBlaW5lbiBhdWZnZXJh dWVtdGVyZW4gRWluZHJ1Y2sg4oCUIGRpZSBEYXRlbi1aZWlsZW4KICAgYmxlaWJlbiByZWNodHMg YXVmIHZvbGxlciBIb2VoZSAoc29uc3QgdmVycnV0c2NodCBkYXMgR3JpZCkuICovCiNrb3BmLWxp bmtzIC5rb3BmLXplaWxlLmt6LWRhdHVtLAoja29wZi1saW5rcyAua29wZi16ZWlsZS5rei13b2No ZW50YWcsCiNrb3BmLWxpbmtzIC5rb3BmLXplaWxlLmt6LWV2ZW50cywKI2tvcGYtbGlua3MgLmtv cGYtemVpbGUua3otZmVyaWVuIHsKICAgIGhlaWdodDogdmFyKC0ta29wZi16ZWlsZW4taG9laGUp OwogICAgcGFkZGluZzogMCAwIDAgOHB4OyAgIC8qIGVpbmhlaXRsaWNoIGxpbmtzYsO8bmRpZyBt aXQgZGVuIFRMLVJvd3MgKi8KfQoja29wZi1saW5rcyAua29wZi16ZWlsZS50bC1yb3cgeyBwYWRk aW5nOiAwIDAgMCA4cHg7IH0gICAvKiBnbGVpY2hlciBBYnN0YW5kIHdpZSBrei1aZWlsZW4gKi8K Ci8qIFIzOiBFdmVudHMtWmVpbGUgcmVjaHRzIGlzdCBUZWlsIGRlcyBkdW5rbGVuIEhlYWRlci1C bG9ja3MKICAg4oCUIGtlaW4gZWlnZW5lciBib3JkZXItcmlnaHQsIHNvbmRlcm4gZGVyIGRlemVu dGUgU3RhbmRhcmQtVHJlbm5lcgogICB3aWUgYmVpIERhdHVtL1dvY2hlbnRhZy9GZXJpZW4gKGtl aW4gaGVsbGVyICJ3ZWlzc2VyIiBTdHJpY2ggYW4KICAgZGVuIFRlcm1pbi1aZWxsZW4sIHNvbmRl cm4gZWluaGVpdGxpY2hlciBkdW5rbGVyIEJsb2NrKS4gKi8KI2RhdHVtLXplaWxlLWV2ZW50cy5r b3BmLWRhdGVuLXplaWxlIC5rZC16ZWxsZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogMnB4OyBtaW4taGVp Z2h0OiAyNHB4OyBwYWRkaW5nOiAwOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7 CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJvcmRlci1ib3R0b206IG5v bmU7CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMCk7Cn0KLyog RGF0dW0vV29jaGVudGFnL0Zlcmllbi1aZWxsZW4gcmVjaHRzOiBnbGVpY2hlIGRlemVudGUgVHJl bm5mYXJiZQogICBkYW1pdCBkZXIgSGVhZGVyLUJsb2NrIGR1cmNoZ2FlbmdpZyBhdXNzaWVodC4g Ki8KI2RhdHVtLXplaWxlLXRhZyAua2QtemVsbGUsCiNkYXR1bS16ZWlsZS13b2NoZW50YWcgLmtk LXplbGxlLAojZGF0dW0temVpbGUtZmVyaWVuIC5rZC16ZWxsZSB7CiAgICBib3JkZXItcmlnaHQt Y29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMCk7Cn0KLyogRGF0dW0vV29jaGVudGFnL0Zlcmll bi1aZWxsZW4gcmVjaHRzIHNvbGxlbiBkaWUgQmxvY2stWm9uZSBmb3J0c2V0emVuCiAgIChEYXR1 bS0vV29jaGVudGFnLUhpbnRlcmdydW5kIGJsZWlidCBlaCBkdW5rZWwsIGhpZXIgbnVyIGtvbnNp c3RlbnRlCiAgIEJvcmRlci1CZWhhbmRsdW5nKTogendpc2NoZW4gZGVuIDQgb2JlcmVuIFplaWxl biBrZWluZSBoYXJ0ZSBMaW5pZS4gKi8KI2RhdHVtLXplaWxlLXRhZy5rb3BmLWRhdGVuLXplaWxl IC5rZC16ZWxsZSwKI2RhdHVtLXplaWxlLXdvY2hlbnRhZy5rb3BmLWRhdGVuLXplaWxlIC5rZC16 ZWxsZSwKI2RhdHVtLXplaWxlLWZlcmllbi5rb3BmLWRhdGVuLXplaWxlIC5rZC16ZWxsZSB7CiAg ICBib3JkZXItYm90dG9tOiBub25lOwp9CgovKiBJbmxpbmUtU1ZHLUljb25zIChMdWNpZGUtU3R5 bGUsIG1vbm9jaHJvbSB2aWEgY3VycmVudENvbG9yKSAqLwouaWNvbi1zdmcgewogICAgZGlzcGxh eTogaW5saW5lLWJsb2NrOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIGZsZXgtc2hy aW5rOiAwOwp9Ci5pY29uLWZhbGxiYWNrIHsKICAgIGZvbnQtZmFtaWx5OiAiQXBwbGUgQ29sb3Ig RW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIk5vdG8gQ29sb3IgRW1vamkiLGluaGVyaXQ7CiAgICBm b250LXNpemU6IGluaGVyaXQ7Cn0KLmVtb2ppLXBpY2tlci1vcHQuaWNvbi1vcHQgewogICAgd2lk dGg6IDMycHg7IGhlaWdodDogMzJweDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1p dGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LXByaW1hcnkpOwp9Ci5lbW9qaS1waWNrZXItb3B0Lmljb24tb3B0OmhvdmVyIHsgY29sb3I6 IHZhcigtLWZhcmJlLWFremVudCwgIzE1NjVDMCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVy KTsgfQouZW1vamktYnRuIC5pY29uLXN2ZyB7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOyB9 Ci5lbW9qaS1idG4tbGVlci10ZXh0IHsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXNp emU6IDE0cHg7IH0KCi8qIFNvbmRlcnRlcm1pbi0gKyBHZWJ1cnRzdGFnLUljb25zIGluIGRlciBF dmVudHMtWmVpbGUgKi8KLmtkLWV2ZW50LWljb24gewogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBk aXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5 LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgbWFyZ2luOiAwIDJw eDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgd2lkdGg6IDIycHg7IGhl aWdodDogMjJweDsKfQoua2QtZXZlbnQtaWNvbiAuaWNvbi1zdmcgeyB3aWR0aDogMThweDsgaGVp Z2h0OiAxOHB4OyB9Ci8qIEJlaSBMb2dvLUluaGFsdCAoQlZCL1Nwb3J0LVZlcmVpbnNsb2dvcykg d8OkY2hzdCBkZXIgQ29udGFpbmVyIG5hY2ggQmVkYXJmLAogICBkYW1pdCB6d2VpIExvZ29zICsg U2VwYXJhdG9yIG5lYmVuZWluYW5kZXIgcGFzc2VuLgogICBXaWNodGlnOiBgZGlzcGxheTogaW5s aW5lLWZsZXhgIHdpcmQgZXhwbGl6aXQgZXJ6d3VuZ2VuLCB3ZWlsIGVpbmUgc3DDpHRlcmUKICAg YC5rZC1ldmVudC1pY29uYC1SZWdlbCBhdWYgYGRpc3BsYXk6IGlubGluZS1ncmlkYCBvaG5lIGBn cmlkLXRlbXBsYXRlLWNvbHVtbnNgCiAgIHVtc3RlbGx0IHVuZCBkYW1pdCBiZWlkZSBMb2dvcyB2 ZXJ0aWthbCDDvGJlcmVpbmFuZGVyIHN0YXBlbHQuICovCi5rZC1ldmVudC1pY29uLmtkLWV2ZW50 LWxvZ29zIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICB3aWR0aDog YXV0byAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICBtaW4td2lk dGg6IDIycHg7CiAgICBnYXA6IDFweDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmtkLWV2 ZW50LXNvbmRlciB7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xMnM7 IH0KLmtkLWV2ZW50LXNvbmRlcjpob3ZlciB7IHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7IH0KLmtk LWV2ZW50LXdhcm51bmcgeyBhbmltYXRpb246IHB1bHNJY29uT3JhbmdlIDJzIGVhc2UtaW4tb3V0 IGluZmluaXRlOyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAycHggcmdiYSgyMzAsMTI2LDM0LDAu NSkpOyB9CkBrZXlmcmFtZXMgcHVsc0ljb25PcmFuZ2UgeyAwJSwxMDAlIHsgdHJhbnNmb3JtOiBz Y2FsZSgxKTsgfSA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpOyB9IH0KLmtkLWV2ZW50LWdl YnVydHN0YWcgeyBjdXJzb3I6IGhlbHA7IH0KLmtkLWV2ZW50cy1rbGlja2JhciB7IGN1cnNvcjog cG9pbnRlcjsgfQoKLmt6LXN0YWVya2UgewogICAgYmFja2dyb3VuZDogIzM0NDk1RTsKICAgIGNv bG9yOiAjRUNGMEYxOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc2l6ZTogMTBweDsK fQoKLmt6LXNjaGljaHRmb2xnZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwogICAgZm9udC1zaXplOiAxMHB4Owp9 CgovKiBGTEQ6IFJvdGF0aW9ucy1FZGl0b3ItVGFiZWxsZSAqLwoucm90YXRpb24tdGFiZWxsZSBp bnB1dCwgLnJvdGF0aW9uLXRhYmVsbGUgc2VsZWN0IHsKICAgIHBhZGRpbmc6IDJweCA0cHg7CiAg ICBmb250LXNpemU6IDExcHg7Cn0KLnJvdGF0aW9uLXRhYmVsbGUgdHIud29jaGVuLXRyZW5uZXIg dGQgewogICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWJnLXByaW1hcnkpOwp9Ci5yb3Rh dGlvbi10YWJlbGxlIC53b2NoZW4tYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeS1kYXJrKTsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBmb250LXdlaWdodDogNzAw OwogICAgcGFkZGluZzogMXB4IDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIG1hcmdp bi1yaWdodDogMnB4Owp9Ci5yb3RhdGlvbi10YWJlbGxlIC5yb3QtbWFya2VyLWxhYmVsIHsKICAg IGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDog MXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgdXNlci1z ZWxlY3Q6IG5vbmU7Cn0KLnJvdGF0aW9uLXRhYmVsbGUgLnJvdC1tYXJrZXItbGFiZWwgaW5wdXQg ewogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBtYXJnaW46IDA7CiAgICBj dXJzb3I6IHBvaW50ZXI7Cn0KCi8qIEZMRDogRFNNLVplaWxlIOKAlCBUb2dnbGUgb2IgVGFnIGlu IGV4dGVybmVtIERTTSBnZXBmbGVndCB3dXJkZS4KICAgU2l0enQgaW0gZWluaGVpdGxpY2hlbiBk dW5rbGVuIEhlYWRlci1CbG9jayAoa2VpbiBFaWdlbnRvbikuICovCi5rei1kc20gewogICAgYmFj a2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmlt YXJ5KTsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cn0KLyog RFNNLVplbGxlOiByb3QgbWl0IHdlacOfZW0gw5cgKERlZmF1bHQpIOKGkiBncsO8biBtaXQgd2Vp w59lbSDinJMgKGdlcGZsZWd0KS4KICAgRWlnZW5lIEZhcmItTG9naWssIE5JQ0hUIFRlaWwgZGVz IENELWJsYXVlbiBIZWFkZXItQmxvY2tzLiAqLwovKiBEU00tWmVsbGU6IHJvdCBtaXQgd2Vpw59l bSDDlyAoRGVmYXVsdCkg4oaSIGR1bmtlbGdyw7xuIG1pdCB3ZWnDn2VtIOKckyAoZ2VwZmxlZ3Qp LgogICBXZXJ0ZSBhdXMgYWRtaW4uanNvbi5oZWFkZXJLb25maWcuZHNtIHZpYSA6cm9vdC1DdXN0 b20tUHJvcHMgKEF1ZGl0LUl0ZXItRCwgMjAyNi0wNS0wNSkuCiAgIEhhcmRjb2RlcyBzaW5kIEZh bGxiYWNrLiAqLwoua2QtemVsbGUudGQtZHNtLXplbGxlIHsKICAgIGJhY2tncm91bmQ6IHZhcigt LWRzbS1uZ2VtLWJnLCAjOEIxQTFBKSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLWRzbS1u Z2VtLWZnLCAjRkZGRkZGKSAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiB2YXIoLS1kc20tbmdl bS1zaXplLCAxNHB4KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1kc20tbmdlbS13ZWlnaHQsIDcw MCk7CiAgICBmb250LXN0eWxlOiB2YXIoLS1kc20tbmdlbS1zdHlsZSwgbm9ybWFsKTsKICAgIGJv cmRlci10b3A6IHZhcigtLWRzbS1uZ2VtLWJ0LCBub25lKTsKICAgIGJvcmRlci1sZWZ0OiB2YXIo LS1kc20tbmdlbS1ibCwgbm9uZSk7CiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWRzbS1uZ2VtLWJy LCAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKSk7CiAgICBqdXN0aWZ5LWNvbnRl bnQ6IGNlbnRlcjsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICBjdXJzb3I6IHBvaW50ZXI7 CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwogICAgLXdlYmtpdC11c2VyLXNlbGVj dDogbm9uZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwp9Ci5rZC16ZWxsZS50ZC1kc20temVsbGUg LnRkLWRzbS1zeW0gewogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBwb2ludGVyLWV2ZW50czogbm9u ZTsKfQoua2QtemVsbGUudGQtZHNtLXplbGxlOmhvdmVyIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEu MTUpOyB9Ci5rZC16ZWxsZS50ZC1kc20temVsbGUudGQtZHNtLWFrdGl2IHsKICAgIGJhY2tncm91 bmQ6IHZhcigtLWRzbS1nZW0tYmcsICMxQjVFMjApICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogdmFy KC0tZHNtLWdlbS1mZywgI0ZGRkZGRikgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogdmFyKC0t ZHNtLWdlbS1zaXplLCAxNHB4KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1kc20tZ2VtLXdlaWdo dCwgNzAwKTsKICAgIGZvbnQtc3R5bGU6IHZhcigtLWRzbS1nZW0tc3R5bGUsIG5vcm1hbCk7CiAg ICBib3JkZXItdG9wOiB2YXIoLS1kc20tZ2VtLWJ0LCBub25lKTsKICAgIGJvcmRlci1sZWZ0OiB2 YXIoLS1kc20tZ2VtLWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdodDogdmFyKC0tZHNtLWdlbS1i ciwgMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCkpOwp9Ci5rZC16ZWxsZS50ZC1k c20temVsbGUudGQtZHNtLWFrdGl2OmhvdmVyIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMTUpOyB9 CgovKiBGTEQ6IFRhZ2VzZGF0ZW4tSGVhZGVyLVplaWxlbiAoVm9yZ2FiZSAvIFNvbGwgLyBGLUwg LyBTLUwgLyBVbnQtRiAvIFVudC1OKS4KICAgS2VpbmUgaGFydGVuIFRyZW5ubGluaWVuIG1laHIg 4oCUIGFsbGUgWmVpbGVuIHdpcmtlbiBhbHMgZWluIGR1bmtsZXIgQmxvY2suICovCi5rei10YWdl c2RhdGVuIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHZh cigtLXRleHQtb24tcHJpbWFyeSk7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBib3JkZXItYm90 dG9tOiBub25lOwp9Ci5rZC16ZWxsZS50ZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1i Zy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1z aXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWdu LWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9yZGVyLXJpZ2h0 OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsKICAgIGJvcmRlci1ib3R0b206 IG5vbmU7CiAgICBnYXA6IDNweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDsKfQovKiBWb3Jn YWJlLVNjaGljaHQtWmVsbGVuOiBQb2xpemVpLVN0YW5kYXJkIEY9R2VsYiwgUz1HcnVlbiwgTj1C bGF1LgogICBEZXplbnRlciBJbnNldC1Cb3JkZXIgZ2lidCBQaWxsZW4tTG9vayBzdGF0dCBCbG9j ay1PcHRpay4gKi8KLmtkLXplbGxlLnRkLXZvcmctZiB7CiAgICBiYWNrZ3JvdW5kOiAjQzlBOTRB OyBjb2xvcjogIzJFMUYwMDsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAs MCwwLDAuMTIpOwp9Ci5rZC16ZWxsZS50ZC12b3JnLXMgewogICAgYmFja2dyb3VuZDogIzRBOEI1 RTsgY29sb3I6ICNGRkZGRkY7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgw LDAsMCwwLjE4KTsKfQoua2QtemVsbGUudGQtdm9yZy1uIHsKICAgIGJhY2tncm91bmQ6ICMzRTVF OEI7IGNvbG9yOiAjRkZGRkZGOwogICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEo MCwwLDAsMC4xOCk7Cn0KLmtkLXplbGxlLnRkLXNvbGwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1w cmltYXJ5KTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSk7 IH0KCi8qIEYtTCAvIFMtTCAvIFVudC1GIC8gVW50LU46IENvdW50ZXIgd2VyZGVuIE5JQ0hUIGVp bmdlZmFlcmJ0IOKAlCBudXIgZGllCiAgIFN0YWVya2UtU29sbC1aZWxsZSBiZWtvbW10IHJvdC9n cnVlbiAoc2llaGUgLnRkLXNvbGwudGQtZXJmdWVsbHQtdGludCB1bmQKICAgLnRkLXNvbGwudGQt dW50ZXJiZXNldHp0IHVudGVuKS4gV2ljaHRpZzogZXhwbGl6aXQgZHVua2xlciBIZWFkZXItQmcs CiAgIHNvbnN0IHNjaGVpbnQgZGVyIGhlbGxlcmUgWmVpbGVuLVRpbnQgKHJnYmEgNSUpIGFscyBm YXN0LXdlaXNzIGR1cmNoLiAqLwoua2QtemVsbGUudGQtdW50ZXJiZXNldHp0LAoua2QtemVsbGUu dGQtZXJmdWVsbHQgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xv cjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCi8qIERl emVudGVyIFRhYmVsbGVucmFobWVuIGluIGRlbiBMYWdlLVplaWxlbiAoRi1MLCBTLUwsIFVudC1G LCBVbnQtTikg4oCUCiAgIGxlaWNodGUgVHJlbm5saW5pZW4gendpc2NoZW4gWmVsbGVuICsgWmVp bGVuLCBkYW1pdCBkaWUgQ291bnRlci1TcGFsdGVuCiAgIHZpc3VlbGwgc2VwYXJpZXJ0IHNpbmQu ICovCiN0ZC1mcnVlaC1sLXplaWxlIC5rZC16ZWxsZS50ZC16ZWxsZSwKI3RkLXNwYWV0LWwtemVp bGUgLmtkLXplbGxlLnRkLXplbGxlLAojdGQtdW50c3R1ZXR6LWYtemVpbGUgLmtkLXplbGxlLnRk LXplbGxlLAojdGQtdW50c3R1ZXR6LW4temVpbGUgLmtkLXplbGxlLnRkLXplbGxlIHsKICAgIGJv cmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7CiAgICBib3Jk ZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTsKfQovKiBLb3Jy ZXNwb25kaWVyZW5kZXIgUmFobWVuIGFtIGxpbmtlbiBMYWJlbC1Db250YWluZXIgZnVlciBkaWUg Z2xlaWNoZW4gWmVpbGVuICovCiNrb3BmLXRhZ2VzZGF0ZW4tbGlua3MgLmtvcGYtemVpbGUudGwt cm93LWZydWVoLWwsCiNrb3BmLXRhZ2VzZGF0ZW4tbGlua3MgLmtvcGYtemVpbGUudGwtcm93LXNw YWV0LWwsCiNrb3BmLXRhZ2VzZGF0ZW4tbGlua3MgLmtvcGYtemVpbGUudGwtcm93LXVudHN0dWV0 ei1mLAoja29wZi10YWdlc2RhdGVuLWxpbmtzIC5rb3BmLXplaWxlLnRsLXJvdy11bnRzdHVldHot biB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEw KTsKfQoudGQtc29sbC1kaXZpZGVyIHsKICAgIG9wYWNpdHk6IDAuNTA7CiAgICBmb250LXdlaWdo dDogNjAwOwogICAgcGFkZGluZzogMCAzcHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1 LCAwLjU1KTsKICAgIGZvbnQtc2l6ZTogMTBweDsKfQoudGQtc29sbC16aWVsIHsgb3BhY2l0eTog MC44NTsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKLnRkLW1hcmtlciB7CiAgICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7CiAgICBwYWRkaW5nOiAwIDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAg IG1hcmdpbi1sZWZ0OiAycHg7CiAgICBsaW5lLWhlaWdodDogMS4xOwp9Ci8qIE1vZGk6IElubGlu ZS1NYXJrZXIgaW0gcmVjaHRlbiBUZWlsIGRlciBIZWFkZXItWmVsbGUuCiAgIEtFSU4gcG9zaXRp b246YWJzb2x1dGUgbWVociDigJQgZGFzIGhhdHRlIGRlbiBDb3VudGVyIHVlYmVyZGVja3QuICov Ci50ZC1tYXJrZXItcGlsbCB7IHBhZGRpbmc6IDAgNHB4OyBib3JkZXItcmFkaXVzOiAzcHg7IH0K LnRkLW1hcmtlci12b2xsIHsKICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBib3JkZXItcmFkaXVz OiA0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4xNSk7CiAgICBtYXJnaW4t bGVmdDogNHB4Owp9Ci50ZC1tYXJrZXItbnVyLWJ1Y2hzdGFiZSB7CiAgICBiYWNrZ3JvdW5kOiB0 cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICBw YWRkaW5nOiAwIDFweDsKICAgIGJvcmRlci1yYWRpdXM6IDA7Cn0KLnRkLW1hcmtlci12ZXJzdGVj a3QgeyBkaXNwbGF5OiBub25lOyB9Cgoua3otc2YtZXJzdGUgewogICAgYm9yZGVyLXRvcDogMXB4 IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwp9Cgoua2wtbGFiZWwgewogICAgZGlzcGxheTog aW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDcwcHg7CiAgICBtaW4td2lkdGg6IDcwcHg7CiAgICBm b250LXdlaWdodDogNjAwOwogICAgY29sb3I6IGluaGVyaXQ7CiAgICBvcGFjaXR5OiAwLjg7Cn0K Ci5rbC13ZXJ0IHsKICAgIGZsZXg6IDE7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1v dmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgovKiBOYW1lbmxp c3RlICovCiNuYW1lbi1saXN0ZSB7CiAgICBmbGV4OiAxOwogICAgb3ZlcmZsb3cteTogYXV0bzsK ICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKfQoKLm5hbWVuLXplaWxlIHsKICAgIGRpc3BsYXk6IGZs ZXg7CiAgICBoZWlnaHQ6IHZhcigtLXplbGxlLWhvZWhlKTsKICAgIGJvcmRlci1ib3R0b206IDFw eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAg IGZvbnQtc2l6ZTogMTFweDsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgIHBh ZGRpbmc6IDAgNHB4Owp9Ci5uYW1lbi16ZWlsZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJn LWhvdmVyKTsgfQoKLm56LW5hbWUgewogICAgd2lkdGg6IDExMHB4OwogICAgbWluLXdpZHRoOiAx MTBweDsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIG92ZXJm bG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNl OiBub3dyYXA7Cn0KLm56LW9lIHsKICAgIHdpZHRoOiAyOHB4OwogICAgbWluLXdpZHRoOiAyOHB4 OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjog dmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9Ci5uei1ncnVwcGUgewogICAgd2lkdGg6IDE2cHg7CiAg ICBtaW4td2lkdGg6IDE2cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LXNpemU6 IDlweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7Cn0KLm56LWRuciB7CiAgICBmbGV4OiAxOwogICAg Zm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBwYWRkaW5n OiAwIDRweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNp czsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi8qIEdydXBwZW4tQmFkZ2UgKEFkbWluLVRh YmVsbGUpICovCi5ncnVwcGVuLWJhZGdlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFk ZGluZzogMXB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEwcHg7IGZvbnQt d2VpZ2h0OiA2MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7Cn0KCgovKiA9PT09PSBTY3Jv bGxiYXJlciByZWNodGVyIEJlcmVpY2ggPT09PT0gKi8KI2dyaWQtc2Nyb2xsLWNvbnRhaW5lciB7 CiAgICBmbGV4OiAxOwogICAgb3ZlcmZsb3c6IGF1dG87CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7 Cn0KCi8qIEtvcGZiZXJlaWNoIHJlY2h0cyAoc3RpY2t5KSAqLwoja29wZi1yZWNodHMgewogICAg cG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogMDsKICAgIHotaW5kZXg6IDU7CiAgICBib3JkZXIt Ym90dG9tOiAycHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBiYWNrZ3JvdW5kOiB2 YXIoLS1iZy1jYXJkKTsKfQoKLmtvcGYtZGF0ZW4temVpbGUgewogICAgZGlzcGxheTogZmxleDsK ICAgIGhlaWdodDogdmFyKC0ta29wZi16ZWlsZW4taG9laGUpOwp9CgovKiBEYXR1bS1aZWxsZW4g aW0gS29wZiAqLwoua2QtemVsbGUgewogICAgd2lkdGg6IHZhcigtLXplbGxlLWJyZWl0ZSk7CiAg ICBtaW4td2lkdGg6IHZhcigtLXplbGxlLWJyZWl0ZSk7CiAgICBkaXNwbGF5OiBmbGV4OwogICAg YWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9y ZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGZvbnQtc2l6ZTog MTBweDsKfQoKLyogWmVpbGUgMTogRGF0dW0gKi8KI2RhdHVtLXplaWxlLXRhZyAua2QtemVsbGUg ewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xvcjogdmFyKC0tdGV4 dC1vbi1wcmltYXJ5KTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDEwcHg7 CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKfQoKLyogWmVp bGUgMjogV29jaGVudGFnICovCiNkYXR1bS16ZWlsZS13b2NoZW50YWcgLmtkLXplbGxlIHsKICAg IGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnktZGFyayk7CiAgICBjb2xvcjogdmFyKC0tdGV4 dC1vbi1wcmltYXJ5KTsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgYm9yZGVyLXJpZ2h0LWNvbG9y OiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7Cn0KCi8qIFplaWxlIDM6IEZlcmllbi9GVC1NYXJraWVy dW5nICovCiNkYXR1bS16ZWlsZS1mZXJpZW4gLmtkLXplbGxlIHsKICAgIGJhY2tncm91bmQ6IHZh cigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTsKICAgIGZv bnQtc2l6ZTogOHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGJvcmRlci1yaWdodC1jb2xv cjogcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwp9Ci8qIEZlcmllbi1TdWItWmVpbGU6IFRleHQtSW5k aWthdG9yZW4gKEZUIC8gTlMpLgogICBDdXN0b20tUHJvcGVydGllcyAoLS1rZC1mZXJpZW4tZmcs IC0ta2QtZmVpZXJ0YWctZmcpIGxhc3NlbiBPdmVycmlkZSBhdXMKICAgaGVhZGVyS29uZmlnLnRh Z01hcmtlciB6dSDigJQgSGFyZGNvZGVzIHNpbmQgRmFsbGJhY2suICovCiNkYXR1bS16ZWlsZS1m ZXJpZW4gLmtkLWZlaWVydGFnIHsKICAgIGNvbG9yOiB2YXIoLS1rZC1mZWllcnRhZy1mZywgI2Zm OGE4MCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1rZC1mZWllcnRhZy1iZywgdHJhbnNwYXJlbnQp OwogICAgZm9udC1zaXplOiB2YXIoLS1rZC1mZWllcnRhZy1zaXplLCBpbmhlcml0KTsKICAgIGZv bnQtd2VpZ2h0OiB2YXIoLS1rZC1mZWllcnRhZy13ZWlnaHQsIGluaGVyaXQpOwogICAgZm9udC1z dHlsZTogdmFyKC0ta2QtZmVpZXJ0YWctc3R5bGUsIG5vcm1hbCk7Cn0KI2RhdHVtLXplaWxlLWZl cmllbiAua2QtZmVyaWVuIHsKICAgIGNvbG9yOiB2YXIoLS1rZC1mZXJpZW4tZmcsICNhNWQ2YTcp OwogICAgYmFja2dyb3VuZDogdmFyKC0ta2QtZmVyaWVuLWJnLCB0cmFuc3BhcmVudCk7CiAgICBm b250LXNpemU6IHZhcigtLWtkLWZlcmllbi1zaXplLCBpbmhlcml0KTsKICAgIGZvbnQtd2VpZ2h0 OiB2YXIoLS1rZC1mZXJpZW4td2VpZ2h0LCBpbmhlcml0KTsKICAgIGZvbnQtc3R5bGU6IHZhcigt LWtkLWZlcmllbi1zdHlsZSwgbm9ybWFsKTsKfQoKLyogWmVpbGUgNDogU3TDpHJrZSAqLwojc3Rh ZXJrZS16ZWlsZSAua2QtemVsbGUgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWln aHQ6IDcwMDsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1 NSwyNTUsMjU1LDAuMTUpOwp9Ci5zdGFlcmtlLW9rIHsgYmFja2dyb3VuZDogIzI3ODk2RDsgfQou c3RhZXJrZS13YXJudW5nIHsgYmFja2dyb3VuZDogI0IwM0EyRTsgYW5pbWF0aW9uOiBwdWxzUm90 IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9CkBrZXlmcmFtZXMgcHVsc1JvdCB7IDAlLDEwMCUg eyBvcGFjaXR5OjE7IH0gNTAlIHsgb3BhY2l0eTowLjc7IH0gfQoKLyogU2NoaWNodGZvbGdlLVpl aWxlbiAqLwojc2NoaWNodGZvbGdlLXJlY2h0cyAua29wZi1kYXRlbi16ZWlsZSAua2QtemVsbGUg ewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgY29sb3I6IHZhcigtLXRl eHQtc2Vjb25kYXJ5KTsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsK ICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQojc2NoaWNodGZv bGdlLXJlY2h0cyAua29wZi1kYXRlbi16ZWlsZTpmaXJzdC1jaGlsZCAua2QtemVsbGUgewogICAg Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwp9CgovKiBUYWdlc3R5 cGVuIGltIEtvcGYg4oCUIHN0YXJrZXIgS29udHJhc3QuCiAgIFdlcnRlIGF1cyBhZG1pbi5qc29u LmhlYWRlcktvbmZpZy50YWdNYXJrZXIgd2VyZGVuIHZpYSBoZWFkZXJLb25maWdTdGlsZXNBbndl bmRlbgogICAoanMvZ3JpZC9yZW5kZXIuanMpIGFscyBDU1MtQ3VzdG9tLVByb3BlcnRpZXMgYXVm IDpyb290IGdlc2V0enQuCiAgIEhhcmRjb2RlcyBoaWVyIHNpbmQgRmFsbGJhY2stRGVmYXVsdC4g KEF1ZGl0LUl0ZXItRCwgMjAyNi0wNS0wNSkgKi8KLmtkLXdvY2hlbmVuZGUgewogICAgYmFja2dy b3VuZDogdmFyKC0ta2Qtd29jaGVuZW5kZS1iZywgIzNENTg3NCkgIWltcG9ydGFudDsKICAgIGNv bG9yOiB2YXIoLS1rZC13b2NoZW5lbmRlLWZnLCAjREZFOEYwKSAhaW1wb3J0YW50OwogICAgZm9u dC1zaXplOiB2YXIoLS1rZC13b2NoZW5lbmRlLXNpemUsIGluaGVyaXQpOwogICAgZm9udC13ZWln aHQ6IHZhcigtLWtkLXdvY2hlbmVuZGUtd2VpZ2h0LCBpbmhlcml0KTsKICAgIGZvbnQtc3R5bGU6 IHZhcigtLWtkLXdvY2hlbmVuZGUtc3R5bGUsIG5vcm1hbCk7CiAgICBib3JkZXItdG9wOiB2YXIo LS1rZC13b2NoZW5lbmRlLWJ0LCBub25lKTsKICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1rZC13b2No ZW5lbmRlLWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdodDogdmFyKC0ta2Qtd29jaGVuZW5kZS1i ciwgbm9uZSk7Cn0KLmtkLWZlaWVydGFnLWJnIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWtkLWZl aWVydGFnLWJnLCAjOEIxQTFBKSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLWtkLWZlaWVy dGFnLWZnLCAjRjhEMEQwKSAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiB2YXIoLS1rZC1mZWll cnRhZy1zaXplLCBpbmhlcml0KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1rZC1mZWllcnRhZy13 ZWlnaHQsIGluaGVyaXQpOwogICAgZm9udC1zdHlsZTogdmFyKC0ta2QtZmVpZXJ0YWctc3R5bGUs IG5vcm1hbCk7CiAgICBib3JkZXItdG9wOiB2YXIoLS1rZC1mZWllcnRhZy1idCwgbm9uZSk7CiAg ICBib3JkZXItbGVmdDogdmFyKC0ta2QtZmVpZXJ0YWctYmwsIG5vbmUpOwogICAgYm9yZGVyLXJp Z2h0OiB2YXIoLS1rZC1mZWllcnRhZy1iciwgbm9uZSk7Cn0KCi8qIEtsaWNrYmFyZSBGZWllcnRh Zy9GZXJpZW4tWmVsbGU6IEN1cnNvciArIGRlemVudGVyIEhvdmVyLUVmZmVrdCAqLwoua2QtemVs bGUua2QtdGVybWluLWtsaWNrYmFyIHsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBmaWx0 ZXIgMC4xMnM7IH0KLmtkLXplbGxlLmtkLXRlcm1pbi1rbGlja2Jhcjpob3ZlciB7IGZpbHRlcjog YnJpZ2h0bmVzcygxLjE4KTsgfQoua2QtZmVpZXJ0YWctd2ljaHRpZyB7CiAgICBiYWNrZ3JvdW5k OiB2YXIoLS1rZC1mZWllcnRhZy13aWNodGlnLWJnLCAjQzAwMDAwKSAhaW1wb3J0YW50OwogICAg Y29sb3I6IHZhcigtLWtkLWZlaWVydGFnLXdpY2h0aWctZmcsICNGRkZGRTApICFpbXBvcnRhbnQ7 CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggI0ZGRDcwMCAhaW1wb3J0YW50OwogICAg Zm9udC1zaXplOiB2YXIoLS1rZC1mZWllcnRhZy13aWNodGlnLXNpemUsIGluaGVyaXQpOwogICAg Zm9udC13ZWlnaHQ6IHZhcigtLWtkLWZlaWVydGFnLXdpY2h0aWctd2VpZ2h0LCA4MDApICFpbXBv cnRhbnQ7CiAgICBmb250LXN0eWxlOiB2YXIoLS1rZC1mZWllcnRhZy13aWNodGlnLXN0eWxlLCBu b3JtYWwpOwogICAgYm9yZGVyLXRvcDogdmFyKC0ta2QtZmVpZXJ0YWctd2ljaHRpZy1idCwgbm9u ZSk7CiAgICBib3JkZXItbGVmdDogdmFyKC0ta2QtZmVpZXJ0YWctd2ljaHRpZy1ibCwgbm9uZSk7 CiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWtkLWZlaWVydGFnLXdpY2h0aWctYnIsIG5vbmUpOwp9 Ci5rZC1oZXV0ZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1rZC1oZXV0ZS1iZywgdmFyKC0tdGFn LWhldXRlKSkgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1rZC1oZXV0ZS1mZywgI2ZmZikg IWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogdmFyKC0ta2QtaGV1dGUtc2l6ZSwgaW5oZXJpdCk7 CiAgICBmb250LXdlaWdodDogdmFyKC0ta2QtaGV1dGUtd2VpZ2h0LCBpbmhlcml0KTsKICAgIGZv bnQtc3R5bGU6IHZhcigtLWtkLWhldXRlLXN0eWxlLCBub3JtYWwpOwogICAgYm9yZGVyLXRvcDog dmFyKC0ta2QtaGV1dGUtYnQsIG5vbmUpOwogICAgYm9yZGVyLWxlZnQ6IHZhcigtLWtkLWhldXRl LWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdodDogdmFyKC0ta2QtaGV1dGUtYnIsIG5vbmUpOwp9 CgovKiBCLjYgVmVyYmluZGxpY2hrZWl0cy1GYXJibGVpc3RlIGFtIHVudGVyZW4gUmFuZCBkZXIg RGF0dW1zLUhlYWRlci1aZWxsZS4KICAgUm90ID0gaW5uZXJoYWxiIGRlcyBWZXJiaW5kbGljaGtl aXRzZmVuc3RlcnMgKGbDvHIgcmVndWxhZXJlIFVzZXIgZ2VzcGVycnQpLgogICBHcsO8biA9IGF1 w59lcmhhbGIgKGZyZWkgcGxhbmJhcikuIEtsYXNzZSB3aXJkIGF1ZiBkaWUgRmVyaWVuLVplaWxl IGdlc2V0enQuICovCi5rZC16ZWxsZS5rZC12ZXJiaW5kbGljaC1nZXNwZXJydCwKLmtkLXplbGxl LmtkLXZlcmJpbmRsaWNoLW9mZmVuIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5rZC16ZWxsZS5r ZC12ZXJiaW5kbGljaC1nZXNwZXJydDo6YWZ0ZXIsCi5rZC16ZWxsZS5rZC12ZXJiaW5kbGljaC1v ZmZlbjo6YWZ0ZXIgewogICAgY29udGVudDogJyc7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAg ICBsZWZ0OiAzcHg7IHJpZ2h0OiAzcHg7IGJvdHRvbTogMDsKICAgIGhlaWdodDogM3B4OwogICAg Ym9yZGVyLXJhZGl1czogMnB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLmtkLXplbGxl LmtkLXZlcmJpbmRsaWNoLWdlc3BlcnJ0OjphZnRlciB7IGJhY2tncm91bmQ6IHZhcigtLXZmLXJv dCwgICAjYzAzOTJiKTsgfQoua2QtemVsbGUua2QtdmVyYmluZGxpY2gtb2ZmZW46OmFmdGVyICAg IHsgYmFja2dyb3VuZDogdmFyKC0tdmYtZ3J1ZW4sICMyN2FlNjApOyB9CgpbZGF0YS10aGVtZT0i bmlnaHQiXSAua2Qtd29jaGVuZW5kZSB7IGJhY2tncm91bmQ6ICMxRjMwNDUgIWltcG9ydGFudDsg Y29sb3I6ICNBOEMwRDggIWltcG9ydGFudDsgfQoKLyogV29jaGVuLVRyZW5uZXI6IHZlcnRpa2Fs ZXIgU3RyaWNoIHp3aXNjaGVuIFdvY2hlbi1XZWNoc2VsIChTbyAtPiBNbykg4oCUIG1hcmtpZXJ0 IFdvY2hlbi1HcmVuemUgKi8KLmtvcGYtZGF0ZW4temVpbGUgLmtkLXplbGxlLmtkLXdvY2hlbmVu ZGU6bGFzdC1jaGlsZCwKLmtkLXplaWxlIC5rZC16ZWxsZS5rZC13b2NoZW5lbmRlOmxhc3QtY2hp bGQgewogICAgLyogbGV0enRlcyBXRS1UYWcgKFNvKSBkZXIgV29jaGUgYmVrb21tdCByZWNodGVu IFN0cmljaCBhbHMgV29jaGVuLVNjaG5pdHQgKi8KICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlk IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7Cn0KLmtvcGYtZGF0ZW4temVpbGUgLmtkLXplbGxl LmtkLXdvY2hlbmVuZGUgKyAua2QtemVsbGU6bm90KC5rZC13b2NoZW5lbmRlKSwKLmtkLXplaWxl IC5rZC16ZWxsZS5rZC13b2NoZW5lbmRlICsgLmtkLXplbGxlOm5vdCgua2Qtd29jaGVuZW5kZSkg ewogICAgLyogZXJzdGUgV2Vya3RhZy1aZWxsZSBuYWNoIFdFLUJsb2NrOiBsaW5rZXIgVHJlbm5z dHJpY2ggKFdvY2hlbi1BbmZhbmcpICovCiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigt LWJvcmRlci1jb2xvcik7Cn0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmtkLWZlaWVydGFnLWJnIHsg YmFja2dyb3VuZDogIzUwMTgxOCAhaW1wb3J0YW50OyBjb2xvcjogI0U4QTBBMCAhaW1wb3J0YW50 OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5rZC1mZWllcnRhZy13aWNodGlnIHsgYmFja2dyb3Vu ZDogIzgwMjAyMCAhaW1wb3J0YW50OyBjb2xvcjogI0ZGRThBMCAhaW1wb3J0YW50OyB9CgovKiBT b25kZXJ0YWdlIOKAlCBIaW53ZWlzIChibGF1KSAvIFdhcm51bmcgKG9yYW5nZSwgcHVsc2llcmVu ZCkgKi8KLmtkLXNvbmRlcnRhZy1oaW53ZWlzIHsgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAg IzRhOTBlMjsgfQoua2Qtc29uZGVydGFnLXdhcm51bmcgeyBib3gtc2hhZG93OiBpbnNldCAwIC0z cHggMCAjZTY3ZTIyOyBhbmltYXRpb246IHB1bHNPcmFuZ2UgM3MgZWFzZS1pbi1vdXQgaW5maW5p dGU7IH0KQGtleWZyYW1lcyBwdWxzT3JhbmdlIHsgMCUsMTAwJSB7IGJveC1zaGFkb3c6IGluc2V0 IDAgLTNweCAwICNlNjdlMjI7IH0gNTAlIHsgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAgI2Zm OWU0MiwgMCAwIDZweCByZ2JhKDIzMCwxMjYsMzQsMC40KTsgfSB9CgovKiBGZXJpZW4tL0ZlaWVy dGFnLS9Tb25kZXJtYXJrZXIgaW4gWmVpbGUgMyAqLwojZGF0dW0temVpbGUtZmVyaWVuIC5rZC1z b25kZXItbWFyay1oaW53ZWlzIHsgY29sb3I6ICM3ZWI4ZGE7IGZvbnQtd2VpZ2h0OiA3MDA7IH0K I2RhdHVtLXplaWxlLWZlcmllbiAua2Qtc29uZGVyLW1hcmstd2FybnVuZyB7IGNvbG9yOiAjZmZi ODY2OyBmb250LXdlaWdodDogNzAwOyBhbmltYXRpb246IHB1bHNSb3QgMnMgZWFzZS1pbi1vdXQg aW5maW5pdGU7IH0KCi8qIEJhZGdlcyBpbiBLb3BmemVpbGUgKERhdHVtKSDigJQgR2VidXJ0c3Rh ZywgSGlud2VpcywgV2FybnVuZyAqLwoua2QtemVsbGUgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0K LmtkLWJhZGdlcyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDFweDsKICAgIHJp Z2h0OiAxcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxcHg7CiAgICBwb2ludGVyLWV2 ZW50czogYXV0bzsKfQoua2QtYmFkZ2UgewogICAgZm9udC1zaXplOiA4cHg7CiAgICBsaW5lLWhl aWdodDogMTsKICAgIGN1cnNvcjogaGVscDsKICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHgg MXB4IHJnYmEoMCwwLDAsMC41KSk7Cn0KLmtkLWJhZGdlLWdiIHsgZm9udC1zaXplOiA5cHg7IH0K LmtkLWJhZGdlLXdhcm51bmcgeyBjb2xvcjogI2ZmOWU0MjsgZm9udC13ZWlnaHQ6IDcwMDsgfQou a2QtYmFkZ2UtaGlud2VpcyB7IGNvbG9yOiAjN2ViOGRhOyBmb250LXdlaWdodDogNzAwOyB9Cgov KiBTY2hpY2h0Zm9sZ2UtRmFyYmVuIChkZXplbnRlIEVpbmbDpHJidW5nIGplIFJvdGF0aW9uKSAq Lwojc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtYWJjIHsgYmFja2dyb3VuZDogI0U4RjFFOCAhaW1w b3J0YW50OyBjb2xvcjogIzJkNWEzZCAhaW1wb3J0YW50OyB9CiNzY2hpY2h0Zm9sZ2UtcmVjaHRz IC5zZi1iY2EgeyBiYWNrZ3JvdW5kOiAjRThFREY1ICFpbXBvcnRhbnQ7IGNvbG9yOiAjMmQ0Mzcw ICFpbXBvcnRhbnQ7IH0KI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLWNhYiB7IGJhY2tncm91bmQ6 ICNGNUU4RTggIWltcG9ydGFudDsgY29sb3I6ICM2YjJkMmQgIWltcG9ydGFudDsgfQojc2NoaWNo dGZvbGdlLXJlY2h0cyAuc2YtcG9vbCB7IGJhY2tncm91bmQ6ICNFQ0VDRUMgIWltcG9ydGFudDsg Y29sb3I6ICM2NjYgIWltcG9ydGFudDsgZm9udC1zdHlsZTogaXRhbGljOyB9CltkYXRhLXRoZW1l PSJuaWdodCJdICNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1hYmMgeyBiYWNrZ3JvdW5kOiAjMWMz MDI0ICFpbXBvcnRhbnQ7IGNvbG9yOiAjOGZkMGEwICFpbXBvcnRhbnQ7IH0KW2RhdGEtdGhlbWU9 Im5pZ2h0Il0gI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLWJjYSB7IGJhY2tncm91bmQ6ICMxYzI0 MzYgIWltcG9ydGFudDsgY29sb3I6ICM4ZmIwZTAgIWltcG9ydGFudDsgfQpbZGF0YS10aGVtZT0i bmlnaHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtY2FiIHsgYmFja2dyb3VuZDogIzMwMWMx YyAhaW1wb3J0YW50OyBjb2xvcjogI2UwYTBhMCAhaW1wb3J0YW50OyB9CltkYXRhLXRoZW1lPSJu aWdodCJdICNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1wb29sIHsgYmFja2dyb3VuZDogIzJhMmEy YSAhaW1wb3J0YW50OyBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9CgovKiBSaHl0aG11cy1Wb3Jz Y2hhdSBpbSBBZG1pbi1UYWIgKi8KLnNmLXZvcnNjaGF1IHsKICAgIGRpc3BsYXk6IGlubGluZS1i bG9jazsKICAgIHBhZGRpbmc6IDJweCA1cHg7CiAgICBtYXJnaW46IDFweDsKICAgIGZvbnQtc2l6 ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAg ICBmb250LWZhbWlseTogbW9ub3NwYWNlOwp9Ci5zZi12b3JzY2hhdS5zZi1hYmMgeyBiYWNrZ3Jv dW5kOiAjRDhFOEQ4OyBjb2xvcjogIzJkNWEzZDsgfQouc2Ytdm9yc2NoYXUuc2YtYmNhIHsgYmFj a2dyb3VuZDogI0Q4RTBGMDsgY29sb3I6ICMyZDQzNzA7IH0KLnNmLXZvcnNjaGF1LnNmLWNhYiB7 IGJhY2tncm91bmQ6ICNGMEQ4RDg7IGNvbG9yOiAjNmIyZDJkOyB9Ci5zZi12b3JzY2hhdS5zZi12 b3JzY2hhdS1wb29sIHsgYmFja2dyb3VuZDogI0UwRTBFMDsgY29sb3I6ICM2NjY7IGZvbnQtc3R5 bGU6IGl0YWxpYzsgcGFkZGluZzogM3B4IDEwcHg7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLnNm LXZvcnNjaGF1LnNmLWFiYyB7IGJhY2tncm91bmQ6ICMxYzMwMjQ7IGNvbG9yOiAjOGZkMGEwOyB9 CltkYXRhLXRoZW1lPSJuaWdodCJdIC5zZi12b3JzY2hhdS5zZi1iY2EgeyBiYWNrZ3JvdW5kOiAj MWMyNDM2OyBjb2xvcjogIzhmYjBlMDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuc2Ytdm9yc2No YXUuc2YtY2FiIHsgYmFja2dyb3VuZDogIzMwMWMxYzsgY29sb3I6ICNlMGEwYTA7IH0KW2RhdGEt dGhlbWU9Im5pZ2h0Il0gLnNmLXZvcnNjaGF1LnNmLXZvcnNjaGF1LXBvb2wgeyBiYWNrZ3JvdW5k OiAjMmEyYTJhOyBjb2xvcjogIzk5OTsgfQoKLyogPT09PT0gRGF0ZW5ncmlkID09PT09ICovCiNn cmlkLWRhdGVuIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfQoKLmdy aWQtemVpbGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogdmFyKC0temVsbGUtaG9l aGUpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0K CgouZ3JpZC16ZWxsZSB7CiAgICB3aWR0aDogdmFyKC0temVsbGUtYnJlaXRlKTsKICAgIG1pbi13 aWR0aDogdmFyKC0temVsbGUtYnJlaXRlKTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1p dGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3JkZXItcmln aHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZm9udC1zaXplOiA5cHg7CiAg ICBmb250LXdlaWdodDogNjAwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjog b3BhY2l0eSAwLjFzOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dy YXA7Cn0KLmdyaWQtemVsbGU6aG92ZXIgeyBvcGFjaXR5OiAwLjg7IG91dGxpbmU6IDJweCBzb2xp ZCB2YXIoLS10ZXh0LWhlYWRpbmcpOyBvdXRsaW5lLW9mZnNldDogLTJweDsgei1pbmRleDogMTsg fQovKiBQaGFzZSBIMTogcG9zaXRpb246cmVsYXRpdmUgaXN0IFZvcmF1c3NldHp1bmcgZsO8ciBk aWUga29ycmVrdGUgUG9zaXRpb25pZXJ1bmcKICAgZGVzIEF1dG9GaWxsLUhhbmRsZXMgKHNvbnN0 IGxhbmRldCBlcyBhbSBuYWVjaHN0aG9laGVyZW4gcG9zaXRpb25pZXJ0ZW4gVm9yZmFocikuICov Ci5ncmlkLXplbGxlIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5ncmlkLXplbGxlLmdlc3BlcnJ0 IHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgb3BhY2l0eTogMC42OyB9CgovKiBGTEQ6IFBmbGljaHQt U2V0enVuZyBnZWdlbiBXdW5zY2gg4oCUIGdlZGFlbXBmdGVzIEVjay1EcmVpZWNrIG9iZW4gcmVj aHRzICovCi5ncmlkLXplbGxlLXBmbGljaHQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAg Ym94LXNoYWRvdzogaW5zZXQgLTJweCAycHggMCAwICNCMDhBM0Y7Cn0KLmdyaWQtemVsbGUtcGZs aWNodDo6YWZ0ZXIgewogICAgY29udGVudDogJyc7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAg ICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIHdpZHRoOiAwOwogICAgaGVpZ2h0OiAwOwogICAg Ym9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIGJvcmRlci13aWR0aDogMCA3cHggN3B4IDA7CiAgICBi b3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNCMDhBM0YgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7 CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZ3JpZC16 ZWxsZS1wZmxpY2h0IHsgYm94LXNoYWRvdzogaW5zZXQgLTJweCAycHggMCAwICNDOUEzNEY7IH0K W2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdyaWQtemVsbGUtcGZsaWNodDo6YWZ0ZXIgeyBib3JkZXIt cmlnaHQtY29sb3I6ICNDOUEzNEY7IH0KCi8qIFBoYXNlIEE6IFBlc3NpbWlzdGljIENlbGwtTG9j ayDigJQgTGl2ZS1JbmRpY2F0b3IgKG9yYW5nZSBSYW5kIG1pdCBEb3BwZWwtQWt6ZW50KSAqLwou Z3JpZC16ZWxsZS1sb2NrZWQgewogICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZhcmJlLXdh cm51bmcpOwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBjdXJzb3I6IG5vdC1hbGxvd2Vk OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5ncmlkLXplbGxlLWxvY2tlZDo6YmVmb3JlIHsK ICAgIGNvbnRlbnQ6ICcnOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOyBsZWZ0 OiAwOwogICAgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1m YXJiZS13YXJudW5nKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMjsK fQouZ3JpZC16ZWxsZS1sb2NrZWQ6aG92ZXIgewogICAgb3BhY2l0eTogMTsKICAgIG91dGxpbmU6 IDJweCBzb2xpZCB2YXIoLS1mYXJiZS13YXJudW5nKTsKfQoKLyogUGhhc2UgQzogU2VsZWt0aW9u ICsgQXV0b0ZpbGwtRG5EICovCi5ncmlkLXplbGxlLXNlbGVrdGllcnQgewogICAgb3V0bGluZTog M3B4IHNvbGlkICMxNTY1QzA7CiAgICBvdXRsaW5lLW9mZnNldDogLTNweDsKICAgIHotaW5kZXg6 IDE7Cn0KLmdyaWQtemVsbGUuZG5kLXppZWwgewogICAgb3V0bGluZTogMnB4IGRhc2hlZCAjMTU2 NUMwOwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5l YXItZ3JhZGllbnQocmdiYSgyMSwxMDEsMTkyLDAuMTIpLCByZ2JhKDIxLDEwMSwxOTIsMC4xMikp Owp9Ci5hdXRvZmlsbC1oYW5kbGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9t OiAtMnB4OyByaWdodDogLTJweDsKICAgIHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7CiAgICBi YWNrZ3JvdW5kOiAjMTU2NUMwOwogICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsKICAgIGJvcmRl ci1yYWRpdXM6IDFweDsKICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgei1pbmRleDogNTsKICAg IGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7CiAgICB0cmFuc2l0aW9uOiB0 cmFuc2Zvcm0gLjA4cyBlYXNlOwp9Ci5hdXRvZmlsbC1oYW5kbGU6aG92ZXIgeyB0cmFuc2Zvcm06 IHNjYWxlKDEuNSk7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdyaWQtemVsbGUtc2VsZWt0aWVy dCB7IG91dGxpbmUtY29sb3I6ICM1QjlCRDU7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdyaWQt emVsbGUuZG5kLXppZWwgeyBvdXRsaW5lLWNvbG9yOiAjNUI5QkQ1OyB9CltkYXRhLXRoZW1lPSJu aWdodCJdIC5hdXRvZmlsbC1oYW5kbGUgeyBiYWNrZ3JvdW5kOiAjNUI5QkQ1OyB9CgovKiBNb2Rh bC1FbnR3dXJmLVJlc3RvcmUtQmFubmVyIChhdXMgVkkzIMO8YmVybm9tbWVuKSAqLwoubW9kYWwt ZW50d3VyZi1iYW5uZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50 ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICBtYXJnaW4tYm90 dG9tOiAxNnB4OwogICAgYmFja2dyb3VuZDogcmdiYSg3NCwxNDQsMjI2LDAuMTApOwogICAgYm9y ZGVyOiAxcHggc29saWQgdmFyKC0tZmFyYmUtaW5mbyk7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7 CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAg IGZsZXgtd3JhcDogd3JhcDsKfQoubWViLWljb24geyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVp Z2h0OiAxOyB9Ci5tZWItdGV4dCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMjAwcHg7IH0KW2RhdGEt dGhlbWU9Im5pZ2h0Il0gLm1vZGFsLWVudHd1cmYtYmFubmVyIHsgYmFja2dyb3VuZDogcmdiYSg3 NCwxNDQsMjI2LDAuMTgpOyB9CgovKiBQaGFzZSBINDogQ3VzdG9tLUtvbnRleHRtZW7DvCAqLwoj a29udGV4dG1lbnUgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgei1pbmRleDogMTAwMDsKICAg IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t Ym9yZGVyLWxpZ2h0KTsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLDAsMCwuMik7 CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiA0cHggMDsKICAgIG1pbi13aWR0 aDogMjIwcHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KI2tvbnRleHRtZW51IGJ1dHRvbiB7CiAg ICBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRk aW5nOiA3cHggMTRweDsKICAgIGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogbm9uZTsgY3Vyc29y OiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5 KTsKfQoja29udGV4dG1lbnUgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgYmFja2dyb3Vu ZDogcmdiYSgwLDAsMCwuMDYpOyB9CiNrb250ZXh0bWVudSBidXR0b246ZGlzYWJsZWQgeyBjb2xv cjogdmFyKC0tdGV4dC1tdXRlZCk7IGN1cnNvcjogZGVmYXVsdDsgb3BhY2l0eTogLjU1OyB9CiNr b250ZXh0bWVudSAua3R4LXRyZW5uZXIgewogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigt LWJvcmRlci1saWdodCk7CiAgICBtYXJnaW46IDRweCAwOwp9CiNrb250ZXh0bWVudSAua3R4LXNo b3J0Y3V0IHsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIG1hcmdpbi1sZWZ0OiAx MnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9CltkYXRhLXRoZW1lPSJuaWdodCJdICNrb250ZXh0 bWVudSBidXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwy NTUsMjU1LC4wOCk7IH0KCi8qIFBoYXNlIEc6IFRhbXBlci1TY2h1dHog4oCUIHJvdGVyIEJhbm5l ciBvYmVuIGluIEFkbWluL1N0YXRpc3RpayAqLwouaW50ZWdyaXRhZXQtYmFubmVyIHsKICAgIHBv c2l0aW9uOiBzdGlja3k7CiAgICB0b3A6IDA7CiAgICB6LWluZGV4OiAxMDA7CiAgICBiYWNrZ3Jv dW5kOiAjQjcxQzFDOwogICAgY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAg ICBmb250LXdlaWdodDogNjAwOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2luOiA4 cHg7CiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLDAsMCwwLjMpOwp9Ci5pbnRlZ3Jp dGFldC1iYW5uZXIgYnV0dG9uIHsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBjb2xvcjogI0I3 MUMxQzsKICAgIGJvcmRlcjogbm9uZTsKICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgbWFyZ2lu LWxlZnQ6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7 CiAgICBmb250LXdlaWdodDogNjAwOwp9CgovKiBTcGFsdGVudHlwZW4g4oCUIGRldXRsaWNoZSBV bnRlcnNjaGVpZHVuZyAqLwouc3BhbHRlLXdvY2hlbmVuZGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAj RTJFQUYyOyBib3JkZXItcmlnaHQtY29sb3I6ICNDOEQ0RTA7IH0KLnNwYWx0ZS1mZWllcnRhZyB7 IGJhY2tncm91bmQtY29sb3I6ICNGOURFREU7IGJvcmRlci1yaWdodC1jb2xvcjogI0U4QjBCMDsg fQouc3BhbHRlLWZlcmllbiB7IGJhY2tncm91bmQtY29sb3I6ICNFMEYwRTQ7IH0KW2RhdGEtdGhl bWU9Im5pZ2h0Il0gLnNwYWx0ZS13b2NoZW5lbmRlIHsgYmFja2dyb3VuZC1jb2xvcjogIzFFMkEz QTsgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMkQzRDUwOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5z cGFsdGUtZmVpZXJ0YWcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjM0ExRTFFOyBib3JkZXItcmlnaHQt Y29sb3I6ICM1MDI4Mjg7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLnNwYWx0ZS1mZXJpZW4geyBi YWNrZ3JvdW5kLWNvbG9yOiAjMUMyRTIyOyB9CgovKiBTY2hyYWZmdXJlbiAqLwouc2NocmFmZnVy LWZydWVoIHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQo NDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAzcHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4y NSkgM3B4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpIDVweCkgIWltcG9ydGFudDsKICAgIGZvbnQt d2VpZ2h0OiA4MDAgIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCww LDAuMyk7Cn0KLnNjaHJhZmZ1ci1zcGFldCB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRp bmctbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDNweCwg cmdiYSgyNTUsMjU1LDI1NSwwLjI1KSAzcHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgNXB4KSAh aW1wb3J0YW50OwogICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzog MCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsKfQouc2NocmFmZnVyLW5hY2h0IHsKICAgIGJhY2tn cm91bmQtaW1hZ2U6CiAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJh bnNwYXJlbnQsIHRyYW5zcGFyZW50IDNweCwgcmdiYSgyNTUsMjU1LDI1NSwwLjIpIDNweCwgcmdi YSgyNTUsMjU1LDI1NSwwLjIpIDVweCksCiAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVu dCgtNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAzcHgsIHJnYmEoMjU1LDI1NSwyNTUs MC4yKSAzcHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4yKSA1cHgpICFpbXBvcnRhbnQ7CiAgICBmb250 LXdlaWdodDogODAwICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLDAs MCwwLjMpOwp9Ci5zY2hyYWZmdXItZnJ1ZWgtMiB7IGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGlu Zy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCA0cHgsIHJn YmEoMjU1LDI1NSwyNTUsMC4xNSkgNHB4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDZweCkgIWlt cG9ydGFudDsgfQouc2NocmFmZnVyLXNwYWV0LTIgeyBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRp bmctbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDRweCwg cmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA0cHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNnB4KSAh aW1wb3J0YW50OyB9Ci5zY2hyYWZmdXItbmFjaHQtMiB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOgog ICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFu c3BhcmVudCA0cHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4xKSA0cHgsIHJnYmEoMjU1LDI1NSwyNTUs MC4xKSA2cHgpLAogICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFu c3BhcmVudCwgdHJhbnNwYXJlbnQgNHB4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMSkgNHB4LCByZ2Jh KDI1NSwyNTUsMjU1LDAuMSkgNnB4KSAhaW1wb3J0YW50Owp9CgovKiBWZXJhbnR3b3J0bGljaGtl aXRzLU1hcmtpZXJ1bmcgKFRvcC0yIHBybyBTY2hpY2h0KSAqLwouZ3JpZC16ZWxsZS52ZXJhbnR3 b3J0bGljaCB7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCAwICNGMUM0MEY7Cn0KLnZl cmFudHdvcnRsaWNoLWJhZGdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMXB4 OwogICAgcmlnaHQ6IDFweDsKICAgIHdpZHRoOiA2cHg7CiAgICBoZWlnaHQ6IDZweDsKICAgIGJh Y2tncm91bmQ6ICNGMUM0MEY7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7Cn0KCi8qID09PT09IFpl bGwtRWRpdG9yID09PT09ICovCiN6ZWxsLWVkaXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7 IHotaW5kZXg6IDIwMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBib3JkZXI6IDJw eCBzb2xpZCB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OyBib3gt c2hhZG93OiAwIDZweCAyMHB4IHZhcigtLXNoYWRvdy1tZWRpdW0pOwp9CiNlZGl0b3ItYXVzd2Fo bCB7CiAgICBib3JkZXI6IG5vbmU7IG91dGxpbmU6IG5vbmU7IGZvbnQtZmFtaWx5OiBpbmhlcml0 OyBmb250LXNpemU6IDExcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgY29sb3I6 IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICBtaW4td2lkdGg6IDIwMHB4OyBjdXJzb3I6IHBvaW50 ZXI7IGJvcmRlci1yYWRpdXM6IDNweDsKfQojZWRpdG9yLWF1c3dhaGwgb3B0aW9uIHsgcGFkZGlu ZzogNHB4IDhweDsgfQojZWRpdG9yLWF1c3dhaGwgb3B0aW9uOmNoZWNrZWQgeyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1hY3RpdmUpOyB9CgovKiA9PT09PSBBZG1pbi1MYXlvdXQgPT09PT0gKi8KLmFk bWluLWxheW91dCB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVu Owp9Ci5hZG1pbi1zaWRlYmFyIHsKICAgIHdpZHRoOiAyMjBweDsgbWluLXdpZHRoOiAyMjBweDsK ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXNpZGViYXIpOyBib3JkZXItcmlnaHQ6IDFweCBzb2xp ZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgcGFkZGluZzogMTZweCAxMHB4OyBkaXNwbGF5OiBm bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDFweDsKICAgIG92ZXJmbG93LXk6IGF1 dG87Cn0KLyogU2VrdGlvbnMtw5xiZXJzY2hyaWZ0IGluIGRlciBTaWRlYmFyIChTVEFNTURBVEVO LCBLT05GSUdVUkFUSU9OLCDigKYpICovCi5hZG1pbi1uYXYtZ3J1cHBlIHsKICAgIGZvbnQtc2l6 ZTogMTFweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsK ICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAg IHBhZGRpbmc6IDE0cHggMTRweCA2cHg7CiAgICBtYXJnaW46IDA7Cn0KLmFkbWluLW5hdi1ncnVw cGU6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXRvcDogNHB4OyB9CgouYWRtaW4tbmF2LWJ0biB7CiAg ICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiA5cHggMTRw eDsKICAgIHRleHQtYWxpZ246IGxlZnQ7IGJvcmRlci1yYWRpdXM6IDZweDsgY3Vyc29yOiBwb2lu dGVyOwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZh cigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3Rk KTsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLyogRG90LUluZGlr YXRvciB2b3IgamVkZW0gVGFiLUxhYmVsIChncmF1ID0gaW5ha3RpdiwgZ3LDvG4gPSBha3Rpdikg Ki8KLmFkbWluLW5hdi1idG46OmJlZm9yZSB7CiAgICBjb250ZW50OiAnJzsKICAgIGRpc3BsYXk6 IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OwogICAgYm9yZGVyLXJh ZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBvcGFjaXR5 OiAwLjQ7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBmbGV4LXNocmluazogMDsKICAgIHRy YW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQouYWRtaW4tbmF2LWJ0bjpob3ZlciB7 IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7 IH0KLmFkbWluLW5hdi1idG46aG92ZXI6OmJlZm9yZSB7IG9wYWNpdHk6IDAuNzsgfQovKiBBa3Rp dmVyIEJ1dHRvbjogS2FydGVuLU9wdGlrICh3ZWnDnyBpbSBMaWdodCwgZHVua2xlciBDYXJkLVRv biBpbSBEYXJrKSAqLwouYWRtaW4tbmF2LWJ0bi5ha3RpdiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1jYXJkKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgZm9udC13ZWln aHQ6IDYwMDsKICAgIGJveC1zaGFkb3c6IHZhcigtLXNjaGF0dGVuLXNtKTsKfQouYWRtaW4tbmF2 LWJ0bi5ha3Rpdjo6YmVmb3JlIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZyk7 CiAgICBvcGFjaXR5OiAxOwp9CgouYWRtaW4taW5oYWx0IHsgZmxleDogMTsgb3ZlcmZsb3cteTog YXV0bzsgcGFkZGluZzogMjRweCAzMnB4OyB9Ci5hZG1pbi1rb3BmIHsgZGlzcGxheTogZmxleDsg YWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBtYXJn aW4tYm90dG9tOiAyMHB4OyB9Ci5hZG1pbi1rb3BmIGgyIHsgZm9udC1zaXplOiAyMHB4OyBmb250 LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQouYWRtaW4taGlud2Vp cyB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2lu LWJvdHRvbTogMTZweDsgbGluZS1oZWlnaHQ6IDEuNjsgfQoKLyogU3RhdHVzLVBpbGxlIChyZWFk LW9ubHkgQW56ZWlnZSBpbiBUYWJlbGxlbiwgei4gQi4gQWt0aXYvSW5ha3RpdikgKi8KLnN0YXR1 cy1waWxsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsK ICAgIHBhZGRpbmc6IDNweCAxMHB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBmb250 LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdGF0 dXMtYWt0aXYtYmcpOwogICAgY29sb3I6IHZhcigtLXN0YXR1cy1ha3Rpdi1mZyk7CiAgICBib3Jk ZXI6IDFweCBzb2xpZCB2YXIoLS1zdGF0dXMtYWt0aXYtYm9yZGVyKTsKICAgIGxpbmUtaGVpZ2h0 OiAxLjQ7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci5zdGF0dXMtcGlsbGUuc3RhdHVzLWlu YWt0aXYgewogICAgYmFja2dyb3VuZDogdmFyKC0tc3RhdHVzLWluYWt0aXYtYmcpOwogICAgY29s b3I6IHZhcigtLXN0YXR1cy1pbmFrdGl2LWZnKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9y ZGVyLWNvbG9yKTsKfQoKLmFkbWluLXRhYiB7IGFuaW1hdGlvbjogZmFkZUluIDAuMTVzIGVhc2U7 IH0KQGtleWZyYW1lcyBmYWRlSW4geyBmcm9tIHsgb3BhY2l0eTogMDsgfSB0byB7IG9wYWNpdHk6 IDE7IH0gfQoKLyogPT09PT0gVGFiZWxsZW4gPT09PT0gKi8KLmFkbWluLXRhYmVsbGUgeyB3aWR0 aDogMTAwJTsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgZm9udC1zaXplOiAxM3B4OyB9Ci5h ZG1pbi10YWJlbGxlIHRoIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xv cjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7 IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4 OwogICAgcGFkZGluZzogMTBweCAxMnB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXItYm90dG9t OiAycHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBwb3NpdGlvbjogc3RpY2t5OyB0 b3A6IDA7IHotaW5kZXg6IDI7Cn0KLmFkbWluLXRhYmVsbGUgdGQgeyBwYWRkaW5nOiA4cHggMTJw eDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IHZlcnRpY2Fs LWFsaWduOiBtaWRkbGU7IH0KLmFkbWluLXRhYmVsbGUgdHI6aG92ZXIgdGQgeyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1ob3Zlcik7IH0KLmFkbWluLXRhYmVsbGUgaW5wdXRbdHlwZT0idGV4dCJdLAou YWRtaW4tdGFiZWxsZSBpbnB1dFt0eXBlPSJlbWFpbCJdLAouYWRtaW4tdGFiZWxsZSBpbnB1dFt0 eXBlPSJkYXRlIl0sCi5hZG1pbi10YWJlbGxlIHNlbGVjdCB7CiAgICB3aWR0aDogMTAwJTsgcGFk ZGluZzogNHB4IDhweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYm9y ZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTJw eDsgYmFja2dyb3VuZDogdmFyKC0tYmctaW5wdXQpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5 KTsKfQouYWRtaW4tdGFiZWxsZSBpbnB1dDpmb2N1cywgLmFkbWluLXRhYmVsbGUgc2VsZWN0OmZv Y3VzIHsKICAgIG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5n KTsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjYsNTgsOTIsMC4xNSk7Cn0KLnRhYmVsbGUt c2Nyb2xsIHsgb3ZlcmZsb3c6IGF1dG87IG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7 IH0KCi8qID09PT09IEJ1dHRvbnMgPT09PT0gKi8KLmJ0biB7CiAgICBwYWRkaW5nOiA3cHggMThw eDsgYm9yZGVyLXJhZGl1czogNHB4OyBib3JkZXI6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsKICAg IGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA1MDA7 IHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQouYnRuLXByaW1hZXIgeyBiYWNr Z3JvdW5kOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBjb2xvcjogI2ZmZjsgfQouYnRuLXByaW1hZXI6 aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMTQzMDRhOyB9Ci5idG4tZXJmb2xnIHsgYmFja2dyb3VuZDog dmFyKC0tZmFyYmUtZXJmb2xnKTsgY29sb3I6ICNmZmY7IH0KLmJ0bi1lcmZvbGc6aG92ZXIgeyBi YWNrZ3JvdW5kOiAjMWU3YTVmOyB9Ci5idG4tZ2VmYWhyIHsgYmFja2dyb3VuZDogdmFyKC0tZmFy YmUtZmVobGVyKTsgY29sb3I6ICNmZmY7IH0KLmJ0bi1nZWZhaHI6aG92ZXIgeyBiYWNrZ3JvdW5k OiAjYTUyODFiOyB9Ci5idG4tc2VrIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBj b2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJv cmRlci1zdHJvbmcpOwp9Ci5idG4tc2VrOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92 ZXIpOyBib3JkZXItY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmJ0bi1rbGVpbiB7IHBh ZGRpbmc6IDRweCAxMnB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGJvcmRl ci1yYWRpdXM6IDRweDsgfQouYnRuLWljb24geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24t aXRlbXM6IGNlbnRlcjsgZ2FwOiA1cHg7IGxpbmUtaGVpZ2h0OiAxOyB9Ci5idG4taWNvbjo6YmVm b3JlIHsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMTsgfQouYnRuLWJlYXJiZWl0ZW46 OmJlZm9yZSB7IGNvbnRlbnQ6ICfinI4nOyB9Ci5idG4tcmh5dGhtdXM6OmJlZm9yZSB7IGNvbnRl bnQ6ICfihrsnOyB9Ci5idG4tbG9lc2NoZW4geyB3aWR0aDogMzBweDsgcGFkZGluZzogNHB4IDA7 IHRleHQtYWxpZ246IGNlbnRlcjsgfQoKLyogV2ljaHRpZy1GZWllcnRhZyBCYWRnZSAqLwouZmVp ZXJ0YWctd2ljaHRpZy1iYWRnZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6 IDJweCA4cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWln aHQ6IDcwMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWZlaGxlcik7IGNvbG9yOiAjZmZm OyBsZXR0ZXItc3BhY2luZzogMC40cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmJ0 bi1zb3J0aWVydW5nIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBz b2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwog ICAgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWdu LWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9yZGVyLXJhZGl1 czogM3B4OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMTRweDsgcGFkZGluZzogMDsKICAg IHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQouYnRuLXNvcnRpZXJ1bmc6aG92 ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4 dC1oZWFkaW5nKTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KCi8qID09PT09IEZvcm11 bGFyZSA9PT09PSAqLwouZm9ybS1ncnVwcGUgeyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9Ci5mb3Jt LWdydXBwZSBsYWJlbCB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2Vp Z2h0OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG1hcmdpbi1ib3R0b206IDRw eDsgfQouZm9ybS1pbnB1dCB7CiAgICBwYWRkaW5nOiA4cHggMTJweDsgYm9yZGVyOiAxcHggc29s aWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7IGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGZvbnQtZmFt aWx5OiBpbmhlcml0OyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0 KTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFu c2l0aW9uLXN0ZCk7Cn0KLmZvcm0taW5wdXQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXIt Y29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI2 LDU4LDkyLDAuMTIpOyB9CgovKiA9PT09PSBJbmZvLUJveCA9PT09PSAqLwouaW5mby1ib3ggewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItbGVmdDogNHB4IHNvbGlk IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7IGJvcmRlci1yYWRp dXM6IDAgNnB4IDZweCAwOyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBj b2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9CgovKiA9PT09PSBTY2hpY2h0Y29kZS1Wb3Jz Y2hhdSA9PT09PSAqLwouc2NoaWNodGNvZGUta2FydGUgewogICAgZGlzcGxheTogZmxleDsgYWxp Z24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogNnB4IDhweCA2cHggNnB4 OyBib3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDYwMDsK ICAgIG1pbi1oZWlnaHQ6IDQycHg7Cn0KLnNjaGljaHRjb2RlLWZhcmJmZWxkIHsKICAgIG1pbi13 aWR0aDogNDRweDsgaGVpZ2h0OiAzMHB4OyBib3JkZXItcmFkaXVzOiA0cHg7IGJvcmRlcjogMXB4 IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1p dGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTJw eDsgZm9udC13ZWlnaHQ6IDcwMDsgcGFkZGluZzogMCA0cHg7CiAgICBmbGV4LXNocmluazogMDsK fQouc2MtZWRpdC1idG4geyBwYWRkaW5nOiAzcHggNnB4OyBmb250LXNpemU6IDExcHg7IGZsZXgt c2hyaW5rOiAwOyB9Ci5zYy1lZGl0LWJ0bjo6YmVmb3JlIHsgY29udGVudDogJ+Kcjic7IGZvbnQt c2l6ZTogMTFweDsgfQoKLyogU2NoaWNodC1SZW5kZXItTW9kaTogZ2VsdGVuIGluIGRlciBQbGFu dW5ncy1aZWxsZSAoR3JpZCkgdW5kIGluIGRlcgogICBTY2hpY2h0Y29kZS1Wb3JzY2hhdS1LYXJ0 ZS4gQmVpIE1vZHVzICd6ZWxsZScgd2lyZCBkZXIgSGludGVyZ3J1bmQKICAgZGlyZWt0IGFtIENl bGwtRWxlbWVudCBnZXNldHp0IChEZWZhdWx0KSDigJQgZGllIGZvbGdlbmRlbiBLbGFzc2VuCiAg IGdyZWlmZW4gbnVyIGbDvHIgQmxvY2sgLyBQaWxsZSAvIFRleHQuICovCi56ZWxsZS1tb2QtYmxv Y2sgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogMnB4IDhweDsKICAg IGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjE1OwogICAgZm9udC13ZWln aHQ6IDcwMDsKfQouemVsbGUtbW9kLXBpbGxlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK ICAgIHBhZGRpbmc6IDJweCAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBsaW5l LWhlaWdodDogMS4yOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKfQouemVsbGUtbW9kLXRleHQgewog ICAgZm9udC13ZWlnaHQ6IDcwMDsKfQoKLyogSGVhZGVyLVplbGwtTW9kaSAoYXVmIC5rZC16ZWxs ZSkg4oCUIGJlZsO8bGx0IHZvbiBoZWFkZXJLb25maWdBbndlbmRlbigpLgogICBWYXJpYWJsZW4g LS1oa3otYmcgLyAtLWhrei1mZyB3ZXJkZW4gaW5saW5lIGdlc2V0enQuICovCi5rZC16ZWxsZS5o a3otYmxvY2sgewogICAgYmFja2dyb3VuZDogdmFyKC0taGt6LWJnKSAhaW1wb3J0YW50OwogICAg Y29sb3I6IHZhcigtLWhrei1mZywgI2ZmZik7Cn0KLmtkLXplbGxlLmhrei1ibG9jazo6YmVmb3Jl IHsKICAgIC8qIEJsb2NrLU1vZHVzOiBrbGVpbmVyIElubmVuLU1hcmdpbiB2aWEgcGFkZGluZy1U cmljayAqLwogICAgY29udGVudDogbm9uZTsKfQoua2QtemVsbGUuaGt6LXBpbGxlIHsKICAgIGJh Y2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogaW5oZXJpdDsKfQou a2QtemVsbGUuaGt6LXBpbGxlOjpiZWZvcmUgewogICAgY29udGVudDogJyc7Cn0KLmtkLXplbGxl Lmhrei1waWxsZSB7CiAgICAvKiBQaWxsZSBhbHMgSW5oYWx0LVdyYXBwZXIgdmlhIGZsZXhib3gg Ki8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoua2QtemVsbGUuaGt6LXBpbGxlID4gKiB7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1oa3otYmcpOwogICAgY29sb3I6IHZhcigtLWhrei1mZywgI2Zm Zik7CiAgICBwYWRkaW5nOiAxcHggMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAg Zm9udC13ZWlnaHQ6IDcwMDsKfQoua2QtemVsbGUuaGt6LXRleHQgewogICAgYmFja2dyb3VuZDog dHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1oa3otYmcpICFpbXBvcnRh bnQ7CiAgICBmb250LXdlaWdodDogNzAwOwp9Ci8qIFRyZW5ubGluaWVuLVNjaGFsdGVyICovCiNr b3BmLXJlY2h0cy5oZWFkZXItb2huZS10cmVubmxpbmllbiAua2QtemVsbGUgewogICAgYm9yZGVy LXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Owp9CgovKiA9PT09PSBIZWFkZXIt SGludGVyZ3J1bmQ6IENELUJsYXUgKHRoZW1lLXVuYWJow6RuZ2lnKSA9PT09PQogICBIYXJkY29k ZWQgIzI5Mzg0QSDigJQgYmxlaWJ0IGltIFRhZy0gdW5kIE5hY2h0bW9kdXMgaWRlbnRpc2NoLgog ICBFaW56ZWx6ZWxsZW4gbWl0IGVpZ2VuZW0gU3RhdGUgKEhldXRlL1dvY2hlbmVuZGUvRmVpZXJ0 YWcvRFNNL2VyZnVlbGx0L3VudGVyYmVzZXR6dCkKICAgw7xiZXJzY2hyZWliZW4gZGFzIHdlaXRl cmhpbiB2aWEgc3BlemlmaXNjaGVyZSBLbGFzc2VuLiAqLwoja29wZi1yZWNodHMsCiNrb3BmLWxp bmtzIHsKICAgIGJhY2tncm91bmQ6ICMyOTM4NEE7Cn0KI2tvcGYtcmVjaHRzIC5rb3BmLWRhdGVu LXplaWxlLAoja29wZi1saW5rcyAua29wZi16ZWlsZSB7CiAgICBiYWNrZ3JvdW5kOiAjMjkzODRB OwogICAgY29sb3I6ICNFOUVFRjM7Cn0KI2tvcGYtcmVjaHRzIC5rb3BmLWRhdGVuLXplaWxlLnRs LXJvdy12b3JnYWJlLAoja29wZi1yZWNodHMgLmtvcGYtZGF0ZW4temVpbGUudGwtcm93LXN0YWVy a2Vzb2xsLAoja29wZi1yZWNodHMgLmtvcGYtZGF0ZW4temVpbGUudGwtcm93LWZydWVoLWwsCiNr b3BmLXJlY2h0cyAua29wZi1kYXRlbi16ZWlsZS50bC1yb3ctc3BhZXQtbCwKI2tvcGYtcmVjaHRz IC5rb3BmLWRhdGVuLXplaWxlLnRsLXJvdy11bnRzdHVldHotZiwKI2tvcGYtcmVjaHRzIC5rb3Bm LWRhdGVuLXplaWxlLnRsLXJvdy11bnRzdHVldHotbiB7CiAgICBiYWNrZ3JvdW5kOiAjMjkzODRB Owp9CiNrb3BmLXJlY2h0cyAua2QtemVsbGUgewogICAgY29sb3I6ICNFOUVFRjM7CiAgICBib3Jk ZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7Cn0KI2tvcGYtcmVjaHRz IC5rZC16ZWxsZS50ZC16ZWxsZTpub3QoLnRkLWVyZnVlbGx0KTpub3QoLnRkLXVudGVyYmVzZXR6 dCkgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogI0U5RUVGMzsKfQoK LyogPT09PT0gSGVhZGVyLUtvbmZpZy1UYWIgVGFiZWxsZW4tTGF5b3V0ID09PT09ICovCiNoZWFk ZXIta29uZmlnLWluaGFsdCB0YWJsZSB0Ym9keSB0ciB0ZCB7IHZlcnRpY2FsLWFsaWduOiBtaWRk bGU7IH0KI2hlYWRlci1rb25maWctaW5oYWx0IHRhYmxlIHRib2R5IHRyIHsgaGVpZ2h0OiA0NHB4 OyB9CgovKiBDb2xvci1QaWNrZXItWmVsbGU6IFBpY2tlciArIFJlc2V0LcOXIG5lYmVuZWluYW5k ZXIsIHZlcnRpa2FsIHplbnRyaWVydC4KICAgR3JlaWZ0IGluIEhlYWRlci1aZWlsZW4tVGFiZWxs ZSBVTkQgaW4gZGVuIFN0eWxlLUJsb2NrLURldGFpbC1TZWt0aW9uZW4KICAgKFZvcmdhYmUgLyBE U00gLyBUYWctTWFya2VyKS4gKi8KI2hlYWRlci1rb25maWctaW5oYWx0IC5oay1jb2xvci16ZWxs ZSwKLnN0eWxlLWJsb2NrIC5oay1jb2xvci16ZWxsZSB7CiAgICBwYWRkaW5nOiAwOwogICAgdGV4 dC1hbGlnbjogbGVmdDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBkaXNwbGF5OiBpbmxp bmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDRweDsKfQojaGVhZGVy LWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWlucHV0LAouc3R5bGUtYmxvY2sgLmhrLWNvbG9yLWlu cHV0IHsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgcGFkZGluZzogMDsK ICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFk aXVzOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxl Owp9Ci8qIOKAnk5pY2h0IGdlc2V0enQiLUluZGlrYXRvcjogZGV6ZW50ZSBkaWFnb25hbGUgU3Ry ZWlmZW4gdWViZXIgZGVtIFBpY2tlci4KICAgRGllIGVjaHRlIERlZmF1bHQtRmFyYmUgKHouQi4g U2NoaWNodGNvZGUtSGludGVyZ3J1bmQgZnVlciBGL1MvTikgbGllZ3QKICAgd2VpdGVyaGluIHNp Y2h0YmFyIGRhcnVudGVyIOKAlCBkaWUgU3RyZWlmZW4gc2lnbmFsaXNpZXJlbiDigJ5sZWVyID0g RGVmYXVsdAogICBncmVpZnQiLiAqLwojaGVhZGVyLWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWlu cHV0LmhrLWNvbG9yLWxlZXIsCi5zdHlsZS1ibG9jayAuaGstY29sb3ItaW5wdXQuaGstY29sb3It bGVlciB7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggcmdiYSgyNTUsMjU1LDI1NSww LjYpLAogICAgICAgICAgICAgICAgaW5zZXQgMCAwIDAgNHB4IHJnYmEoMCwwLDAsMC41KTsKICAg IG91dGxpbmU6IDJweCBkYXNoZWQgdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBvdXRsaW5lLW9mZnNl dDogLTFweDsKfQojaGVhZGVyLWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWNsZWFyLAouc3R5bGUt YmxvY2sgLmhrLWNvbG9yLWNsZWFyIHsKICAgIHdpZHRoOiAyMnB4OwogICAgaGVpZ2h0OiAyOHB4 OwogICAgcGFkZGluZzogMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAx OwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo LS1ib3JkZXItY29sb3IpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgY29sb3I6IHZhcigt LXRleHQtbXV0ZWQpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdmVydGljYWwtYWxpZ246IG1p ZGRsZTsKfQojaGVhZGVyLWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWNsZWFyOmhvdmVyLAouc3R5 bGUtYmxvY2sgLmhrLWNvbG9yLWNsZWFyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJn LWNhcmQtYWx0KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9CgovKiBTdHlsZS1C bG9jay1QcmV2aWV3IChMaXZlLVZvcnNjaGF1IGluIFZvcmdhYmUgLyBEU00gLyBUYWctTWFya2Vy KS4KICAgWmVpZ3QgZWluZSBCZWlzcGllbC1aZWxsZSBtaXQgZGVtIGFrdHVlbGxlbiBTdGlsIOKA lCBhbmFsb2cgenVtIFBsYW4tSGVhZGVyLiAqLwouc3R5bGUtYmxvY2stcHJldmlldyB7CiAgICBt aW4taGVpZ2h0OiAzNnB4OwogICAgbWluLXdpZHRoOiA2MHB4OwogICAgcGFkZGluZzogNnB4IDEy cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgYm9yZGVy LXJhZGl1czogNHB4OwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczog Y2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXdlaWdodDogNzAw OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgYmFj a2dyb3VuZC1pbWFnZToKICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMTI4LDEy OCwxMjgsMC4wNikgMjUlLCB0cmFuc3BhcmVudCAyNSUpLAogICAgICAgIGxpbmVhci1ncmFkaWVu dCgtNDVkZWcsIHJnYmEoMTI4LDEyOCwxMjgsMC4wNikgMjUlLCB0cmFuc3BhcmVudCAyNSUpOwog ICAgYmFja2dyb3VuZC1zaXplOiA4cHggOHB4OwogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAw LCAwIDRweDsKfQouc3R5bGUtYmxvY2sgbGFiZWwgewogICAgZm9udC1zaXplOiAxMnB4OwogICAg Zm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLnN0 eWxlLWJsb2NrIC5mb3JtLWlucHV0IHsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIHBhZGRpbmc6 IDRweCA4cHg7Cn0KCi8qIOKAnuKAlCBhdXRvbWF0aXNjaCBiZWbDvGxsdCDigJQiLUhpbndlaXMg dmVydGlrYWwgbWl0dGlnIGluIGRlciBXZXJ0LVplbGxlICovCiNoZWFkZXIta29uZmlnLWluaGFs dCAuaGstYXV0by1oaW50IHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRl bXM6IGNlbnRlcjsKICAgIGhlaWdodDogMjhweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVk KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKfQoKLyogTW9k dXMtTWluaS1CYWRnZSBpbiBkZXIgU2NoaWNodGNvZGUtVm9yc2NoYXUgKi8KLnNjLW1vZHVzLWJh ZGdlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAg Zm9udC13ZWlnaHQ6IDcwMDsKICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICBib3JkZXItcmFkaXVz OiA5OTlweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGNvbG9yOiB2 YXIoLS10ZXh0LW11dGVkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xv cik7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAu NHB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoKLyogPT09PT0gR2VuZXJhdG9yID09 PT09ICovCi5nZW5lcmF0b3ItZm9ybSB7IG1heC13aWR0aDogNTAwcHg7IH0KI2dlbmVyYXRvci1l cmdlYm5pcyB7CiAgICBtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxNHB4IDE4cHg7CiAgICBi b3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsKfQou Z2VuLWVyZm9sZyB7IGJhY2tncm91bmQ6ICNlOGY1ZTk7IGNvbG9yOiAjMmU3ZDMyOyBib3JkZXI6 IDFweCBzb2xpZCAjYTVkNmE3OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5nZW4tZXJmb2xnIHsg YmFja2dyb3VuZDogIzFhMzAyMDsgY29sb3I6ICM2NmJiNmE7IGJvcmRlci1jb2xvcjogIzJlN2Qz MjsgfQoKLyogPT09PT0gU3RhdGlzdGlrID09PT09ICovCi5zdGF0aXN0aWstbGF5b3V0IHsgb3Zl cmZsb3cteTogYXV0bzsgcGFkZGluZzogMjBweCAyNHB4OyBmbGV4OiAxOyB9CgovKiBLUEktS2Fj aGVsbiAqLwouc3RhdC1rcGlzIHsKICAgIGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29s dW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTQwcHgsIDFmcikpOwogICAgZ2FwOiAxMnB4 OyBtYXJnaW4tYm90dG9tOiAyMHB4Owp9Ci5zdGF0LWtwaSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1jYXJkKTsgYm9yZGVyLXJhZGl1czogMTBweDsgcGFkZGluZzogMTZweDsKICAgIGJvcmRl cjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IHRleHQtYWxpZ246IGNlbnRlcjsKICAg IGJveC1zaGFkb3c6IDAgMXB4IDRweCB2YXIoLS1zaGFkb3ctbGlnaHQpOyB0cmFuc2l0aW9uOiB0 cmFuc2Zvcm0gMC4xNXMgZWFzZTsKfQouc3RhdC1rcGk6aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5z bGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6IDAgNHB4IDEycHggdmFyKC0tc2hhZG93LW1lZGl1bSk7 IH0KLnN0YXQta3BpLXdlcnQgeyBmb250LXNpemU6IDI4cHg7IGZvbnQtd2VpZ2h0OiA4MDA7IGxp bmUtaGVpZ2h0OiAxLjE7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH0KLnN0 YXQta3BpLWxhYmVsIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7 IG1hcmdpbi10b3A6IDRweDsgZm9udC13ZWlnaHQ6IDYwMDsgdGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB9CgovKiBEYXNoYm9hcmQtR3JpZCAqLwouc3Rh dC1kYXNoYm9hcmQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAx ZnI7IGdhcDogMTZweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQpAbWVkaWEgKG1heC13aWR0aDog OTAwcHgpIHsgLnN0YXQtZGFzaGJvYXJkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0g fQoKLnN0YXQtcGFuZWwgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRlci1y YWRpdXM6IDEwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBi b3gtc2hhZG93OiAwIDFweCA0cHggdmFyKC0tc2hhZG93LWxpZ2h0KTsKICAgIHBhZGRpbmc6IDE2 cHggMjBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWluLWhlaWdo dDogMDsKfQouc3RhdC1wYW5lbC1rb3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29u dGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0 b206IDEycHg7IGZsZXgtc2hyaW5rOiAwOwp9Ci5zdGF0LXBhbmVsLWtvcGYgaDMgeyBmb250LXNp emU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBt YXJnaW46IDA7IH0KLnN0YXQtY2hhcnQtYXJlYSB7IGZsZXg6IDE7IG1pbi1oZWlnaHQ6IDA7IG92 ZXJmbG93LXk6IGF1dG87IG1heC1oZWlnaHQ6IDQyMHB4OyB9CgovKiBUb2dnbGUtQnV0dG9ucyBp biBQYW5lbHMgKi8KLnN0YXQtdG9nZ2xlLWdydXBwZSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMDsg Ym9yZGVyLXJhZGl1czogNnB4OyBvdmVyZmxvdzogaGlkZGVuOyBib3JkZXI6IDFweCBzb2xpZCB2 YXIoLS1ib3JkZXItY29sb3IpOyB9Ci5zdGF0LXRvZ2dsZSB7CiAgICBwYWRkaW5nOiA0cHggMTJw eDsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBib3JkZXI6IG5vbmU7IGN1cnNv cjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgY29sb3I6IHZh cigtLXRleHQtbXV0ZWQpOyB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKfQouc3RhdC10b2dn bGUuYWt0aXYgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6IHZhcigtLXRl eHQtb24tcHJpbWFyeSk7IH0KLnN0YXQtdG9nZ2xlOmhvdmVyOm5vdCguYWt0aXYpIHsgYmFja2dy b3VuZDogdmFyKC0tYmctaG92ZXIpOyB9CgovKiBCYWRnZSAqLwouc3RhdC1iYWRnZSB7CiAgICBm b250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHBhZGRpbmc6IDJweCA4cHg7IGJvcmRl ci1yYWRpdXM6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgY29s b3I6ICNmZmY7IG1pbi13aWR0aDogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5zdGF0LWJh ZGdlOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfQouc3RhdC1iYWRnZS1vayB7IGJhY2tncm91bmQ6 IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KCi8qIERldGFpbC1UYWJlbGxlICovCi5zdGF0LXRhYmVs bGUgdGguemFobCwgLnN0YXQtdGFiZWxsZSB0ZC56YWhsIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGZv bnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH0KLnN0YXQtdGFiZWxsZSAuZnJ1ZWgt a29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1mcnVlaCk7IH0KLnN0YXQtdGFiZWxsZSAuc3BhZXQt a29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1zcGFldCk7IH0KLnN0YXQtdGFiZWxsZSAubmFjaHQt a29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1uYWNodCk7IH0KLnN0YXQtdGFiZWxsZSAud2Fybi1r b3BmIHsgY29sb3I6IHZhcigtLWZhcmJlLWZlaGxlcik7IH0KLnN0YXQtZGV0YWlscyB7CiAgICBi YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIGJvcmRl cjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJveC1zaGFkb3c6IDAgMXB4IDRweCB2 YXIoLS1zaGFkb3ctbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKfQouc3RhdC1kZXRh aWxzLXN1bW1hcnkgewogICAgcGFkZGluZzogMTRweCAyMHB4OyBmb250LXNpemU6IDEzcHg7IGZv bnQtd2VpZ2h0OiA3MDA7IGN1cnNvcjogcG9pbnRlcjsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNl Y29uZGFyeSk7IHVzZXItc2VsZWN0OiBub25lOyBsaXN0LXN0eWxlOiBub25lOwp9Ci5zdGF0LWRl dGFpbHMtc3VtbWFyeTo6YmVmb3JlIHsgY29udGVudDogJ1wyNUI2ICAnOyBmb250LXNpemU6IDEw cHg7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0K LnN0YXQtZGV0YWlsc1tvcGVuXSAuc3RhdC1kZXRhaWxzLXN1bW1hcnk6OmJlZm9yZSB7IHRyYW5z Zm9ybTogcm90YXRlKDkwZGVnKTsgfQouc3RhdC1kZXRhaWxzW29wZW5dIC5zdGF0LWRldGFpbHMt c3VtbWFyeSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9 Ci5zdGF0LWRldGFpbHMgLnRhYmVsbGUtc2Nyb2xsIHsgcGFkZGluZzogMCAyMHB4IDE2cHg7IH0K Ci8qIERvbnV0LUNoYXJ0ICovCi5zdGF0LWRvbnV0LXdyYXAgeyBkaXNwbGF5OiBmbGV4OyBhbGln bi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAzMnB4OyBwYWRk aW5nOiAxNnB4IDA7IGZsZXgtd3JhcDogd3JhcDsgfQouc3RhdC1kb251dC1zdmcgeyB3aWR0aDog MTgwcHg7IGhlaWdodDogMTgwcHg7IH0KLnN0YXQtZG9udXQtbGVnZW5kZSB7IGRpc3BsYXk6IGZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyB9Ci5zdGF0LWRvbnV0LWxlZ2Vu ZGUtaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBm b250LXNpemU6IDEzcHg7IGN1cnNvcjogcG9pbnRlcjsgfQouc3RhdC1kb251dC1sZWdlbmRlLWl0 ZW06aG92ZXIgeyBvcGFjaXR5OiAwLjg7IH0KLnN0YXQtZG9udXQtZmFyYmUgeyB3aWR0aDogMTRw eDsgaGVpZ2h0OiAxNHB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGZsZXgtc2hyaW5rOiAwOyB9Ci5z dGF0LWRvbnV0LXdlcnQgeyBmb250LXdlaWdodDogNzAwOyBmb250LXZhcmlhbnQtbnVtZXJpYzog dGFidWxhci1udW1zOyBtYXJnaW4tbGVmdDogYXV0bzsgcGFkZGluZy1sZWZ0OiAxMnB4OyB9Ci5z dGF0LWRvbnV0LWNlbnRlciB7IGZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDgwMDsgZmls bDogdmFyKC0tdGV4dC1oZWFkaW5nKTsgdGV4dC1hbmNob3I6IG1pZGRsZTsgZG9taW5hbnQtYmFz ZWxpbmU6IGNlbnRyYWw7IH0KLnN0YXQtZG9udXQtY2VudGVyLWxhYmVsIHsgZm9udC1zaXplOiAx MHB4OyBmaWxsOiB2YXIoLS10ZXh0LW11dGVkKTsgdGV4dC1hbmNob3I6IG1pZGRsZTsgfQoKLyog QmFsa2VuZGlhZ3JhbW0gKGltIFBhbmVsKSAqLwouc3RhdC1iYWxrZW4tY29udGFpbmVyIHsgZGlz cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IH0KLnN0YXQtYmFs a2VuLXplaWxlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7 IGZvbnQtc2l6ZTogMTFweDsgcGFkZGluZzogMnB4IDA7IH0KLnN0YXQtYmFsa2VuLW5hbWUgeyB3 aWR0aDogMTIwcHg7IG1pbi13aWR0aDogMTIwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyBmb250LXdl aWdodDogNTAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBvdmVyZmxvdzogaGlkZGVu OyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouc3RhdC1i YWxrZW4tYmFyLXdyYXAgeyBmbGV4OiAxOyBkaXNwbGF5OiBmbGV4OyBnYXA6IDFweDsgaGVpZ2h0 OiAxOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRlci1yYWRpdXM6IDNw eDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQouc3RhdC1iYWxrZW4tc2VnbWVudCB7IGhlaWdodDogMTAw JTsgdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZm9udC1zaXplOiA5cHg7IGNvbG9y OiAjZmZmOyBmb250LXdlaWdodDogNzAwOyB9Ci5zdGF0LWJhbGtlbi10b3RhbCB7IHdpZHRoOiAz MnB4OyB0ZXh0LWFsaWduOiByaWdodDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRl eHQtc2Vjb25kYXJ5KTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQoKLyog TXVzdGVyICovCi5zdGF0LW11c3Rlci1jb250YWluZXIgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRp cmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgbWF4LWhlaWdodDogNDIwcHg7IG92ZXJmbG93LXk6 IGF1dG87IH0KLm11c3Rlci1rYXJ0ZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczog ZmxleC1zdGFydDsgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogMTBweCAxNHB4OyBib3JkZXItcmFk aXVzOiA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBmb250 LXNpemU6IDEycHg7Cn0KLm11c3Rlci1pY29uIHsgZm9udC1zaXplOiAxNHB4OyBtaW4td2lkdGg6 IDIycHg7IGhlaWdodDogMjJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMjJw eDsgYm9yZGVyLXJhZGl1czogNTAlOyBjb2xvcjogI2ZmZjsgZmxleC1zaHJpbms6IDA7IH0KLm11 c3Rlci10ZXh0IHsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMS41OyB9Ci5tdXN0ZXIt dGV4dCBzdHJvbmcgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoubXVzdGVyLXdhcm51 bmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4wNik7IH0KLm11c3Rlci13YXJudW5n IC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLXdhcm51bmcpOyB9Ci5tdXN0 ZXItaW5mbyB7IGJhY2tncm91bmQ6IHJnYmEoNDQsNjIsODAsMC4wNCk7IH0KLm11c3Rlci1pbmZv IC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWluZm8pOyB9Ci5tdXN0ZXIt ZXJmb2xnIHsgYmFja2dyb3VuZDogcmdiYSgzOSwxMzcsMTA5LDAuMDYpOyB9Ci5tdXN0ZXItZXJm b2xnIC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KCi8q IEZhaXJuZXNzIGNvbXBhY3QgKi8KLmZhaXJuZXNzLWNvbXBhY3QgeyBkaXNwbGF5OiBmbGV4OyBm bGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgfQouZmFpcm5lc3Mtcm93IHsKICAgIGRp c3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTEwcHggMWZyIDQwcHg7IGdhcDog NnB4OyBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZm9udC1zaXplOiAxMXB4OyBwYWRkaW5nOiAz cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KLmZh aXJuZXNzLXJvdzpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQouZmFpcm5lc3Mt cm93LW5hbWUgeyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsg b3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBu b3dyYXA7IH0KLmZhaXJuZXNzLXJvdy1iYXIgeyBoZWlnaHQ6IDE2cHg7IGJvcmRlci1yYWRpdXM6 IDNweDsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 IH0KLmZhaXJuZXNzLXJvdy1maWxsIHsgaGVpZ2h0OiAxMDAlOyBib3JkZXItcmFkaXVzOiAzcHg7 IHRyYW5zaXRpb246IHdpZHRoIDAuNHMgZWFzZTsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5mYWly bmVzcy1yb3ctYXZnIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0ycHg7IGJvdHRvbTogLTJw eDsgd2lkdGg6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1oZWFkaW5nKTsgb3BhY2l0eTog MC41OyB6LWluZGV4OiAxOyB9Ci5mYWlybmVzcy1yb3ctdmFsIHsgdGV4dC1hbGlnbjogcmlnaHQ7 IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IGNv bG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IH0KLmZhaXJuZXNzLW9rIHsgYmFja2dyb3VuZDog IzI3QUU2MDsgfQouZmFpcm5lc3Mtd2FybnVuZyB7IGJhY2tncm91bmQ6ICNFNjdFMjI7IH0KLmZh aXJuZXNzLWtyaXRpc2NoIHsgYmFja2dyb3VuZDogI0MwMzkyQjsgfQouZmFpcm5lc3MtbmV1dHJh bCB7IGJhY2tncm91bmQ6ICM5NUE1QTY7IH0KLmZhaXJuZXNzLWhlYWRlciB7IGZvbnQtd2VpZ2h0 OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zaXplOiAxMHB4OyB0ZXh0LXRy YW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IHBhZGRpbmc6IDhweCAw IDRweDsgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50OyB9CgovKiBBYndlc2VuaGVpdHMt Q2hhcnQgKi8KLmFidy1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z OiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTMwcHgsIDFmcikpOyBnYXA6IDhweDsgfQouYWJ3 LWthcnRlIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgYm9yZGVyLXJhZGl1 czogOHB4OyBwYWRkaW5nOiAxMnB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXI6IDFw eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAu MTVzIGVhc2U7IGN1cnNvcjogZGVmYXVsdDsKfQouYWJ3LWthcnRlOmhvdmVyIHsgdHJhbnNmb3Jt OiB0cmFuc2xhdGVZKC0xcHgpOyB9Ci5hYncta2FydGUtaWNvbiB7IGZvbnQtc2l6ZTogMjBweDsg bWFyZ2luLWJvdHRvbTogNHB4OyB9Ci5hYncta2FydGUtd2VydCB7IGZvbnQtc2l6ZTogMjRweDsg Zm9udC13ZWlnaHQ6IDgwMDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQou YWJ3LWthcnRlLWxhYmVsIHsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRl ZCk7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi10 b3A6IDJweDsgfQouYWJ3LWthcnRlLWRldGFpbCB7IGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IHZh cigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luLXRvcDogNnB4OyBsaW5lLWhlaWdodDogMS40OyB9 Ci5hYnctcGVyc29uZW4geyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29u ZGFyeSk7IG1hcmdpbi10b3A6IDhweDsgdGV4dC1hbGlnbjogbGVmdDsgbWF4LWhlaWdodDogMDsg b3ZlcmZsb3c6IGhpZGRlbjsgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2U7IH0KLmFi dy1rYXJ0ZS5vZmZlbiAuYWJ3LXBlcnNvbmVuIHsgbWF4LWhlaWdodDogMzAwcHg7IH0KCi8qID09 PT09IFdvY2hlbnBsYW4gPT09PT0gKi8KLndwLWxheW91dCB7CiAgICBkaXNwbGF5OiBmbGV4OyBm bGV4LWRpcmVjdGlvbjogY29sdW1uOyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVuOwp9Ci53cC10 b29sYmFyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4 OwogICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy10b29sYmFy KTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwp9Ci53 cC16ZWl0cmF1bS1hbnplaWdlIHsKICAgIGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDcw MDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBtYXJnaW4tbGVmdDogOHB4Owp9Cgov KiA9PT09PT09PT09IFdvY2hlbnBsYW4gRkxELUxheW91dCAoS1ctU2ljaHQgaW0gRXhjZWwtU3Rp bCkgPT09PT09PT09PSAqLwoud3AtcGFnZSB7IGZsZXg6IDE7IG92ZXJmbG93OiBhdXRvOyBwYWRk aW5nOiAxNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCwgI2YzZjNmMyk7IH0KLndw LXNlaXRlIHsKICAgIGJhY2tncm91bmQ6ICNmZmY7IG1heC13aWR0aDogMTIwMHB4OyBtYXJnaW46 IDAgYXV0bzsKICAgIHBhZGRpbmc6IDE0cHggMThweDsgYm9yZGVyLXJhZGl1czogNHB4OwogICAg Ym94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wOCk7Cn0KLndwLXNlaXRlLWtvcGYg ewogICAgbWFyZ2luLWJvdHRvbTogMTJweDsgcGFkZGluZy1ib3R0b206IDEwcHg7CiAgICBib3Jk ZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQoud3Ata29wZi1oYXVw dCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFm ciBhdXRvOwogICAgZ2FwOiAxNHB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoud3Ata29w Zi1sb2dvIHsKICAgIGhlaWdodDogNTZweDsgbWF4LXdpZHRoOiAxMjBweDsgb2JqZWN0LWZpdDog Y29udGFpbjsKfQoud3Ata29wZi10ZXh0IHsgbWluLXdpZHRoOiAwOyB9Ci53cC1rb3BmLXRleHQg aDEgewogICAgbWFyZ2luOiAwOyBmb250LXNpemU6IDIwcHg7CiAgICBjb2xvcjogdmFyKC0tdGV4 dC1oZWFkaW5nKTsgZm9udC13ZWlnaHQ6IDcwMDsgbGluZS1oZWlnaHQ6IDEuMTU7Cn0KLndwLWtv cGYtZGllbnN0c3RlbGxlIHsKICAgIGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDcwMDsg bGV0dGVyLXNwYWNpbmc6IDAuNnB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29s b3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIG1hcmdpbi1ib3R0b206IDJweDsKfQoud3At a29wZi11bnRlcnRpdGVsIHsKICAgIGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRleHQt c2Vjb25kYXJ5KTsKICAgIG1hcmdpbi10b3A6IDNweDsKfQoud3Ata29wZi1rdyB7CiAgICB0ZXh0 LWFsaWduOiByaWdodDsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp Z2h0KTsgcGFkZGluZy1sZWZ0OiAxNHB4OwogICAgbWluLXdpZHRoOiAxMjBweDsKfQoud3Ata29w Zi1rdy1uciB7IGZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDE7IGNvbG9yOiB2YXIoLS10 ZXh0LWhlYWRpbmcpOyBmb250LXdlaWdodDogNzAwOyB9Ci53cC1rb3BmLWt3LW5yIHN0cm9uZyB7 IGZvbnQtc2l6ZTogMjhweDsgfQoud3Ata29wZi1rdy1kYXR1bSB7IGZvbnQtc2l6ZTogMTFweDsg Y29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luLXRvcDogM3B4OyB9Ci53cC1rb3Bm LWt3LWphaHIgeyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQou d3Ata29wZi1zcGVyciB7IG1hcmdpbi10b3A6IDZweDsgfQoud3AtdmVyZ2FuZ2VuLWJhZGdlIHsK ICAgIGJhY2tncm91bmQ6ICM1YTNhMmE7IGNvbG9yOiAjZjBkOGE4OyBwYWRkaW5nOiAzcHggMTBw eDsgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDog NjAwOwp9Cgoud3AtdGFiIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7 IGZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLWJvdHRvbTogMTJweDsgfQoud3AtdGFiIHRoLCAud3At dGFiIHRkIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgcGFkZGluZzog NHB4IDZweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci53cC10YWIgdGhlYWQgdGggeyBiYWNrZ3Jv dW5kOiByZ2JhKDAsMCwwLDAuMDQpOyBmb250LXdlaWdodDogNjAwOyB9CgovKiBMaW5rZSBIZWFk ZXItWmVsbGVuICjDvGJlciBMZmQuTnIgLyBOYW1lIC8gQW10cykga29tcGxldHQgb2huZQogICBI aW50ZXJncnVuZCBVTkQgb2huZSBDZWxsLUJvcmRlcnMg4oCUIHNvbnN0IGVudHN0ZWhlbiBkaWUg Z3JhdWVuIEJhaG5lbgogICB1bmQgZGllIHZlcnRpa2FsZW4gVHJlbm5saW5pZW4gendpc2NoZW4g ZGVuIGRyZWkgU3BhbHRlbi4gRGllIHJlY2h0ZQogICBIZWFkZXItU2VpdGUgKFZvcmdhYmUtTWFy a2VyLCBXb2NoZW50YWcsIERhdHVtKSBibGVpYnQgdW52ZXLDpG5kZXJ0LiAqLwoud3AtaC1sYWJl bCwKLndwLWgtc3BhbHRlbnRpdGVsLAoud3AtaC13dCB0aDpmaXJzdC1jaGlsZCB7CiAgICBiYWNr Z3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgYm9yZGVyOiBub25lICFpbXBvcnRh bnQ7Cn0KLndwLWgtbGFiZWwgewogICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwogICAg Zm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBw YWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50Owp9Ci53cC1oLXNwYWx0ZW50aXRlbCB7CiAgICBm b250LXNpemU6IDExcHg7CiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICBwYWRk aW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50Owp9Ci53cC1oLXZvcmcgdGggeyBmb250LXNpemU6IDEz cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLndwLXZvcmctRiB7IGJhY2tncm91bmQ6IHZhcigtLWZh cmJlLWZydWVoLCAjRkZFMDgyKSAhaW1wb3J0YW50OyBjb2xvcjogIzRhMzAwMCAhaW1wb3J0YW50 OyB9Ci53cC12b3JnLVMgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1zcGFldCwgI0E1RDZBNykg IWltcG9ydGFudDsgY29sb3I6ICMxYjNhMWYgIWltcG9ydGFudDsgfQoud3Atdm9yZy1OIHsgYmFj a2dyb3VuZDogdmFyKC0tZmFyYmUtbmFjaHQsICM5MENBRjkpICFpbXBvcnRhbnQ7IGNvbG9yOiAj MGUyYTQ3ICFpbXBvcnRhbnQ7IH0KCi53cC1oLXd0IHRoLCAud3AtaC1kYXR1bSB0aCB7IGZvbnQt c2l6ZTogMTFweDsgfQoud3AtY29sLWhldXRlIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMTkzLDcs MC4wNyk7IH0KLndwLWNvbC13ZSAgICB7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wMyk7IH0K LndwLWNvbC1mdCAgICB7IGJhY2tncm91bmQ6IHJnYmEoMTgzLCAyNiwgMjYsIDAuMDYpOyB9Cgou d3AtdGFiIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7IGJhY2tncm91bmQ6IHJnYmEoMCww LDAsMC4wMTUpOyB9Ci53cC10YWIgdGJvZHkgdHIud3AtbGVlci1zbG90IHRkIHsgY29sb3I6IHZh cigtLXRleHQtbXV0ZWQpOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDEpOyB9Ci53cC10YWIg dGJvZHkgdHIud3AtbGVlci1zbG90IC53cC1uciB7IG9wYWNpdHk6IDAuNTsgfQoud3AtbnIgeyB3 aWR0aDogMzBweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXdlaWdodDogNjAwOyB9 Ci8qIExpbmtlIFNwYWx0ZW4gKExmZC5OciAvIE5hbWUgLyBBbXRzKSBvaG5lIENlbGwtQm9yZGVy cy4gRGllIFRyZW5ubGluaWUKICAgendpc2NoZW4gZGVuIERhdGVuemVpbGVuIHdpcmQgc3RhdHRk ZXNzZW4gYXVmIGRpZSA8dHI+IGdlbGVndCDigJQgZGFtaXQKICAgaXN0IHNpZSBnYXJhbnRpZXJ0 IGVpbmUgZHVyY2hsYXVmZW5kZSBMaW5pZSwgdW5hYmjDpG5naWcgdm9uIENlbGwtQnJlaXRlLAog ICBQYWRkaW5nLVVudGVyc2NoaWVkZW4gdW5kIGJvcmRlci1jb2xsYXBzZS1FaWdlbmhlaXRlbi4g Ki8KLndwLXRhYiB0Ym9keSB0ciB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0t Ym9yZGVyLWxpZ2h0KTsKfQoud3AtdGFiIHRkLndwLW5yLAoud3AtdGFiIHRkLndwLW5hbWUsCi53 cC10YWIgdGQud3AtYW10cyB7CiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7CiAg ICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFp bXBvcnRhbnQ7CiAgICBwYWRkaW5nOiA0cHggOHB4ICFpbXBvcnRhbnQ7CiAgICB2ZXJ0aWNhbC1h bGlnbjogbWlkZGxlOwp9Ci53cC10YWIgdGQud3AtbmFtZSwKLndwLXRhYiB0ZC53cC1hbXRzIHsK ICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7 CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KLndw LXRhYiB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQud3AtbnIsCi53cC10YWIgdGJvZHkgdHI6 bnRoLWNoaWxkKGV2ZW4pIHRkLndwLW5hbWUsCi53cC10YWIgdGJvZHkgdHI6bnRoLWNoaWxkKGV2 ZW4pIHRkLndwLWFtdHMgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9Cgov KiBSYWhtZW5saW5pZW4gYW4gZGVuIEF1w59lbmthbnRlbiBkZXIgVGFnZXNzcGFsdGVuIHVuc2lj aHRiYXIgbWFjaGVuCiAgIChsaW5rcyBuZWJlbiBNbyAvIHJlY2h0cyBuZWJlbiBTbykg4oCUIHNv bnN0IGJyaWNodCBkaWUgVHJlbm51bmcgZGVyCiAgIGxpbmtlbiBCbG9jay1TcGFsdGVuIG9wdGlz Y2ggaW4gZGllIFRhZ2VzLVRhYmVsbGUgaGluZWluLiAqLwoud3AtaC12b3JnICB0aDpudGgtY2hp bGQoMiksICAgICAgICAgICAgICAgICAgICAvKiBlcnN0ZXMgVGFnZXMtVEggKG5hY2ggY29sc3Bh bj0zIExhYmVsKSAqLwoud3AtaC13dCAgICB0aDpudGgtY2hpbGQoMiksICAgICAgICAgICAgICAg ICAgICAvKiBlcnN0ZXMgVGFnZXMtVEggaW4gZGVyIFdvY2hlbnRhZy1aZWlsZSAqLwoud3AtaC1k YXR1bSB0aDpudGgtY2hpbGQoNCksICAgICAgICAgICAgICAgICAgICAvKiBlcnN0ZXMgVGFnZXMt VEggKG5hY2ggMyBTcGFsdGVudGl0ZWxuKSAqLwoud3AtdGFiIHRib2R5IHRkLndwLWFtdHMgKyB0 ZCB7ICAgICAgICAgICAgICAgICAvKiBlcnN0ZXMgVGFnZXMtVEQgaW4gamVkZXIgRGF0ZW56ZWls ZSAqLwogICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Cn0KLndw LXRhYiB0aDpsYXN0LWNoaWxkLAoud3AtdGFiIHRkOmxhc3QtY2hpbGQgewogICAgYm9yZGVyLXJp Z2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Owp9Cgoud3AtdGFiIHRkLndwLW5hbWUg ewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQoud3AtdGFiIHRk LndwLWFtdHMgewogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgZm9udC1zaXplOiAx MXB4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKfQoKLyogTGVlcmUgU2xvdHMgYXVmIGRlbSBCaWxk c2NoaXJtIGF1c2JsZW5kZW4gKERydWNrIHplaWd0IHNpZSB3ZWl0ZXIpICovCi53cC10YWIgdHIu d3AtbGVlci1zbG90IHsgZGlzcGxheTogbm9uZTsgfQpAbWVkaWEgcHJpbnQgewogICAgLndwLXRh YiB0ci53cC1sZWVyLXNsb3QgeyBkaXNwbGF5OiB0YWJsZS1yb3c7IH0KfQoKLyogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogICBMSVZFLVNZTkMgSElHSExJR0hUIOKAlCBnZWFlbmRlcnRlIFplbGxlbiBsZXVj aHRlbiBrdXJ6IGF1Ziwgd2VubiBlaW4KICAgYW5kZXJlciBVc2VyIGVpbmUgQWVuZGVydW5nIGdl cHVzaHQgaGF0IChBdWRpdCAyMDI2LTA1LTA0IC8gTXVsdGktVXNlci1BKS4KICAgWndlaSBWYXJp YW50ZW46CiAgIC0gLnplbGxlLWZsYXNoICAgICAgZnVlciBIYXVwdGFuc2ljaHRzLVplbGxlbiAo SW5saW5lLVBpbGxlKQogICAtIC56ZWxsZS1mbGFzaC1yb3cgIGZ1ZXIgRFNNLVplbGxlbiAvIEtv bW1lbnRhci1aZWxsZW4gKFJlaWhlKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCkBrZXlmcmFtZXMg c3luY1plbGxlRmxhc2ggewogICAgMCUgICB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUs IDE2OCwgMzIsIDAuMCk7ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE5NiwgNjQsIDAu NTUpOyB9CiAgICAzNSUgIHsgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMjU1LCAxNjgsIDMy LCAwLjU1KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE5NiwgNjQsIDAuNDApOyB9CiAg ICAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMTY4LCAzMiwgMC4wKTsgICBi YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfQp9Ci56ZWxsZS1mbGFzaCB7CiAgICBhbmlt YXRpb246IHN5bmNaZWxsZUZsYXNoIDkwMG1zIGVhc2Utb3V0IDE7CiAgICBib3JkZXItcmFkaXVz OiAzcHg7Cn0KQGtleWZyYW1lcyBzeW5jRHNtRmxhc2ggewogICAgMCUgICB7IG91dGxpbmU6IDJw eCBzb2xpZCByZ2JhKDI1NSwgMTY4LCAzMiwgMC4wKTsgICBvdXRsaW5lLW9mZnNldDogLTJweDsg fQogICAgMzUlICB7IG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDI1NSwgMTY4LCAzMiwgMC45NSk7 ICBvdXRsaW5lLW9mZnNldDogLTJweDsgfQogICAgMTAwJSB7IG91dGxpbmU6IDJweCBzb2xpZCBy Z2JhKDI1NSwgMTY4LCAzMiwgMC4wKTsgICBvdXRsaW5lLW9mZnNldDogLTJweDsgfQp9Ci56ZWxs ZS1mbGFzaC1yb3cgewogICAgYW5pbWF0aW9uOiBzeW5jRHNtRmxhc2ggOTAwbXMgZWFzZS1vdXQg MTsKfQoud3AtemVsbGUgeyBmb250LXdlaWdodDogNjAwOyBtaW4td2lkdGg6IDU2cHg7IH0KLndw LXplbGxlLWVkaXQgeyBjdXJzb3I6IHBvaW50ZXI7IH0KLndwLXplbGxlLWVkaXQ6aG92ZXIgeyBi b3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggdmFyKC0tdGV4dC1wcmltYXJ5KTsgfQoKLndwLW5v dGl6ZW4geyBtYXJnaW4tdG9wOiA4cHg7IHBhZGRpbmc6IDEwcHggMTJweDsgYm9yZGVyOiAxcHgg c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogM3B4OyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1jYXJkLCAjZmZmKTsgfQoud3Atbm90aXplbi10aXRlbCB7IGZvbnQtc2l6ZTog MTFweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFy Z2luLWJvdHRvbTogNHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2lu ZzogMC41cHg7IH0KLndwLW5vdGl6LXRleHRhcmVhIHsKICAgIHdpZHRoOiAxMDAlOyBtaW4taGVp Z2h0OiA5MHB4OyByZXNpemU6IHZlcnRpY2FsOwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZv bnQtc2l6ZTogMTJweDsgcGFkZGluZzogNnB4IDhweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZh cigtLWJvcmRlci1saWdodCk7IGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGJhY2tncm91bmQ6IHZh cigtLWJnLWNhcmQsICNmZmYpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGJveC1z aXppbmc6IGJvcmRlci1ib3g7Cn0KLndwLW5vdGl6LXRleHRhcmVhW3JlYWRvbmx5XSB7IGJhY2tn cm91bmQ6IHJnYmEoMCwwLDAsMC4wNCk7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgY3Vyc29y OiBub3QtYWxsb3dlZDsgfQoKLndwLXNlaXRlLWZ1c3MgewogICAgZGlzcGxheTogZmxleDsganVz dGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tdG9wOiAxMHB4OwogICAgcGFkZGlu Zy10b3A6IDZweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAg ICBmb250LXNpemU6IDEwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKfQoKLyogQWx0ZSBW STMtV29jaGVucGxhbi1LbGFzc2VuIHdlcmRlbiB2b20gbmV1ZW4gUmVuZGVyIG5pY2h0IG1laHIg Z2VudXR6dDsgYmxlaWJlbiBhbHMKICAgRmFsbGJhY2sgZXJoYWx0ZW4gKHNpZWhlIHdlaXRlciB1 bnRlbikuICovCi53cC1zY3JvbGwgewogICAgZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87IHBhZGRp bmc6IDE2cHg7Cn0KLndwLXRhYmVsbGUgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItY29s bGFwc2U6IGNvbGxhcHNlOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgdGFibGUtbGF5b3V0OiBm aXhlZDsKfQoud3AtdGFiZWxsZSB0aCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5 KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgcGFkZGluZzogNnB4IDZw eDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQt d2VpZ2h0OiA3MDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUp OwogICAgcG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogMDsKICAgIHotaW5kZXg6IDI7Cn0KLndw LXRoLXRhZyB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5LWRhcmspICFpbXBvcnRh bnQ7CiAgICB3aWR0aDogMTYwcHg7CiAgICBtaW4td2lkdGg6IDE2MHB4OwogICAgdGV4dC1hbGln bjogbGVmdCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7Cn0K LndwLXRoLWdydXBwZSB7IGZvbnQtc2l6ZTogMTJweDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB9 Ci53cC10aC1kZ2wgeyBiYWNrZ3JvdW5kOiAjMWEzZDVjICFpbXBvcnRhbnQ7IH0KLndwLXRoLXdk ZiB7IGJhY2tncm91bmQ6ICMzZDJhMWEgIWltcG9ydGFudDsgfQoud3AtdGgtc2NoaWNodDIgeyBm b250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHBhZGRpbmc6IDNweCA0cHggIWltcG9y dGFudDsgfQoud3AtdGgtZG5yLCAud3AtdGgtZG5yLWdydXBwZSB7IGJhY2tncm91bmQ6ICNiOGEw MjAgIWltcG9ydGFudDsgY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDsgfQoud3AtdGgtdHJlbm5l ciB7IHdpZHRoOiAxMHB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBib3Jk ZXI6IG5vbmUgIWltcG9ydGFudDsgfQoKLndwLXRhYmVsbGUgdGQgewogICAgcGFkZGluZzogMnB4 IDRweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICB2ZXJ0 aWNhbC1hbGlnbjogbWlkZGxlOwogICAgbWluLWhlaWdodDogMjBweDsKICAgIGZvbnQtc2l6ZTog MTFweDsKfQoud3AtdGQtdHJlbm5lciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRh bnQ7IGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyB9Cgoud3Atc2NoaWNodC1mcnVlaCB7IGJvcmRl ci1sZWZ0OiAzcHggc29saWQgdmFyKC0tZmFyYmUtZnJ1ZWgpOyB9Ci53cC1zY2hpY2h0LXNwYWV0 IHsgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1mYXJiZS1zcGFldCk7IH0KLndwLXNjaGlj aHQtbmFjaHQgeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWZhcmJlLW5hY2h0KTsgfQoK LyogVGFnZXMtU3BhbHRlOiBXb2NoZW50YWcgKyBEYXR1bSArIE1ldGEgKEZlaWVydGFnLCBTb25k ZXJ0YWcsIEdlYnVydHN0YWcsIFN0w6Rya2UpICovCi53cC10ZC10YWcgewogICAgYmFja2dyb3Vu ZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50 OwogICAgcGFkZGluZzogNnB4IDEwcHggIWltcG9ydGFudDsKICAgIGJvcmRlci1yaWdodDogMnB4 IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwp9Ci53cC10YWcta29wZiB7IGRpc3BsYXk6IGZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyBmb250LXNpemU6IDExcHg7IH0K LndwLXRhZy13dCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZh cigtLXRleHQtaGVhZGluZyk7IH0KLndwLXRhZy1kYXR1bSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0K LndwLXRhZy1mdC1uYW1lIHsgY29sb3I6IHZhcigtLWZhcmJlLWZlaGxlcik7IGZvbnQtd2VpZ2h0 OiA2MDA7IGZvbnQtc2l6ZTogMTBweDsgfQoud3AtdGFnLWZlcmllbi1uYW1lIHsgY29sb3I6ICNl NjdlMjI7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTBweDsgfQoud3AtdGFnLXNvbmRl ci1oaW53ZWlzIHsgY29sb3I6ICM0YTkwZTI7IGZvbnQtc2l6ZTogMTBweDsgfQoud3AtdGFnLXNv bmRlci13YXJudW5nIHsgY29sb3I6ICNlNjdlMjI7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWln aHQ6IDYwMDsgfQoud3AtdGFnLWdiIHsgY29sb3I6ICNkNGEwMTc7IGZvbnQtc2l6ZTogMTBweDsg fQoud3AtdGFnLW1ldGEgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNl bnRlcjsgbWFyZ2luLXRvcDogMnB4OyB9Ci53cC10YWctc3RhZXJrZSB7CiAgICBkaXNwbGF5OiBp bmxpbmUtYmxvY2s7IHBhZGRpbmc6IDFweCA1cHg7IGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZv bnQtZmFtaWx5OiBtb25vc3BhY2U7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDcwMDsK ICAgIGNvbG9yOiAjZmZmOwp9Ci53cC10YWctc3RhZXJrZS1vayB7IGJhY2tncm91bmQ6IHZhcigt LWZhcmJlLWVyZm9sZyk7IH0KLndwLXRhZy1zdGFlcmtlLXdhcm4geyBiYWNrZ3JvdW5kOiB2YXIo LS1mYXJiZS1mZWhsZXIpOyBhbmltYXRpb246IHB1bHNSb3QgMnMgZWFzZS1pbi1vdXQgaW5maW5p dGU7IH0KLndwLXRhZy1hYncgeyBmb250LXNpemU6IDEwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11 dGVkKTsgY3Vyc29yOiBoZWxwOyB9CgovKiBUYWdlcy1CbG9jayBIaW50ZXJncnVuZC1WYXJpYW50 ZW4gKi8KLndwLXRhZy1oZXV0ZSAud3AtdGQtdGFnIHsgYmFja2dyb3VuZDogdmFyKC0tdGFnLWhl dXRlKTsgY29sb3I6ICNmZmY7IH0KLndwLXRhZy1oZXV0ZSAud3AtdGQtdGFnIC53cC10YWctd3Qs IC53cC10YWctaGV1dGUgLndwLXRkLXRhZyAud3AtdGFnLWRhdHVtIHsgY29sb3I6ICNmZmY7IH0K LndwLXRhZy1mdCAud3AtdGQtdGFnIHsgYmFja2dyb3VuZDogdmFyKC0tdGFnLWZlaWVydGFnKTsg fQoud3AtdGFnLXdlIC53cC10ZC10YWcgeyBiYWNrZ3JvdW5kOiB2YXIoLS10YWctd29jaGVuZW5k ZSk7IGNvbG9yOiAjRThEOEYwOyB9Ci53cC10YWctd2UgLndwLXRkLXRhZyAud3AtdGFnLXd0LCAu d3AtdGFnLXdlIC53cC10ZC10YWcgLndwLXRhZy1kYXR1bSB7IGNvbG9yOiAjRjBFMEY1OyB9Cgov KiBMZWljaHRlIEhpbnRlcmdydW5kLUVpbmbDpHJidW5nIGluIE5hbWVuc3plbGxlbiBhbSBGVC9X RSAqLwoud3AtdGFnLWZ0IC53cC10ZC1uYW1lLCAud3AtdGFnLWZ0IC53cC10ZC1kbnIgeyBiYWNr Z3JvdW5kOiByZ2JhKDEzOSwyNiwyNiwwLjA4KTsgfQoud3AtdGFnLXdlIC53cC10ZC1uYW1lLCAu d3AtdGFnLXdlIC53cC10ZC1kbnIgeyBiYWNrZ3JvdW5kOiByZ2JhKDkxLDQ1LDEyMiwwLjA3KTsg fQoud3AtdGFnLWhldXRlIC53cC10ZC1uYW1lLCAud3AtdGFnLWhldXRlIC53cC10ZC1kbnIgeyBi YWNrZ3JvdW5kOiByZ2JhKDIxMiwxNjAsMjMsMC4xMCk7IH0KCi8qIFRhZ2VzYmxvY2stVHJlbm5r YW50ZSAqLwoud3AtemVpbGUtdGFnLWVuZGUgdGQgeyBib3JkZXItYm90dG9tOiAycHggc29saWQg dmFyKC0tYm9yZGVyLXN0cm9uZyk7IH0KCi8qIE5hbWVuLVplbGxlbiAqLwoud3AtdGQtbmFtZSB7 IHBhZGRpbmc6IDJweCA2cHggIWltcG9ydGFudDsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci53cC1u YW1lIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAg Zm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIHdoaXRlLXNwYWNlOiBu b3dyYXA7Cn0KLndwLW5hbWUtdmVyYW50dyB7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29s b3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNENEEw MTc7CiAgICBwYWRkaW5nLWxlZnQ6IDVweDsKfQoud3AtbmFtZS1mYnAgeyBmb250LXN0eWxlOiBp dGFsaWM7IH0KLndwLW5hbWUtZmJwIHN1cCB7IGNvbG9yOiAjZDRhMDE3OyBmb250LXdlaWdodDog NzAwOyBtYXJnaW4tbGVmdDogMXB4OyB9Ci8qID09PT09IFdvY2hlbnBsYW46IFRhZ2VzYmzDtmNr ZSAoQmlsZHNjaGlybSArIEJhc2lzIGbDvHJzIERydWNrZW4pID09PT09ICovCi53cC1zZWl0ZSB7 CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgcGFkZGluZzogMTZweCAxOHB4OwogICAg bWF4LXdpZHRoOiAxMjAwcHg7IG1hcmdpbjogMTJweCBhdXRvOwogICAgYm94LXNoYWRvdzogMCAy cHggMTBweCByZ2JhKDAsMCwwLDAuMDYpOwogICAgYm9yZGVyLXJhZGl1czogNHB4Owp9Ci53cC1z ZWl0ZS1rb3BmIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgcGFkZGluZy1ib3R0b206IDhweDsgYm9y ZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWJnLXByaW1hcnkpOyB9Ci53cC1zZWl0ZS1rb3Bm IGgxIHsKICAgIGZvbnQtc2l6ZTogMTVweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigt LXRleHQtaGVhZGluZyk7CiAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7IG1hcmdpbjogMDsKfQou d3Atc2VpdGUta29wZiBoMSBzdHJvbmcgeyBjb2xvcjogdmFyKC0tYmctcHJpbWFyeSk7IH0KCi53 cC10YWdibG9jayB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z OiAxNDBweCAxZnI7CiAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICBib3JkZXI6IDFweCBzb2xp ZCB2YXIoLS1iZy1wcmltYXJ5KTsKICAgIGJhY2tncm91bmQ6ICNmZmY7Cn0KW2RhdGEtdGhlbWU9 Im5pZ2h0Il0gLndwLXRhZ2Jsb2NrIHsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRl ci1jb2xvcjogIzNhNGQ2MDsgfQoKLndwLXRhZ2Jsb2NrLWxhYmVsIHsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogI2ZmZjsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgt ZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBzdHJldGNoOyBqdXN0aWZ5LWNvbnRlbnQ6 IGZsZXgtc3RhcnQ7CiAgICBwYWRkaW5nOiA2cHggOHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBnYXA6 IDA7Cn0KLndwLXRsLWtvcGYgewogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGJhc2Vs aW5lOyBnYXA6IDZweDsKICAgIHBhZGRpbmctYm90dG9tOiA0cHg7CiAgICBib3JkZXItYm90dG9t OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwp9Ci53cC10bC13dCB7IGZvbnQtc2l6 ZTogMTNweDsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB9Ci53cC10 bC1kYXR1bSB7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgb3BhY2l0 eTogMC45OyB9Ci53cC10bC16dXNhdHotYm94IHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGly ZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyBtYXJnaW4tdG9wOiAxNHB4OyB3aWR0aDogMTAwJTsK fQoud3AtdGwtenVzYXR6IHsKICAgIGZvbnQtc2l6ZTogMTBweDsgcGFkZGluZzogMnB4IDVweDsg Ym9yZGVyLXJhZGl1czogMnB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE1 KTsgbGluZS1oZWlnaHQ6IDEuMzsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBo aWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogbGVmdDsKfQou d3AtdGwtei1mdCB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDIwMCwyMDAsMC4yNSk7IGZvbnQtd2Vp Z2h0OiA3MDA7IH0KLndwLXRsLXotd2FybnVuZyB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDE4MCwx MDAsMC4zKTsgfQoKLndwLXRhZ2Jsb2NrLWluaGFsdCB7IHBhZGRpbmc6IDA7IH0KCi53cC10YWdi bG9jay10YWJlbGxlIHsKICAgIHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNl OyB0YWJsZS1sYXlvdXQ6IGZpeGVkOwogICAgZm9udC1zaXplOiAxMnB4Owp9Ci53cC10YWdibG9j ay10YWJlbGxlIHRoLAoud3AtdGFnYmxvY2stdGFiZWxsZSB0ZCB7CiAgICBib3JkZXI6IDFweCBz b2xpZCAjYzhjZWQ0OwogICAgcGFkZGluZzogM3B4IDZweDsKICAgIHZlcnRpY2FsLWFsaWduOiBt aWRkbGU7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9CltkYXRhLXRoZW1lPSJuaWdodCJdIC53cC10 YWdibG9jay10YWJlbGxlIHRoLApbZGF0YS10aGVtZT0ibmlnaHQiXSAud3AtdGFnYmxvY2stdGFi ZWxsZSB0ZCB7IGJvcmRlci1jb2xvcjogIzNhNGQ2MDsgfQoKLndwLXRhZy1oMSB0aCB7CiAgICBi YWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6ICNmZmY7CiAgICBmb250LXdlaWdo dDogNzAwOyBmb250LXNpemU6IDEycHg7IHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6 IDRweCA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1iZy1wcmltYXJ5KTsKfQoud3At dGFnLWgxIHRoLndwLWgxLWRnbCB7IGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNmZmY7IH0KCi53 cC10YWctaDIgdGggewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeS1kYXJrKTsgY29s b3I6ICNmZmY7CiAgICBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDExcHg7IHRleHQtYWxp Z246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2 YXIoLS1iZy1wcmltYXJ5KTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1z cGFjaW5nOiAwLjNweDsKfQoKLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQgewogICAgaGVpZ2h0OiAy MnB4OyBtaW4taGVpZ2h0OiAyMnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9Ci53cC10YWdibG9j ay10YWJlbGxlIHRkLndwLXNjaGljaHQtZnJ1ZWggeyBiYWNrZ3JvdW5kOiByZ2JhKDE4MywyOCwy OCwwLjA1KTsgfQoud3AtdGFnYmxvY2stdGFiZWxsZSB0ZC53cC1zY2hpY2h0LXNwYWV0IHsgYmFj a2dyb3VuZDogcmdiYSgyNiw4MiwxMTgsMC4wNSk7IH0KLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQu d3Atc2NoaWNodC1uYWNodCB7IGJhY2tncm91bmQ6IHJnYmEoMjcsOTQsMzIsMC4wNSk7IH0KW2Rh dGEtdGhlbWU9Im5pZ2h0Il0gLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQud3Atc2NoaWNodC1mcnVl aCB7IGJhY2tncm91bmQ6IHJnYmEoMTgzLDI4LDI4LDAuMTIpOyB9CltkYXRhLXRoZW1lPSJuaWdo dCJdIC53cC10YWdibG9jay10YWJlbGxlIHRkLndwLXNjaGljaHQtc3BhZXQgeyBiYWNrZ3JvdW5k OiByZ2JhKDI2LDgyLDExOCwwLjE1KTsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAud3AtdGFnYmxv Y2stdGFiZWxsZSB0ZC53cC1zY2hpY2h0LW5hY2h0IHsgYmFja2dyb3VuZDogcmdiYSgyNyw5NCwz MiwwLjEyKTsgfQoKLyogVmVydGlrYWxlIFRyZW5udW5nIERHTCB8IFdERi9GQlAgKi8KLndwLXRh Z2Jsb2NrLXRhYmVsbGUgdGQ6bnRoLWNoaWxkKDMpLAoud3AtdGFnYmxvY2stdGFiZWxsZSAud3At dGFnLWgyIHRoOm50aC1jaGlsZCgzKSB7IGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHZhcigtLWJn LXByaW1hcnkpOyB9Cgoud3AtbmFtZSB7IGZvbnQtc2l6ZTogMTFweDsgd2hpdGUtc3BhY2U6IG5v d3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IGRpc3BsYXk6 IGlubGluZS1ibG9jazsgbWF4LXdpZHRoOiAxMDAlOyB9Ci53cC1uYW1lLWZicCB7IGZvbnQtc3R5 bGU6IGl0YWxpYzsgfQoud3AtbmFtZS1mYnAgc3VwIHsgY29sb3I6ICNENEEwMTc7IGZvbnQtd2Vp Z2h0OiA3MDA7IG1hcmdpbi1sZWZ0OiAxcHg7IH0KCi8qIFRhZy1TdGF0dXMtQWt6ZW50ZSAoZGV6 ZW50KSAqLwoud3AtdGFnYmxvY2staGV1dGUgeyBvdXRsaW5lOiAycHggc29saWQgI0Q0QTAxNzsg b3V0bGluZS1vZmZzZXQ6IC0xcHg7IH0KLndwLXRhZ2Jsb2NrLWZ0IC53cC10YWdibG9jay1sYWJl bCB7IGJhY2tncm91bmQ6ICM4QjFBMUE7IH0KLndwLXRhZ2Jsb2NrLWZ0LXdpY2h0aWcgLndwLXRh Z2Jsb2NrLWxhYmVsIHsgYmFja2dyb3VuZDogI0I3MUMxQzsgfQoud3AtdGFnYmxvY2std2UgLndw LXRhZ2Jsb2NrLWxhYmVsIHsgYmFja2dyb3VuZDogIzUyODJBNjsgfQoud3AtdGFnYmxvY2stbnMg LndwLXRhZ2Jsb2NrLWxhYmVsIHsgYmFja2dyb3VuZDogIzFBNTI3NjsgfQoKLndwLXNlaXRlLWZ1 c3MgewogICAgbWFyZ2luLXRvcDogMTJweDsgcGFkZGluZy10b3A6IDEwcHg7CiAgICBib3JkZXIt dG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGRpc3BsYXk6IGZsZXg7IGp1 c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGZvbnQtc2l6ZTogMTBweDsgY29sb3I6 IHZhcigtLXRleHQtbXV0ZWQpOwp9Ci53cC1mdXNzLW5vdGUgc3VwIHsgZm9udC13ZWlnaHQ6IDcw MDsgfQoKLyogPT09PT0gRHJ1Y2stTGF5b3V0IFdvY2hlbnBsYW4gRkxEICgxIFNlaXRlIEE0IGhv Y2gpID09PT09CiAgIEE0IHBvcnRyYWl0OiAyMTAgw5cgMjk3bW0uIE1pdCA3bW0vOG1tIE1hcmdp biBibGVpYmVuIH4xOTZtbSDDlyB+MjgzbW0uCiAgIExheW91dDogSGVhZGVyIH4yNW1tLCBUYWJl bGxlIH4xOTBtbSAoMyBIZWFkZXIgKyAzNiBTbG90cyDDoCB+NC43bW0pLAogICBOb3RpemVuIH41 MG1tLCBGb290ZXIgfjZtbSA9IH4yNzFtbSDigJQgcGFzc3QgbWl0IFNwaWVscmF1bS4gKi8KQG1l ZGlhIHByaW50IHsKICAgIEBwYWdlIHsgc2l6ZTogQTQgcG9ydHJhaXQ7IG1hcmdpbjogOG1tIDdt bTsgfQoKICAgIC8qIEFsbGVzIGF1w59lciBkZW0gV29jaGVucGxhbiBhdXNibGVuZGVuICovCiAg ICBib2R5LmRydWNrZW4td29jaGVucGxhbiAuYW5zaWNodDpub3QoI2Fuc2ljaHQtd29jaGVucGxh biksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiBoZWFkZXIsCiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiBuYXYsCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAudG9vbGJhciwKICAg IGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10b29sYmFyLAogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gLndwLW5vLXByaW50LAogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gI21vZGFs LW92ZXJsYXksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAjdG9hc3QtY29udGFpbmVyLAog ICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLmhlYWRlciwKICAgIGJvZHkuZHJ1Y2tlbi13b2No ZW5wbGFuIC5oYXVwdG5hdiwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC5zZWl0ZW5sZWlz dGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KCiAgICBib2R5LmRydWNrZW4td29jaGVu cGxhbiB7IGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsgfQogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gI2Fuc2ljaHQtd29jaGVucGxhbiB7CiAgICAgICAgZGlzcGxheTogYmxvY2sgIWlt cG9ydGFudDsKICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IG1hcmdpbjogMCAhaW1wb3J0 YW50OyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiAud3AtcGFnZSwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1sYXlv dXQgewogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6IG5v bmUgIWltcG9ydGFudDsgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzog MCAhaW1wb3J0YW50OyBtYXJnaW46IDAgIWltcG9ydGFudDsgYmFja2dyb3VuZDogI2ZmZiAhaW1w b3J0YW50OwogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5 LmRydWNrZW4td29jaGVucGxhbiAud3Atc2VpdGUgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmYg IWltcG9ydGFudDsgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbjog MCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWF4LXdpZHRoOiBu b25lICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAv KiBIZWFkZXIg4oCUIGtvbXBha3QsIGVpbnplaWxpZyB3aXJrZW5kLCBMb2dvICsgVGl0ZWwgKyBL Vy1Cb3ggcmVjaHRzICovCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3Atc2VpdGUta29w ZiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogM21tOyBwYWRkaW5nLWJvdHRvbTogMm1tOwogICAg ICAgIGJvcmRlci1ib3R0b206IDAuNm1tIHNvbGlkICMwMDA7CiAgICB9CiAgICBib2R5LmRydWNr ZW4td29jaGVucGxhbiAud3Ata29wZi1oYXVwdCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1 bW5zOiBhdXRvIDFmciBhdXRvOwogICAgICAgIGdhcDogNm1tOyBhbGlnbi1pdGVtczogY2VudGVy OwogICAgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWtvcGYtbG9nbyB7CiAgICAg ICAgaGVpZ2h0OiAxNG1tICFpbXBvcnRhbnQ7IG1heC13aWR0aDogMjZtbSAhaW1wb3J0YW50Owog ICAgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWtvcGYtdGV4dCBoMSB7IGZvbnQt c2l6ZTogMTNwdDsgbWFyZ2luOiAwOyBsaW5lLWhlaWdodDogMS4xOyB9CiAgICBib2R5LmRydWNr ZW4td29jaGVucGxhbiAud3Ata29wZi1kaWVuc3RzdGVsbGUgeyBmb250LXNpemU6IDcuNXB0OyBs ZXR0ZXItc3BhY2luZzogMC40cHg7IG1hcmdpbi1ib3R0b206IDFtbTsgfQogICAgYm9keS5kcnVj a2VuLXdvY2hlbnBsYW4gLndwLWtvcGYtdW50ZXJ0aXRlbCB7IGZvbnQtc2l6ZTogOHB0OyBtYXJn aW4tdG9wOiAxbW07IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1rb3BmLWt3IHsK ICAgICAgICBib3JkZXItbGVmdDogMC4zbW0gc29saWQgIzg4ODsgcGFkZGluZy1sZWZ0OiA0bW07 IHRleHQtYWxpZ246IHJpZ2h0OyBtaW4td2lkdGg6IDA7CiAgICB9CiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiAud3Ata29wZi1rdy1uciB7IGZvbnQtc2l6ZTogMTNwdDsgbGluZS1oZWlnaHQ6 IDE7IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1rb3BmLWt3LW5yIHN0cm9uZyB7 IGZvbnQtc2l6ZTogMTlwdDsgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWtvcGYt a3ctZGF0dW0geyBmb250LXNpemU6IDguNXB0OyBtYXJnaW4tdG9wOiAxbW07IH0KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1rb3BmLWt3LWphaHIgeyBmb250LXNpemU6IDcuNXB0OyB9 CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdmVyZ2FuZ2VuLWJhZGdlIHsgZm9udC1z aXplOiA3LjVwdDsgcGFkZGluZzogMC41bW0gMm1tOyB9CgogICAgLyogVGFiZWxsZSDigJQgZmVz dCBhdWYgMTk2bW0gRHJ1Y2ticmVpdGUgbWl0IGtsYXIgdmVydGVpbHRlbiBTcGFsdGVuOgogICAg ICAgTGZkLk5yLiB+OW1tLCBOYW1lIH4zOG1tLCA3IFRhZ2Ugw6AgfjIxbW0gPSAxNDdtbSDihpIg VG90YWwgfjE5NG1tLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB7CiAg ICAgICAgZm9udC1zaXplOiA5cHQ7IG1hcmdpbi1ib3R0b206IDJtbTsKICAgICAgICB0YWJsZS1s YXlvdXQ6IGZpeGVkOyB3aWR0aDogMTAwJTsKICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZv aWQgIWltcG9ydGFudDsgYnJlYWstaW5zaWRlOiBhdm9pZCAhaW1wb3J0YW50OwogICAgfQogICAg LyogSW0gV29jaGVucGxhbi1EcnVjayB3aXJkIGRpZSBCcmFuZCBzY2hvbiDDvGJlciAud3Atc2Vp dGUta29wZgogICAgICAgKExvZ28gKyBUaXRlbCArIEtXLUJveCkgZ2VyZW5kZXJ0IOKAlCBkaWUg Z2xvYmFsZSBQZXJzcGxhbi1SZWdlbAogICAgICAgJ2JvZHkgPiAja29wZmxlaXN0ZSB7IGRpc3Bs YXk6IGZsZXggfScgbXVzcyBoaWVyIGV4cGxpeml0CiAgICAgICDDvGJlcnNjaHJpZWJlbiB3ZXJk ZW4uICovCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiA+ICNrb3BmbGVpc3RlIHsgZGlzcGxh eTogbm9uZSAhaW1wb3J0YW50OyB9CgogICAgLyogU3BhbHRlbmJyZWl0ZW46IEFtdHMgYXVmIDMy bW0gKEhlYWRlciDigJ5BbXRzYmV6ZWljaG51bmciIHBhc3N0CiAgICAgICBzaWNoZXIpOyBOYW1l IDM2bW07IFRhZ2Vzc3BhbHRlbiBhdWYgMTZtbS4KICAgICAgIFRvdGFsOiA4ICsgMzYgKyAzMiAr IDfDlzE2ID0gMTg4bW0gKHBhc3N0IGluIDE5Nm1tIERydWNrYnJlaXRlKS4gKi8KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1jb2wtbnIgICB7IHdpZHRoOiA4bW07IH0KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1jb2wtbmFtZSB7IHdpZHRoOiAzNm1tOyB9CiAgICBib2R5 LmRydWNrZW4td29jaGVucGxhbiAud3AtY29sLWFtdHMgeyB3aWR0aDogMzJtbTsgfQogICAgYm9k eS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWNvbC10YWcgIHsgd2lkdGg6IDE2bW07IH0KCiAgICAv KiBHZW5lcmlzY2hlIENlbGwtRGVmYXVsdHM6IFN0YW5kYXJkLVBhZGRpbmcsIG1pdHRpZ2UgQXVz cmljaHR1bmcuCiAgICAgICBCb3JkZXJzIHdlcmRlbiBOSUNIVCBnbG9iYWwgZ2VzZXR6dCDigJQg ZGllIGxpbmtlbiAzIFNwYWx0ZW4gaGFiZW4KICAgICAgIGdhciBrZWluZSwgZGllIHJlY2h0ZW4g NyBUYWdlc3NwYWx0ZW4gYmVrb21tZW4gc2llIHVudGVuIGdlemllbHQuICovCiAgICBib2R5LmRy dWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRoZWFkIHRoLAogICAgYm9keS5kcnVja2VuLXdvY2hl bnBsYW4gLndwLXRhYiB0Ym9keSB0ZCB7CiAgICAgICAgcGFkZGluZzogMC43bW0gMS41bW0gIWlt cG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS4xNSAhaW1wb3J0YW50OwogICAgICAgIGJv eC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB2 ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiAud3AtdGFiIHRoZWFkIHRoIHsgZm9udC1zaXplOiA4LjVwdDsgfQogICAgYm9k eS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWgtdm9yZyB0aCB7IGZvbnQtc2l6ZTogMTAuNXB0OyBm b250LXdlaWdodDogNzAwOyB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRi b2R5IHRyIHsgaGVpZ2h0OiA0LjdtbTsgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndw LXplbGxlIHsgZm9udC1zaXplOiA5cHQ7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCiAgICAvKiBUYWdl c3NwYWx0ZW4gKE1v4oCTU28pOiB2b2xsZXIgQ2VsbC1Cb3JkZXItR3JpZCB3aWUgRXhjZWwuICov CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRib2R5IHRkLndwLXplbGxlLAog ICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0aGVhZCAud3AtaC12b3JnIHRoOm5v dCgud3AtaC1sYWJlbCksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRoZWFk IC53cC1oLXd0IHRoOm5vdCg6Zmlyc3QtY2hpbGQpLAogICAgYm9keS5kcnVja2VuLXdvY2hlbnBs YW4gLndwLXRhYiB0aGVhZCAud3AtaC1kYXR1bSB0aDpub3QoLndwLWgtc3BhbHRlbnRpdGVsKSB7 CiAgICAgICAgYm9yZGVyOiAwLjI1bW0gc29saWQgIzQ0NCAhaW1wb3J0YW50OwogICAgfQoKICAg IC8qIExpbmtlIDMgQ2VsbHMgKExmZC5OciAvIE5hbWUgLyBBbXRzKSDigJQgZ2xlaWNoZSBzY2h3 YXJ6ZSBDZWxsLUJvcmRlcgogICAgICAgd2llIGRpZSBUYWdlc3NwYWx0ZW4sIGRhbWl0IGRpZSBU YWJlbGxlIGltIERydWNrIGFscyBlaW4gZWluaGVpdGxpY2hlcgogICAgICAgRXhjZWwtR3JpZCB3 aXJrdC4gYGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudGAgaXN0IEtSSVRJU0NIOgogICAg ICAgb2huZSDDvGJlcnNjaHJlaWJ0IGVpbmUgdW5zY29wdGUgYC53cC1uYW1lIHsgZGlzcGxheTog aW5saW5lLWJsb2NrIH1gLQogICAgICAgUmVnZWwgd2VpdGVyIG9iZW4gZGFzIERlZmF1bHQtYHRh YmxlLWNlbGxgIGRlciBURCB1bmQgZGllIGxlZXJlbgogICAgICAgQ2VsbHMgaW4gZGVuIExlZXIt U2xvdHMga29sbGFiaWVyZW4gYXVmIG1pbi1jb250ZW50LgogICAgICAgYG9wYWNpdHk6IDEgIWlt cG9ydGFudGAgw5xCRVJTQ0hSRUlCVCBlaW5lIGAud3AtbGVlci1zbG90IC53cC1uciB7CiAgICAg ICBvcGFjaXR5OiAwLjUgfWAtUmVnZWwgd2VpdGVyIG9iZW4sIGRpZSBzb25zdCBkaWUgTGZkLk5y LUNlbGxzIGluCiAgICAgICBkZW4gTGVlci1TbG90cyB0cmFuc3BhcmVudCBtYWNodCB1bmQgaWhy ZW4gWmVicmEtSGludGVyZ3J1bmQgaGVsbGVyCiAgICAgICB3aXJrZW4gbMOkc3N0LiAqLwogICAg Ym9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0Ym9keSB0ZC53cC1uciwKICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGJvZHkgdGQud3AtbmFtZSwKICAgIGJvZHkuZHJ1 Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGJvZHkgdGQud3AtYW10cyB7CiAgICAgICAgZGlzcGxh eTogdGFibGUtY2VsbCAhaW1wb3J0YW50OwogICAgICAgIGJvcmRlcjogMC4yNW1tIHNvbGlkICM0 NDQgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nOiAwLjdtbSAybW0gIWltcG9ydGFudDsKICAg ICAgICBsaW5lLWhlaWdodDogMS4xNSAhaW1wb3J0YW50OwogICAgICAgIHZlcnRpY2FsLWFsaWdu OiBtaWRkbGUgIWltcG9ydGFudDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7 CiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgfQogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gLndwLXRhYiB0Ym9keSB0ZC53cC1uciAgIHsgZm9udC1zaXplOiA4cHQ7ICAgdGV4 dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IGNvbG9yOiAjNTU1OyB9CiAgICBib2R5LmRydWNr ZW4td29jaGVucGxhbiAud3AtdGFiIHRib2R5IHRkLndwLW5hbWUgeyBmb250LXNpemU6IDguNXB0 OyBmb250LXdlaWdodDogNjAwOyB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFi IHRib2R5IHRkLndwLWFtdHMgeyBmb250LXNpemU6IDdwdDsgICBjb2xvcjogIzU1NTsgfQoKICAg IC8qIFplYnJhIMO8YmVyIEFMTEUgWmVpbGVuIChEYXRlbnplaWxlbiBVTkQgTGVlci1TbG90cywg MeKAkzM2KSDigJQKICAgICAgIGdsZWljaG3DpMOfaWdlIGFsdGVybmllcmVuZGUgSGludGVyZ3J1 bmRmYXJiZSBtaXQga2xhcmVtIEtvbnRyYXN0LgogICAgICAgYDpub3QoW3N0eWxlXSlgIHNjaMO8 dHp0IElubGluZS1TY2hpY2h0ZmFyYmVuIChnb2xkL2dyw7xuL2JsYXUpCiAgICAgICB2b3Igw5xi ZXJzY2hyZWlidW5nLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0Ym9k eSB0cjpudGgtY2hpbGQob2RkKSAgdGQ6bm90KFtzdHlsZV0pIHsKICAgICAgICBiYWNrZ3JvdW5k OiAjZmZmZmZmICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAu d3AtdGFiIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZDpub3QoW3N0eWxlXSkgewogICAgICAg IGJhY2tncm91bmQ6ICNlMGUwZTAgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBMZWVyLVNsb3Qt WmVpbGVuOiBudXIgZGllIFNjaHJpZnQgZ2VkaW1tdCDigJQgSGludGVyZ3J1bmQga29tbXQgYXVz CiAgICAgICBkZXIgWmVicmEtUmVnZWwgb2JlbiwgZGFtaXQgZGVyIExvb2sgaWRlbnRpc2NoIHp1 IGRlbiBnZWbDvGxsdGVuCiAgICAgICBaZWlsZW4gaXN0IChrZWluZSBTb25kZXJmw6RyYnVuZywg a2VpbmUgQm9yZGVycywga2VpbiBaZWlsZW5icnVjaAogICAgICAgendpc2NoZW4gU3BhbHRlIDEg dW5kIDMpLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0Ym9keSB0ci53 cC1sZWVyLXNsb3QgdGQgewogICAgICAgIGNvbG9yOiAjYWFhICFpbXBvcnRhbnQ7CiAgICB9Cgog ICAgLyogTGlua2UgSGVhZGVyLVplbGxlbiDDvGJlciBMZmQuTnIgLyBOYW1lIC8gQW10cyDigJQg aMO2aGVyZSBTcGV6aWZpdMOkdAogICAgICAgYWxzIGRpZSBnZW5lcmlzY2hlIC53cC10YWIgdGhl YWQgdGgtQm9yZGVyLVJlZ2VsIHdlaXRlciBvYmVuLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hl bnBsYW4gLndwLXRhYiB0aGVhZCAud3AtaC1sYWJlbCwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5w bGFuIC53cC10YWIgdGhlYWQgLndwLWgtc3BhbHRlbnRpdGVsLAogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gLndwLXRhYiB0aGVhZCB0ci53cC1oLXd0IHRoOmZpcnN0LWNoaWxkIHsKICAgICAg ICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICAgIGJvcmRlcjogbm9u ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIEF1w59lbmthbnRlbiBkZXIgVGFnZXNzcGFsdGVu IChsaW5rcyBuZWJlbiBNbyAvIHJlY2h0cyBuZWJlbiBTbykKICAgICAgIHRyYW5zcGFyZW50IOKA lCBkZXIgNy1UYWdlLUJsb2NrIHdpcmt0IGFscyBnZXNjaGxvc3NlbmUgRWluaGVpdC4gKi8KICAg IGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGhlYWQgdHIud3AtaC12b3JnICB0aDpu dGgtY2hpbGQoMiksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRoZWFkIHRy LndwLWgtd3QgICAgdGg6bnRoLWNoaWxkKDIpLAogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4g LndwLXRhYiB0aGVhZCB0ci53cC1oLWRhdHVtIHRoOm50aC1jaGlsZCg0KSwKICAgIGJvZHkuZHJ1 Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGJvZHkgdGQud3AtYW10cyArIHRkIHsKICAgICAgICBi b3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgIH0KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGg6bGFzdC1jaGlsZCwKICAgIGJvZHkuZHJ1Y2tl bi13b2NoZW5wbGFuIC53cC10YWIgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0 LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIE5vdGl6ZW4g4oCU IHBmbGljaHRpZyBpbSBEcnVjaywgfjM4bW0gaG9jaCAobWVociBQbGF0eiBpbSBIb2NoZm9ybWF0 KSAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLW5vdGl6ZW4gewogICAgICAgIG1h cmdpbi10b3A6IDNtbTsgcGFkZGluZzogMm1tIDNtbTsKICAgICAgICBib3JkZXI6IDAuM21tIHNv bGlkICM2NjY7IGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2 b2lkICFpbXBvcnRhbnQ7IGJyZWFrLWluc2lkZTogYXZvaWQgIWltcG9ydGFudDsKICAgIH0KICAg IGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1ub3RpemVuLXRpdGVsIHsgZm9udC1zaXplOiA4 LjVwdDsgbWFyZ2luLWJvdHRvbTogMS41bW07IGxldHRlci1zcGFjaW5nOiAwLjRweDsgfQogICAg Ym9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLW5vdGl6LXRleHRhcmVhIHsKICAgICAgICBtaW4t aGVpZ2h0OiAzMm1tOyBoZWlnaHQ6IDMybW07CiAgICAgICAgZm9udC1zaXplOiA5cHQ7CiAgICAg ICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OyBjb2xvcjogIzAwMCAhaW1wb3J0YW50Owog ICAgICAgIGJvcmRlcjogMC4ybW0gZGFzaGVkICM4ODggIWltcG9ydGFudDsKICAgICAgICByZXNp emU6IG5vbmUgIWltcG9ydGFudDsgcGFkZGluZzogMS41bW0gMm1tICFpbXBvcnRhbnQ7CiAgICB9 CgogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXNlaXRlLWZ1c3MgewogICAgICAgIG1h cmdpbi10b3A6IDJtbTsgcGFkZGluZy10b3A6IDFtbTsKICAgICAgICBmb250LXNpemU6IDcuNXB0 OwogICAgICAgIGJvcmRlci10b3A6IDAuMm1tIHNvbGlkICM4ODg7CiAgICB9CiAgICBib2R5LmRy dWNrZW4td29jaGVucGxhbiAud3AtZnVzcy1ub3RlIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKICAg IC8qIEhpbnRlcmdydW5kLUZhcmJlbiBpbSBEcnVjayBlcnp3aW5nZW4gKFNjaGljaHRmYXJiZW4s IFZvcmdhYmUtU2NoaWNodCkgKi8KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuLAogICAgYm9k eS5kcnVja2VuLXdvY2hlbnBsYW4gKiB7CiAgICAgICAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1 c3Q6IGV4YWN0ICFpbXBvcnRhbnQ7CiAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdCAh aW1wb3J0YW50OwogICAgICAgIGNvbG9yLWFkanVzdDogZXhhY3QgIWltcG9ydGFudDsKICAgIH0K fQoKLyogRGllbnN0bnVtbWVyLVplbGxlbiAoZ2VsYiBoaW50ZXJsZWd0KSAqLwoud3AtdGQtZG5y IHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjQwLDIxOCw4MCwwLjEyKTsKICAgIHRleHQtYWxpZ246 IGNlbnRlcjsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDEwcHg7 CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9CltkYXRhLXRoZW1lPSJuaWdodCJd IC53cC10ZC1kbnIgeyBiYWNrZ3JvdW5kOiByZ2JhKDE4NCwxNjAsMzIsMC4xMCk7IH0KCi8qIEZ1 w596ZWlsZSAqLwoud3AtZnVzc3plaWxlIHRkIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNh cmQtYWx0KTsKICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsK ICAgIHBhZGRpbmc6IDZweCAxMHB4ICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDEwcHg7CiAg ICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7Cn0KLndwLWZ1c3N6ZWlsZSB0ZCA+IHNwYW4geyBk aXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KLndwLWZ1c3MtZHJ1Y2sgeyBmbG9hdDogcmlnaHQ7IGNv bG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLndwLWZ1c3Mt bm90ZSBzdXAgeyBjb2xvcjogI2Q0YTAxNzsgZm9udC13ZWlnaHQ6IDcwMDsgfQoKLyogRmVpZXJ0 YWcg4oCed2ljaHRpZyIgaW0gQWRtaW4tVGFiICovCnRyLmZlaWVydGFnLXdpY2h0aWcgdGQgeyBi YWNrZ3JvdW5kOiByZ2JhKDE5MiwwLDAsMC4wNik7IH0KCi8qIEluZm8tS2FydGVuIGltIEluZm9y bWF0aW9uc2ZlbnN0ZXIgKi8KLmluZm8ta2FydGUgewogICAgcGFkZGluZzogMTJweCAxNnB4Owog ICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIGJhY2tn cm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFy KC0tdGV4dC1oZWFkaW5nKTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxpbmUtaGVpZ2h0OiAx LjU7Cn0KLmluZm8ta2FydGUtc3VwcG9ydCB7IGJvcmRlci1sZWZ0LWNvbG9yOiAjMmQ5ZDc4OyB9 Ci5pbmZvLWthcnRlLXdhcm4geyBib3JkZXItbGVmdC1jb2xvcjogI2U2N2UyMjsgYmFja2dyb3Vu ZDogcmdiYSgyMzAsMTI2LDM0LDAuMDgpOyB9Ci5pbmZvLWthcnRlLWluZm8geyBib3JkZXItbGVm dC1jb2xvcjogIzRhOTBlMjsgfQoKLyogRWluc3RlbGx1bmdlbi1UYWIgKi8KLmVpbnN0ZWxsdW5n ZW4tZm9ybSB7IG1heC13aWR0aDogNzIwcHg7IH0KLmVpbnN0ZWxsdW5nZW4tZm9ybSAuZm9ybS1n cnVwcGUgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9Ci5laW5zdGVsbHVuZ2VuLWZvcm0gbGFiZWwg eyBkaXNwbGF5OiBibG9jazsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogNHB4OyBj b2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC1zaXplOiAxM3B4OyB9Ci5laW5zdGVsbHVu Z2VuLWZvcm0gdGV4dGFyZWEgeyBmb250LWZhbWlseTogaW5oZXJpdDsgcmVzaXplOiB2ZXJ0aWNh bDsgfQoKLyogTGVnZW5kZSAqLwoud3AtbGVnZW5kZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBnYXA6 IDIwcHg7IHBhZGRpbmc6IDhweCAxNnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctdG9vbGJh cik7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgZm9udC1z aXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9Ci53cC1sZWctaXRlbSB7 IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNXB4OyB9Ci53cC1sZWct ZG90IHsKICAgIHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJvcmRlci1yYWRpdXM6IDJweDsg ZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci53cC1sZWctdmVyYW50dyB7CiAgICBiYWNrZ3JvdW5k OiB0cmFuc3BhcmVudDsgYm9yZGVyOiAycHggc29saWQgI0Q0QTAxNzsKfQoKLyogWmVsbC1Lb21t ZW50YXItSW5kaWthdG9yIGltIEdyaWQgKi8KLmdyaWQtemVsbGUuaGF0LWtvbW1lbnRhciB7IHBv c2l0aW9uOiByZWxhdGl2ZTsgfQouZ3JpZC16ZWxsZS5oYXQta29tbWVudGFyOjphZnRlciB7CiAg ICBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOwogICAg d2lkdGg6IDA7IGhlaWdodDogMDsKICAgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJl bnQ7CiAgICBib3JkZXItdG9wOiA2cHggc29saWQgI0Q0QTAxNzsKfQoKLyogRWRpdG9yLUtvbW1l bnRhci1CZXJlaWNoICovCi5lZGl0b3Ita29tbWVudGFyIHsKICAgIHBhZGRpbmc6IDZweCA4cHg7 CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGRpc3Bs YXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4Owp9Ci5lZGl0b3Ita29t bWVudGFyLWJ0bnMgewogICAgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7Cn0KCi8qIEQuMiDDhG5k ZXJ1bmdzLUhpc3RvcmllIGltIFplbGwtRWRpdG9yIChzaWNodGJhciBudXIgZsO8ciBTVSArIEZh Y2hhdWZzaWNodCkgKi8KLnplLWhpc3RvcmllIHsKICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICBi b3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIG1heC1oZWlnaHQ6 IDE4MHB4OyBvdmVyZmxvdy15OiBhdXRvOwogICAgZm9udC1zaXplOiAxMXB4Owp9Ci56ZS1oaXN0 b3JpZS10aXRlbCB7CiAgICBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNv bmRhcnkpOwogICAgbWFyZ2luLWJvdHRvbTogNHB4Owp9Ci56ZS1oaXN0b3JpZS1saXN0ZSB7CiAg ICBsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7CiAgICBkaXNwbGF5OiBm bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsKfQouemUtaGlzdG9yaWUtbGlz dGUgbGkgewogICAgcGFkZGluZzogM3B4IDRweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAs MC4wMyk7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAg ICBib3JkZXItcmFkaXVzOiAycHg7Cn0KLnplLWhpc3RvcmllLWxpc3RlIGxpLmxlZXIgewogICAg Y29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXN0eWxlOiBpdGFsaWM7IGJhY2tncm91bmQ6 IHRyYW5zcGFyZW50OyBib3JkZXItbGVmdDogbm9uZTsKfQouemUtaGlzdG9yaWUtbGlzdGUgY29k ZSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpOyBwYWRkaW5nOiAxcHggNHB4OyBi b3JkZXItcmFkaXVzOiAycHg7IGZvbnQtc2l6ZTogMTBweDsKfQoKLyogPT09PT0gTWVkaWVuLVZl cndhbHR1bmcgKEFkbWluLVRhYiAiTWVkaWVuIikgPT09PT0gKi8KLm1lZGllbi1ha2tvcmRlb24t c2VrdGlvbiB7CiAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgYm9yZGVyOiAxcHggc29saWQg dmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG92ZXJmbG93 OiBoaWRkZW47Cn0KLm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiBzdW1tYXJ5IHsKICAgIHBhZGRp bmc6IDEwcHggMTRweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7 CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDQpOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7 CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsgZ2FwOiA4cHg7Cn0KLm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiBzdW1tYXJ5Ojotd2Vi a2l0LWRldGFpbHMtbWFya2VyIHsgZGlzcGxheTogbm9uZTsgfQoubWVkaWVuLWFra29yZGVvbi1z ZWt0aW9uIHN1bW1hcnk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAn4pa4JzsgZm9udC1zaXplOiAx MnB4OyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXM7Cn0KLm1lZGllbi1ha2tvcmRlb24tc2Vr dGlvbltvcGVuXSBzdW1tYXJ5OjpiZWZvcmUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0K Lm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiAubWVkaWVuLWFuemFobCB7CiAgICBmb250LXNpemU6 IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC13ZWlnaHQ6IDQwMDsgbWFyZ2lu LWxlZnQ6IGF1dG87Cn0KLm1lZGllbi1ncmlkIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlk LXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNTBweCwgMWZyKSk7 CiAgICBnYXA6IDEycHg7CiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7CiAgICBtaW4taGVpZ2h0OiA4 MHB4Owp9Ci5tZWRpZW4tZ3JpZC5tZWRpZW4tZ3JpZC1sZWVyIHsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LW11dGVkKTsgZm9udC1zdHlsZTogaXRhbGljOyBwYWRkaW5nOiAyNHB4IDE0cHg7CiAgICB0 ZXh0LWFsaWduOiBjZW50ZXI7IG1pbi1oZWlnaHQ6IGF1dG87Cn0KLm1lZGllbi1rYXJ0ZSB7CiAg ICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1 czogNHB4OwogICAgcGFkZGluZzogOHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCwg I2ZmZik7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZw eDsKICAgIGN1cnNvcjogZ3JhYjsKICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xNXMsIHRy YW5zZm9ybSAwLjE1czsKfQoubWVkaWVuLWthcnRlOmhvdmVyIHsgYm94LXNoYWRvdzogMCAycHgg NnB4IHJnYmEoMCwwLDAsMC4xMik7IH0KLm1lZGllbi1rYXJ0ZS5kcmFnZ2luZyB7IG9wYWNpdHk6 IDAuNTsgY3Vyc29yOiBncmFiYmluZzsgfQoubWVkaWVuLWthcnRlIC5tZWRpZW4tdm9yc2NoYXUg ewogICAgd2lkdGg6IDEwMCU7IGFzcGVjdC1yYXRpbzogMTsKICAgIGRpc3BsYXk6IGZsZXg7IGFs aWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYmFja2dyb3Vu ZDogcmdiYSgwLDAsMCwwLjAzKTsgYm9yZGVyLXJhZGl1czogM3B4OwogICAgb3ZlcmZsb3c6IGhp ZGRlbjsKfQoubWVkaWVuLWthcnRlIC5tZWRpZW4tdm9yc2NoYXUgaW1nIHsKICAgIG1heC13aWR0 aDogMTAwJTsgbWF4LWhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpbjsKfQoubWVkaWVu LWthcnRlIC5tZWRpZW4tdm9yc2NoYXUgLnBkZi1wbGF0emhhbHRlciB7CiAgICBmb250LXNpemU6 IDMycHg7IGNvbG9yOiAjYzAzOTJiOyBmb250LXdlaWdodDogNzAwOwp9Ci5tZWRpZW4ta2FydGUg Lm1lZGllbi1iZXplaWNobnVuZyB7CiAgICBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2 MDA7CiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyBtaW4taGVpZ2h0OiAyOHB4Owp9Ci5tZWRp ZW4ta2FydGUgLm1lZGllbi1tZXRhIHsKICAgIGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IHZhcigt LXRleHQtbXV0ZWQpOwp9Ci5tZWRpZW4ta2FydGUgLm1lZGllbi1ha3Rpb25lbiB7CiAgICBkaXNw bGF5OiBmbGV4OyBnYXA6IDRweDsgbWFyZ2luLXRvcDogYXV0bzsKICAgIGFsaWduLWl0ZW1zOiBj ZW50ZXI7IGp1c3RpZnktY29udGVudDogc3RyZXRjaDsKfQoubWVkaWVuLWthcnRlIC5tZWRpZW4t YWt0aW9uZW4gLmJ0biB7CiAgICBmbGV4OiAxOyBmb250LXNpemU6IDExcHg7IHBhZGRpbmc6IDRw eCA2cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVz dGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogM3B4OwogICAgY29sb3I6ICNmZmY7ICAgICAgICAg ICAgIC8qIGV4cGxpeml0IHdlacOfIGF1ZiBkZW4gZmFyYmlnZW4gQnV0dG9ucyAqLwogICAgbGlu ZS1oZWlnaHQ6IDE7Cn0KLm1lZGllbi1rYXJ0ZSAubWVkaWVuLWFrdGlvbmVuIC5idG4tc2VrIHsK ICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyAgIC8qIEVkaXQtL0Vyc2V0emVuLUJ0bjog ZHVua2xlIFNjaHJpZnQgYXVmIGhlbGxlbSBCRyAqLwp9Ci8qIFN5c3RlbS1pbXBvcnRpZXJ0ZSBN ZWRpZW4g4oCUIG51ciBkZXplbnRlciBIaW50ZXJncnVuZC1Ba3plbnQgYWxzIEhpbndlaXMsCiAg IGVkaXRpZXJiYXIvdmVyc2NoaWViYmFyIHdpZSByZWd1bMOkcmUgVXBsb2Fkcy4gKi8KLm1lZGll bi1rYXJ0ZS1zeXN0ZW0geyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IH0KLm1lZGll bi1zeXN0ZW0tYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzog MXB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZvbnQtc2l6ZTogOXB4OyBmb250 LXdlaWdodDogNzAwOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsKICAgIGNvbG9y OiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBs ZXR0ZXItc3BhY2luZzogMC40cHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgbWFy Z2luLXJpZ2h0OiA0cHg7Cn0KLm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbi5kcm9wLXRhcmdldCB7 CiAgICBib3JkZXItY29sb3I6ICMyN2FlNjA7IGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDM5 LCAxNzQsIDk2LCAwLjMpOwp9Ci5tZWRpZW4tYWtrb3JkZW9uLXNla3Rpb24uZHJvcC10YXJnZXQg c3VtbWFyeSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDM5LCAxNzQsIDk2LCAwLjEpOwp9Ci8qIERy b3AtTW9kdXM6IGFsbGUgU2VrdGlvbmVuIGtsYXIgYWJnZWdyZW56dCBhbnplaWdlbiwgbGVlcmUg U2VrdGlvbmVuCiAgIG1hcmtpZXJlbiBzaWNoIGFscyBnZXN0cmljaGVsdGUgRHJvcC1aaWVsZSwg ZGFtaXQgZGVyIE51dHplciBzaWVodAogICB3b2hpbiBlciB6aWVoZW4ga2Fubi4gKi8KLm1lZGll bi1kcm9wLW1vZHVzIC5tZWRpZW4tYWtrb3JkZW9uLXNla3Rpb24gewogICAgYm9yZGVyOiAycHgg c29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG1h cmdpbi1ib3R0b206IDZweDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cywgYm94 LXNoYWRvdyAwLjE1czsKfQoubWVkaWVuLWRyb3AtbW9kdXMgLm1lZGllbi1ha2tvcmRlb24tc2Vr dGlvbiBzdW1tYXJ5IHsKICAgIGN1cnNvcjogZGVmYXVsdDsKfQoubWVkaWVuLWRyb3AtbW9kdXMg Lm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiAubWVkaWVuLWdyaWQtbGVlciB7CiAgICBib3JkZXI6 IDJweCBkYXNoZWQgdmFyKC0tZmFyYmUtZXJmb2xnKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMzks IDEzNywgMTA5LCAwLjA1KTsKICAgIGNvbG9yOiB2YXIoLS1mYXJiZS1lcmZvbGcpOwogICAgZm9u dC13ZWlnaHQ6IDYwMDsKfQoKLyogPT09PT0gTG9nYnVjaCA9PT09PSAqLwoubG9nYnVjaC1sYXlv dXQgeyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAyNHB4IDMycHg7IGZsZXg6IDE7IH0KCi8q ID09PT09IE1vZGFsZSBEaWFsb2dlID09PT09ICovCi5tb2RhbCB7CiAgICBwb3NpdGlvbjogZml4 ZWQ7IGluc2V0OiAwOyB6LWluZGV4OiAxMDAwMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAs MC40KTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50 OiBjZW50ZXI7CiAgICBhbmltYXRpb246IGZhZGVJbiAwLjE1cyBlYXNlOwp9Ci5tb2RhbC1pbmhh bHQgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRlci1yYWRpdXM6IDEwcHg7 CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbW9kYWwpOwogICAgd2lkdGg6IDkwJTsgbWF4 LXdpZHRoOiA2MjBweDsgbWF4LWhlaWdodDogODB2aDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJl Y3Rpb246IGNvbHVtbjsKfQoubW9kYWwtaW5oYWx0Lm1vZGFsLWluaGFsdC1ncm9zcyB7IG1heC13 aWR0aDogODAwcHg7IH0KLm1vZGFsLWtvcGYgewogICAgZmxleC1zaHJpbms6IDA7ICAgLyogZmVz dGVyIEhlYWRlcmJlcmVpY2gsIHNjcm9sbHQgbWl0IEJvZHkgKi8KICAgIGRpc3BsYXk6IGZsZXg7 IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAg IGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmlt YXJ5KTsKICAgIHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLXJhZGl1czogMTBweCAxMHB4IDAg MDsKfQoubW9kYWwta29wZiBoMiB7IGZvbnQtc2l6ZTogMTVweDsgZm9udC13ZWlnaHQ6IDYwMDsg fQoubW9kYWwtc2NobGllc3NlbiB7CiAgICBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IG5vbmU7 IGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1zaXplOiAyMnB4OyBjdXJz b3I6IHBvaW50ZXI7IGxpbmUtaGVpZ2h0OiAxOyBwYWRkaW5nOiAwIDRweDsgb3BhY2l0eTogMC43 Owp9Ci5tb2RhbC1zY2hsaWVzc2VuOmhvdmVyIHsgb3BhY2l0eTogMTsgfQoubW9kYWwta29lcnBl ciB7IHBhZGRpbmc6IDI0cHg7IG92ZXJmbG93LXk6IGF1dG87IGZsZXg6IDE7IH0KLm1vZGFsLWZ1 c3MgewogICAgZmxleC1zaHJpbms6IDA7ICAgLyogZGFyZiBOSUUgdm9tIG1vZGFsLWtvZXJwZXIg d2VnZ2VxdWV0c2NodCB3ZXJkZW4sIHNvbnN0IFNhdmUtQnV0dG9uIHVuc2ljaHRiYXIgKi8KICAg IHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1j b2xvcik7CiAgICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBhbGln bi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJk LWFsdCk7IGJvcmRlci1yYWRpdXM6IDAgMCAxMHB4IDEwcHg7Cn0KLyogQnV0dG9ucyBpbSBNb2Rh bC1Gb290ZXIgaGFiZW4gZWluaGVpdGxpY2hlIE1pbmRlc3Rob2VoZSAqLwoubW9kYWwtZnVzcyAu YnRuIHsgbWluLWhlaWdodDogMzZweDsgcGFkZGluZzogOHB4IDE4cHg7IH0KLyogUHJpbWFlci1C dXR0b24gYmVrb21tdCBtZWhyICJ3ZWlnaHQiIGdlZ2VudWViZXIgU2VrdW5kYWVyLUJ1dHRvbiAq LwoubW9kYWwtZnVzcyAuYnRuLmJ0bi1wcmltYWVyIHsgZm9udC13ZWlnaHQ6IDYwMDsgYm94LXNo YWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4xNSk7IH0KCi8qID09PT09IFRvYXN0ID09PT09 ICovCiN0b2FzdC1jb250YWluZXIgewogICAgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDI0cHg7 IHJpZ2h0OiAyNHB4OyB6LWluZGV4OiAyMDAwMDsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGly ZWN0aW9uOiBjb2x1bW47IGdhcDogNnB4Owp9Ci50b2FzdCB7CiAgICBwYWRkaW5nOiAxMHB4IDE4 cHg7IGJvcmRlci1yYWRpdXM6IDZweDsgY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMTNweDsgZm9u dC13ZWlnaHQ6IDUwMDsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLDAsMCwwLjI1 KTsgYW5pbWF0aW9uOiB0b2FzdEVpbiAwLjI1cyBlYXNlOyBtYXgtd2lkdGg6IDQwMHB4Owp9Ci50 b2FzdC1lcmZvbGcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1lcmZvbGcpOyB9Ci50b2FzdC1m ZWhsZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyB9Ci50b2FzdC1pbmZvIHsg YmFja2dyb3VuZDogdmFyKC0tZmFyYmUtaW5mbyk7IH0KLnRvYXN0LXdhcm51bmcgeyBiYWNrZ3Jv dW5kOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgfQpAa2V5ZnJhbWVzIHRvYXN0RWluIHsgZnJvbSB7 IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsgb3BhY2l0eTogMDsgfSB0byB7IHRyYW5zZm9y bTogdHJhbnNsYXRlWSgwKTsgb3BhY2l0eTogMTsgfSB9CgovKiA9PT09PSBBbGxnZW1laW4gPT09 PT0gKi8KLnRleHQtbXV0ZWQgeyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KLnRleHQtZXJm b2xnIHsgY29sb3I6IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KLnRleHQtZmVobGVyIHsgY29sb3I6 IHZhcigtLWZhcmJlLWZlaGxlcik7IH0KCmNvZGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmct Y2FyZC1hbHQpOyBwYWRkaW5nOiAxcHggNnB4OyBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250 LWZhbWlseTogIkNvbnNvbGFzIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOyBmb250LXNpemU6 IDEycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9CgovKiBT Y3JvbGxiYXJzOiBkZXV0bGljaCBzaWNodGJhciwgdm9yIGFsbGVtIGRpZSBob3Jpem9udGFsZSBM ZWlzdGUgdW50ZXIgZGVtCiAgIEhhdXB0cGxhbiBtaXQgMTMgTW9uYXRlbiBCcmVpdGUuICovCjo6 LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyB9Cjo6LXdlYmtp dC1zY3JvbGxiYXItdHJhY2sgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwp9 Cjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1t dXRlZCk7CiAgICBib3JkZXItcmFkaXVzOiA3cHg7CiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIo LS1iZy1jYXJkLWFsdCk7CiAgICBtaW4td2lkdGg6IDQwcHg7IG1pbi1oZWlnaHQ6IDQwcHg7Cn0K Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLXRleHQt c2Vjb25kYXJ5KTsgfQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IGJhY2tncm91bmQ6IHZh cigtLWJnLWNhcmQtYWx0KTsgfQoKLyogRmlyZWZveCAqLwoqIHsKICAgIHNjcm9sbGJhci13aWR0 aDogYXV0bzsKICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tdGV4dC1tdXRlZCkgdmFyKC0tYmct Y2FyZC1hbHQpOwp9CgovKiA9PT09PSBFbW9qaS1QaWNrZXIgKHNjaGxpY2h0LCBTeXN0ZW0tRm9u dCBsaWVmZXJ0IEFwcGxlLUVtb2ppcyBhdWYgbWFjT1MvaU9TKSA9PT09PSAqLwouZW1vamktcGlj a2VyIHsKICAgIC8qIE11c3MgdWViZXIgZGVtIE1vZGFsLU92ZXJsYXkgbGllZ2VuICgubW9kYWwg aGF0IHotaW5kZXg6IDEwMDAwKSwKICAgICAgIHNvbnN0IGxhbmRldCBqZWRlciBLbGljayBhdWYg ZGVuIHZlcm1laW50bGljaGVuIFBpY2tlciBhdWYgZGVtCiAgICAgICBkYXJ1ZWJlciBsaWVnZW5k ZW4gT3ZlcmxheSB1bmQgc2NobGllc3N0IGRhcyBNb2RhbC4gKi8KICAgIHBvc2l0aW9uOiBmaXhl ZDsgei1pbmRleDogMTAxMDA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVy OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4 OyBib3gtc2hhZG93OiAwIDEycHggMzZweCByZ2JhKDAsMCwwLDAuMjUpOwogICAgcGFkZGluZzog MTJweDsgd2lkdGg6IDI5NnB4OyB1c2VyLXNlbGVjdDogbm9uZTsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LXByaW1hcnkpOwp9Ci5lbW9qaS1waWNrZXIta2F0IHsKICAgIGZvbnQtc2l6ZTogMTBweDsg Zm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgdGV4dC10cmFu c2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuNnB4OwogICAgcGFkZGluZzogMTBw eCA0cHggNHB4Owp9Ci5lbW9qaS1waWNrZXIta2F0OmZpcnN0LWNoaWxkIHsgcGFkZGluZy10b3A6 IDA7IH0KLmVtb2ppLXBpY2tlci1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1j b2x1bW5zOiByZXBlYXQoOCwgMWZyKTsgZ2FwOiA0cHg7IH0KLmVtb2ppLXBpY2tlci1vcHQgewog ICAgZm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMTsgcGFkZGluZzogNHB4OyBib3JkZXIt cmFkaXVzOiA2cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFj a2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsK ICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgYm9yZGVyLWNvbG9yIDAuMXMsIGNvbG9y IDAuMXM7CiAgICBmb250LWZhbWlseTogIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1v amkiLCJOb3RvIENvbG9yIEVtb2ppIixzYW5zLXNlcmlmOwp9Ci5lbW9qaS1waWNrZXItb3B0Omhv dmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyBib3JkZXItY29sb3I6IHZhcigtLWZh cmJlLWFremVudCwgIzE1NjVDMCk7IH0KLmVtb2ppLXBpY2tlci1vcHQua2VpbmVyIHsKICAgIGZv bnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LWZhbWlseTogaW5o ZXJpdDsKICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7IHBhZGRpbmc6IDZweDsKICAgIGJvcmRlcjog MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9Ci5lbW9qaS1waWNrZXItb3B0LmtlaW5l cjpob3ZlciB7IGJvcmRlci1zdHlsZTogc29saWQ7IH0KLmVtb2ppLXBpY2tlci1vcHQuYWt0aXYg ewogICAgYmFja2dyb3VuZDogdmFyKC0tZmFyYmUtYWt6ZW50LCAjMTU2NUMwKTsKICAgIGNvbG9y OiAjZmZmOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQsICMxNTY1QzApOwp9 CgovKiBFbW9qaS1BdXN3YWhsLUJ1dHRvbiBpbiBBZG1pbi1UYWJlbGxlICovCi5lbW9qaS1idG4g ewogICAgd2lkdGg6IDM4cHg7IGhlaWdodDogMzJweDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhl aWdodDogMTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29s aWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czogNXB4OwogICAgY3Vyc29yOiBw b2ludGVyOyBwYWRkaW5nOiAwOwogICAgZm9udC1mYW1pbHk6ICJBcHBsZSBDb2xvciBFbW9qaSIs IlNlZ29lIFVJIEVtb2ppIiwiTm90byBDb2xvciBFbW9qaSIsc2Fucy1zZXJpZjsKfQouZW1vamkt YnRuOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQpOyB9Ci5lbW9qaS1i dG4ubGVlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zaXplOiAxNHB4OyBmb250 LWZhbWlseTogaW5oZXJpdDsgfQoKLyogS2xpY2tiYXJlIFNvbmRlci1aZWxsZSBpbSBIZWFkZXIg Ki8KLmtkLXNvbmRlci1rbGlja2JhciB7IGN1cnNvcjogcG9pbnRlcjsgfQoua2Qtc29uZGVyLWts aWNrYmFyOmhvdmVyIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDgpOyB9CgovKiBTb25kZXItV2Fy bi1Nb2RhbCAqLwouc29uZGVyLXdhcm4tbW9kYWwgLm1vZGFsLWtvcGYgeyBiYWNrZ3JvdW5kOiB2 YXIoLS1mYXJiZS13YXJudW5nKTsgfQouc29uZGVyLXdhcm4tbW9kYWwudHlwLWhpbndlaXMgLm1v ZGFsLWtvcGYgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1ha3plbnQpOyB9Ci5zb25kZXItd2Fy bi1pY29uIHsgZm9udC1zaXplOiA0OHB4OyBsaW5lLWhlaWdodDogMTsgdGV4dC1hbGlnbjogY2Vu dGVyOyBtYXJnaW46IDhweCAwIDEycHg7CiAgICBmb250LWZhbWlseTogIkFwcGxlIENvbG9yIEVt b2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJOb3RvIENvbG9yIEVtb2ppIixzYW5zLXNlcmlmOyB9Ci5z b25kZXItd2Fybi10aXRlbCB7IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IDYwMDsgdGV4 dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRv bTogMTBweDsgcGFkZGluZzogMCA4cHg7IHdvcmQtd3JhcDogYnJlYWstd29yZDsgb3ZlcmZsb3ct d3JhcDogYnJlYWstd29yZDsgfQouc29uZGVyLXdhcm4tdGV4dCB7CiAgICBmb250LXNpemU6IDE0 cHg7IGxpbmUtaGVpZ2h0OiAxLjU1OyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsgcGFkZGlu ZzogMTJweCAxNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXIt cmFkaXVzOiA4cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBt YXgtd2lkdGg6IDEwMCU7IG1heC1oZWlnaHQ6IDUwdmg7IG92ZXJmbG93LXk6IGF1dG87CiAgICB3 b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IHdvcmQtYnJl YWs6IGJyZWFrLXdvcmQ7Cn0KLnNvbmRlci13YXJuLXRleHQgcCB7IG1hcmdpbjogMCAwIDAuNmVt IDA7IH0KLnNvbmRlci13YXJuLXRleHQgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsg fQouc29uZGVyLXdhcm4tdGV4dCB1bCwgLnNvbmRlci13YXJuLXRleHQgb2wgeyBtYXJnaW46IDAu NGVtIDAgMC40ZW0gMS40ZW07IHBhZGRpbmc6IDA7IH0KLnNvbmRlci13YXJuLXRleHQgbGkgeyBt YXJnaW4tYm90dG9tOiAwLjJlbTsgfQouc29uZGVyLXdhcm4tdGV4dCBhIHsgY29sb3I6IHZhcigt LWZhcmJlLWFremVudCk7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB3b3JkLWJyZWFrOiBi cmVhay1hbGw7IH0KLnNvbmRlci13YXJuLWRhdHVtIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjog dmFyKC0tdGV4dC1tdXRlZCk7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogMTJweDsg fQoKLyogUmljaC1UZXh0LUVkaXRvciAqLwoucnRlLXRvb2xiYXIgewogICAgZGlzcGxheTogZmxl eDsgZ2FwOiAycHg7IHBhZGRpbmc6IDRweDsgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgYmFja2dy b3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIt Y29sb3IpOwogICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7IGJvcmRlci1ib3R0b206IG5v bmU7IGZsZXgtd3JhcDogd3JhcDsKfQoucnRlLWJ0biB7CiAgICBtaW4td2lkdGg6IDMwcHg7IGhl aWdodDogMjhweDsgcGFkZGluZzogMCA4cHg7IGZvbnQtc2l6ZTogMTNweDsKICAgIGJhY2tncm91 bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJh ZGl1czogNHB4OwogICAgY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5 KTsKfQoucnRlLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQoucnRl LWJ0bi5ha3RpdiB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWFjdGl2ZSk7IGJvcmRlci1jb2xvcjog dmFyKC0tYm9yZGVyLWNvbG9yKTsgfQoucnRlLXNlcCB7IHdpZHRoOiAxcHg7IGJhY2tncm91bmQ6 IHZhcigtLWJvcmRlci1jb2xvcik7IG1hcmdpbjogNHB4IDRweDsgfQoucnRlLWVkaXRvciB7CiAg ICBtaW4taGVpZ2h0OiAxMTBweDsgbWF4LWhlaWdodDogMzAwcHg7IG92ZXJmbG93LXk6IGF1dG87 CiAgICBwYWRkaW5nOiAxMHB4IDEycHg7IGZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDEu NTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtcHJp bWFyeSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyBib3JkZXIt cmFkaXVzOiAwIDAgNnB4IDZweDsKICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsgb3ZlcmZsb3ct d3JhcDogYnJlYWstd29yZDsgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgIG1heC13aWR0aDog MTAwJTsKfQoucnRlLWVkaXRvcjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjog dmFyKC0tZmFyYmUtYWt6ZW50KTsgfQoucnRlLWVkaXRvciBwIHsgbWFyZ2luOiAwIDAgMC42ZW0g MDsgfQoucnRlLWVkaXRvciBwOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9Ci5ydGUt ZWRpdG9yIHVsLCAucnRlLWVkaXRvciBvbCB7IG1hcmdpbjogMC40ZW0gMCAwLjRlbSAxLjRlbTsg cGFkZGluZzogMDsgfQoucnRlLWVkaXRvciBhIHsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7 IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfQoKLyogPT09PT0gQWRtaW46IEF1c2tsYXBwYmFyZSBI aW53ZWlzYm94ZW4gPT09PT0gKi8KLmFkbWluLWluZm8gewogICAgYmFja2dyb3VuZDogdmFyKC0t YmctY2FyZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3Jk ZXItcmFkaXVzOiA4cHg7IG1hcmdpbi1ib3R0b206IDIwcHg7IG92ZXJmbG93OiBoaWRkZW47Cn0K LmFkbWluLWluZm8gPiBzdW1tYXJ5IHsKICAgIGxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6IDEw cHggMTRweDsgY3Vyc29yOiBwb2ludGVyOyB1c2VyLXNlbGVjdDogbm9uZTsKICAgIGZvbnQtd2Vp Z2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGln bi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAu MTVzOwp9Ci5hZG1pbi1pbmZvID4gc3VtbWFyeTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJn LWhvdmVyKTsgfQouYWRtaW4taW5mbyA+IHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIg eyBkaXNwbGF5OiBub25lOyB9Ci5hZG1pbi1pbmZvID4gc3VtbWFyeTo6bWFya2VyIHsgY29udGVu dDogJyc7IH0KLmFkbWluLWluZm8tY2hldiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZv bnQtc2l6ZTogMTBweDsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7IGNvbG9yOiB2YXIoLS10 ZXh0LW11dGVkKTsKICAgIHdpZHRoOiAxMHB4Owp9Ci5hZG1pbi1pbmZvW29wZW5dID4gc3VtbWFy eSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9Ci5hZG1p bi1pbmZvW29wZW5dIC5hZG1pbi1pbmZvLWNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7 IH0KLmFkbWluLWluZm8tYmFkZ2UgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87IGZvbnQtc2l6ZTog MTBweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgYmFj a2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KLmFkbWluLWluZm8tYm9keSB7CiAgICBwYWRkaW5nOiAx NHB4IDE2cHg7IGZvbnQtc2l6ZTogMTIuNXB4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFy KC0tdGV4dC1wcmltYXJ5KTsKfQouYWRtaW4taW5mby1ib2R5IHAgeyBtYXJnaW4tYm90dG9tOiAx MHB4OyB9Ci5hZG1pbi1pbmZvLWJvZHkgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsg fQouYWRtaW4taW5mby1ib2R5IHVsIHsgbWFyZ2luOiA2cHggMCAxMnB4IDIycHg7IH0KLmFkbWlu LWluZm8tYm9keSB1bCB1bCB7IG1hcmdpbjogNHB4IDAgNnB4IDE4cHg7IH0KLmFkbWluLWluZm8t Ym9keSBsaSB7IG1hcmdpbi1ib3R0b206IDNweDsgfQouYWRtaW4taW5mby1ib2R5IGNvZGUgewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBwYWRkaW5nOiAxcHggNXB4OyBib3Jk ZXItcmFkaXVzOiAzcHg7CiAgICBmb250LXNpemU6IDExLjVweDsgYm9yZGVyOiAxcHggc29saWQg dmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQouYWRtaW4taW5mby1ib2R5IHN0cm9uZyB7IGNvbG9yOiB2 YXIoLS10ZXh0LWhlYWRpbmcpOyB9CgovKiA9PT09PSBBZG1pbjogU2FtbWVsLVRhYi1TZWt0aW9u ZW4gKEF1ZGl0LUl0ZXItRCwgMjAyNi0wNS0wNSkgPT09PT0KICogU3ViLUNvbnRhaW5lciBpbSBT YW1tZWwtVGFiIHdlcmRlbiBwZXIgSlMgaW4gPGRldGFpbHMgY2xhc3M9ImFkbWluLXNla3Rpb24i PgogKiBnZXdpY2tlbHQuIFBsYW4tV29ydGxhdXQ6IOKAnmJlaWRlIGluaXRpYWwgb2ZmZW4iIOKA lCBKUyBzZXR6dCBkZXRhaWxzLm9wZW49dHJ1ZS4KICovCi5hZG1pbi1zYW1tZWwtaGludCB7CiAg ICBtYXJnaW46IC04cHggMCAxOHB4IDA7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRl eHQtbXV0ZWQpOwogICAgbGluZS1oZWlnaHQ6IDEuNTsKfQouYWRtaW4tc2VrdGlvbiB7CiAgICBi YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVy LWNvbG9yKTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgb3Zl cmZsb3c6IGhpZGRlbjsKfQouYWRtaW4tc2VrdGlvbiA+IHN1bW1hcnkgewogICAgbGlzdC1zdHls ZTogbm9uZTsgcGFkZGluZzogMTJweCAxNnB4OyBjdXJzb3I6IHBvaW50ZXI7CiAgICAtd2Via2l0 LXVzZXItc2VsZWN0OiBub25lOyB1c2VyLXNlbGVjdDogbm9uZTsKICAgIGZvbnQtd2VpZ2h0OiA3 MDA7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDEwcHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwp9 Ci5hZG1pbi1zZWt0aW9uID4gc3VtbWFyeTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhv dmVyKTsgfQouYWRtaW4tc2VrdGlvbiA+IHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIg eyBkaXNwbGF5OiBub25lOyB9Ci5hZG1pbi1zZWt0aW9uID4gc3VtbWFyeTo6bWFya2VyIHsgY29u dGVudDogJyc7IH0KLmFkbWluLXNla3Rpb24tY2hldiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7IGZvbnQtc2l6ZTogMTJweDsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICBjb2xv cjogdmFyKC0tdGV4dC1tdXRlZCk7IHdpZHRoOiAxMnB4OyB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBk ZWcpOwp9Ci5hZG1pbi1zZWt0aW9uW29wZW5dID4gc3VtbWFyeSB7IGJvcmRlci1ib3R0b206IDFw eCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyB9Ci5hZG1pbi1zZWt0aW9uW29wZW5dIC5hZG1p bi1zZWt0aW9uLWNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQouYWRtaW4tc2VrdGlv bi10aXRlbCB7IGZsZXg6IDAgMCBhdXRvOyB9Ci5hZG1pbi1zZWt0aW9uLWFjdGlvbnMgewogICAg bWFyZ2luLWxlZnQ6IGF1dG87IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDhweDsgYWxpZ24t aXRlbXM6IGNlbnRlcjsKfQouYWRtaW4tc3ViLWNvbnRlbnQgewogICAgcGFkZGluZzogMTZweCAx OHB4Owp9Ci5hZG1pbi1zdWItY29udGVudCA+IC5hZG1pbi1pbmZvIHsgbWFyZ2luLXRvcDogMDsg fQoKLyogPT09PT0gU29uZGVydGVybWluLU1laHJmYWNoYmVhcmJlaXR1bmcgKEJ1bGstRWRpdC1C YXIpID09PT09ICovCi5idWxrLWJhciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFs dCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWZhcmJlLWFremVudCk7CiAgICBib3JkZXItcmFk aXVzOiA4cHg7IHBhZGRpbmc6IDEycHggMTRweDsgbWFyZ2luOiA4cHggMCAxNHB4OwogICAgZGlz cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4Owp9Ci5idWxrLWJh ci1rb3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJw eDsgZm9udC1zaXplOiAxM3B4Owp9Ci5idWxrLWNvdW50IHsKICAgIGZvbnQtc2l6ZTogMTJweDsg Zm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7CiAgICBiYWNrZ3Jv dW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZmFyYmUtYWt6ZW50 KTsKICAgIHBhZGRpbmc6IDJweCAxMHB4OyBib3JkZXItcmFkaXVzOiAxMnB4Owp9Ci5idWxrLWJh ci1mZWxkZXIgewogICAgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDE0cHgg MThweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQouYnVsay1mZWxkIHsKICAgIGRpc3BsYXk6IGlu bGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgZm9udC1zaXplOiAxMnB4 OwogICAgY3Vyc29yOiBkZWZhdWx0Owp9Ci5idWxrLWZlbGQgPiBpbnB1dFt0eXBlPSJjaGVja2Jv eCJdIHsgY3Vyc29yOiBwb2ludGVyOyB9Ci5idWxrLWZlbGQgLmJ1bGstbGFiZWwgeyBmb250LXdl aWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBtaW4td2lkdGg6IDU2cHg7 IH0KLmJ1bGstZmVsZCAuZm9ybS1pbnB1dCB7IGZvbnQtc2l6ZTogMTJweDsgcGFkZGluZzogNHB4 IDhweDsgbWluLXdpZHRoOiAxNjBweDsgfQouYnVsay1iYXItYWN0aW9ucyB7CiAgICBkaXNwbGF5 OiBmbGV4OyBnYXA6IDhweDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgYWxpZ24taXRlbXM6 IGNlbnRlcjsKICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsg cGFkZGluZy10b3A6IDEwcHg7Cn0KLmJ0bi1zb25kZXJ0ZXJtaW4tYnVsay10b2dnbGUuYWt0aXYs CiNidG4tc29uZGVydGVybWluLWJ1bGstdG9nZ2xlLmFrdGl2IHsKICAgIGJhY2tncm91bmQ6IHZh cigtLWZhcmJlLWFremVudCk7IGNvbG9yOiB2YXIoLS1iZy1wcmltYXJ5KTsKfQouYnVsay16ZWls ZS1ha3RpdiB0ZCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQouYnVsay1jYi1jZWxs IHsgd2lkdGg6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfQouYnVsay1jYi1jZWxsIGlucHV0 W3R5cGU9ImNoZWNrYm94Il0geyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zZm9ybTogc2NhbGUoMS4x KTsgfQoKLyogPT09PT0gU2NoaWNodGNvZGUtVm9yc2NoYXU6IEdydXBwaWVydW5nID09PT09ICov Ci5zYy12b3JzY2hhdS10b29sYmFyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogMTJweDsgYWxp Z24taXRlbXM6IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMTJweDsgZmxleC13cmFwOiB3cmFwOwog ICAgcGFkZGluZzogOHB4IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgYm9y ZGVyLXJhZGl1czogNnB4Owp9Ci5zYy12b3JzY2hhdS10b29sYmFyIGxhYmVsIHsgZm9udC1zaXpl OiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9 Ci5zYy12b3JzY2hhdS10b29sYmFyIHNlbGVjdCB7CiAgICBwYWRkaW5nOiA0cHggOHB4OyBmb250 LXNpemU6IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsKICAgIGJvcmRlcjogMXB4 IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6IDRweDsKfQouc2MtZ3J1 cHBlIHsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFy KC0tYm9yZGVyLXN0cm9uZyk7IHBhZGRpbmctbGVmdDogMTBweDsKfQouc2MtZ3J1cHBlLXRpdGVs IHsKICAgIGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRl eHQtbXV0ZWQpOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6 IDAuNXB4OyBtYXJnaW4tYm90dG9tOiA2cHg7Cn0KLnNjLWdydXBwZS1saXN0ZSB7CiAgICBkaXNw bGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1h eCgyMjBweCwgMWZyKSk7CiAgICBnYXA6IDZweDsKfQoKLyogRi40LUI6IFNjaGljaHRjb2RlLUVy d2VpdGVydW5nZW4gKEFrdGl2L0luYWt0aXYsIERyYWcsIFrDpGhsZXIpICovCi5zY2hpY2h0Y29k ZS1rYXJ0ZS5zYy1pbmFrdGl2IHsgb3BhY2l0eTogMC40NTsgfQouc2NoaWNodGNvZGUta2FydGUu c2MtaW5ha3RpdiAuc2NoaWNodGNvZGUtZmFyYmZlbGQgewogICAgZmlsdGVyOiBncmF5c2NhbGUo NjAlKTsKfQouc2MtdmVyd2VuZHVuZy1iYWRnZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDgpOwogICAgY29sb3I6IHZhcigtLXRleHQt c2Vjb25kYXJ5KTsKICAgIGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHBh ZGRpbmc6IDFweCA2cHg7IGJvcmRlci1yYWRpdXM6IDlweDsKICAgIG1hcmdpbi1sZWZ0OiA0cHg7 Cn0KLnNjLWluYWt0aXYtYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgYmFj a2dyb3VuZDogcmdiYSgxODMsIDEyMSwgMzEsIDAuMTUpOwogICAgY29sb3I6IHZhcigtLWZhcmJl LXdhcm51bmcsICNCNzc5MUYpOwogICAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAw OwogICAgcGFkZGluZzogMXB4IDZweDsgYm9yZGVyLXJhZGl1czogM3B4OwogICAgbWFyZ2luLWxl ZnQ6IDRweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouc2MtZG5kLXpvbmUuc2MtZG5k LWFrdGl2IC5zY2hpY2h0Y29kZS1rYXJ0ZSB7IGN1cnNvcjogZ3JhYjsgfQouc2MtZG5kLXpvbmUu c2MtZG5kLWFrdGl2IC5zY2hpY2h0Y29kZS1rYXJ0ZTphY3RpdmUgeyBjdXJzb3I6IGdyYWJiaW5n OyB9Ci5zYy1kbmQtem9uZSAuc2NoaWNodGNvZGUta2FydGUuc2MtZHJhZyB7IG9wYWNpdHk6IDAu NDsgfQouc2MtZG5kLXpvbmUgLnNjaGljaHRjb2RlLWthcnRlLnNjLWRyb3Atdm9yIHsKICAgIGJv eC1zaGFkb3c6IDAgLTJweCAwIDAgIzI3YWU2MCBpbnNldCwgMCAycHggMCAwICMyN2FlNjAgaW5z ZXQ7Cn0KCi8qIEYuNC1DOiBJbmZvcm1hdGlvbiAmIEhpbGZlLVRhYiDigJQgTWluaS1SVEUgcHJv IEZlbGQgKi8KLmluZm8tcnRlLWJsb2NrIHsKICAgIG1hcmdpbi1ib3R0b206IDE4cHg7CiAgICBw YWRkaW5nOiAxMnB4IDE0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln aHQpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2Fy ZCwgI2ZmZik7Cn0KLmluZm8tcnRlLWJsb2NrIGgzIHsKICAgIG1hcmdpbjogMCAwIDRweCAwOwog ICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZywgIzIyMik7 Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtaGludCB7CiAgICBtYXJnaW46IDAgMCA4cHggMDsKICAg IGZvbnQtc2l6ZTogMTFweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKfQouaW5mby1y dGUtYmxvY2sgLnJ0ZS10b29sYmFyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyBmbGV4 LXdyYXA6IHdyYXA7CiAgICBwYWRkaW5nOiA2cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCww LDAuMDQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJv cmRlci1ib3R0b206IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDsKICAgIGFs aWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtdG9vbGJhciBidXR0b24g ewogICAgcGFkZGluZzogNHB4IDhweDsgZm9udC1zaXplOiAxMXB4OwogICAgYm9yZGVyOiAxcHgg c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQs ICNmZmYpOwogICAgYm9yZGVyLXJhZGl1czogM3B4OyBjdXJzb3I6IHBvaW50ZXI7CiAgICBtaW4t d2lkdGg6IDI4cHg7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtdG9vbGJhciBidXR0b246aG92ZXIg eyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpOyB9Ci5pbmZvLXJ0ZS1ibG9jayAucnRlLXRv b2xiYXIgYnV0dG9uOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMCk7IH0KLmlu Zm8tcnRlLWJsb2NrIC5ydGUtdG9vbGJhciAucnRlLXNlcCB7CiAgICB3aWR0aDogMXB4OyBoZWln aHQ6IDE4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgbWFyZ2lu OiAwIDRweDsKfQouaW5mby1ydGUtYmxvY2sgLnJ0ZS1lZGl0b3IgewogICAgbWluLWhlaWdodDog MTAwcHg7CiAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo LS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAzcHg7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLCAjZmZmKTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxp bmUtaGVpZ2h0OiAxLjU7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtZWRpdG9yOmZvY3VzIHsKICAg IG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDM5LCAxNzQsIDk2LCAwLjQpOwogICAgb3V0bGluZS1v ZmZzZXQ6IC0ycHg7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtZWRpdG9yIHVsLAouaW5mby1ydGUt YmxvY2sgLnJ0ZS1lZGl0b3Igb2wgewogICAgcGFkZGluZy1sZWZ0OiAyNHB4OyBtYXJnaW46IDRw eCAwOwp9CgovKiBTb25kZXJ0ZXJtaW5lLUxpc3RlIChyZWFkLW9ubHkpICovCi5zb25kZXItaWNv bi16ZWxsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsg anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4OyBm b250LXNpemU6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGJhY2tncm91bmQ6IHZhcigt LWJnLWNhcmQtYWx0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAg IGZvbnQtZmFtaWx5OiAiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIk5vdG8g Q29sb3IgRW1vamkiLHNhbnMtc2VyaWY7Cn0KLnNvbmRlci1pY29uLXplbGxlLmxlZXIgeyBjb2xv cjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogMTNweDsgZm9udC1mYW1pbHk6IGluaGVy aXQ7IH0KLnNvbmRlci10eXAtYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRk aW5nOiAycHggOHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQt d2VpZ2h0OiA2MDA7Cn0KLnNvbmRlci10eXAtaW5mbyB7IGJhY2tncm91bmQ6IHJnYmEoNDEsMTI4 LDE4NSwwLjE1KTsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7IH0KLnNvbmRlci10eXAtd2Fy biB7IGJhY2tncm91bmQ6IHJnYmEoMjAyLDExMSwzMCwwLjE4KTsgY29sb3I6IHZhcigtLWZhcmJl LXdhcm51bmcpOyB9CgovKiBTb25kZXJ0ZXJtaW4tS2F0ZWdvcmllLUJhZGdlcyAqLwouc29uZGVy LWthdC1iYWRnZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDJweCA4cHg7 IGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2 MDA7IHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFs dCk7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2 YXIoLS1ib3JkZXItY29sb3IpOwp9Ci5zb25kZXIta2F0LWJ2YiAgICAgICAgICAgICAgIHsgYmFj a2dyb3VuZDogcmdiYSgyNDEsMTk2LDE1LDAuMTgpOyBjb2xvcjogIzhCNkYxQTsgYm9yZGVyLWNv bG9yOiByZ2JhKDI0MSwxOTYsMTUsMC4zNSk7IH0KLnNvbmRlci1rYXQtc3BvcnQgICAgICAgICAg ICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDc0LDEzOSw5NCwwLjE4KTsgIGNvbG9yOiAjMkE1QTNEOyBi b3JkZXItY29sb3I6IHJnYmEoNzQsMTM5LDk0LDAuMzUpOyB9Ci5zb25kZXIta2F0LWdyb3NzdmVy YW5zdGFsdHVuZ3sgYmFja2dyb3VuZDogcmdiYSgxNTUsODksMTgyLDAuMTgpOyBjb2xvcjogIzZC M0Q4QTsgYm9yZGVyLWNvbG9yOiByZ2JhKDE1NSw4OSwxODIsMC4zNSk7IH0KLnNvbmRlci1rYXQt YmFvICAgICAgICAgICAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDE5Miw1Nyw0MywwLjE4KTsgIGNv bG9yOiAjOEIxQTFBOyBib3JkZXItY29sb3I6IHJnYmEoMTkyLDU3LDQzLDAuMzUpOyB9Ci5zb25k ZXIta2F0LXVlYnVuZyAgICAgICAgICAgIHsgYmFja2dyb3VuZDogcmdiYSg0MSwxMjgsMTg1LDAu MTgpOyBjb2xvcjogIzFGNEE3NTsgYm9yZGVyLWNvbG9yOiByZ2JhKDQxLDEyOCwxODUsMC4zNSk7 IH0KLnNvbmRlci1rYXQtYmVzcHJlY2h1bmcgICAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDEyNywx NDAsMTQxLDAuMTgpOyBjb2xvcjogIzRBNTQ1NTsgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNywxNDAs MTQxLDAuMzUpOyB9CgovKiBCYWNrdXAtVHlwLUJhZGdlcyAqLwouYmstdHlwIHsgZGlzcGxheTog aW5saW5lLWJsb2NrOyBwYWRkaW5nOiAycHggOHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBmb250 LXNpemU6IDEwLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQou YmstdHlwLW1hbnVlbGwgeyBiYWNrZ3JvdW5kOiByZ2JhKDI3LDk0LDMyLDAuMTUpOyBjb2xvcjog IzFCNUUyMDsgfQouYmstdHlwLWF1dG8geyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4x OCk7IGNvbG9yOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgfQouYmstdHlwLXNpY2hlcnVuZyB7IGJh Y2tncm91bmQ6IHJnYmEoNDEsMTI4LDE4NSwwLjE1KTsgY29sb3I6IHZhcigtLWZhcmJlLWFremVu dCk7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmJrLXR5cC1tYW51ZWxsIHsgYmFja2dyb3VuZDog cmdiYSgyNyw5NCwzMiwwLjMpOyBjb2xvcjogI2E1ZDZhNzsgfQpbZGF0YS10aGVtZT0ibmlnaHQi XSAuYmstdHlwLWF1dG8geyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4zKTsgY29sb3I6 ICNmZmNjODA7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmJrLXR5cC1zaWNoZXJ1bmcgeyBiYWNr Z3JvdW5kOiByZ2JhKDQxLDEyOCwxODUsMC4zKTsgY29sb3I6ICM5MGNhZjk7IH0KCgovKiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAgIFRhZ2VzbGFnZS1SZWZyZXNoIOKAlCBBa3plbnRzdHJlaWZlbiArIEJsb2NrLVRvZW51bmcg cHJvIFplaWxlCiAgIChhZGRpdGl2LCBJRHMgdW52ZXJhZW5kZXJ0LCBMaXZlLVVwZGF0ZS1QZmFk ZSB1bmFuZ2V0YXN0ZXQpCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi8qIFBvc2l0aW9uLUFua2VyIGZ1ZXIgZGVuIEFr emVudHN0cmljaCDigJQgbGlua3MgVU5EIHJlY2h0cyAqLwoua29wZi16ZWlsZS50bC1yb3csCi5r b3BmLWRhdGVuLXplaWxlLnRsLXJvdyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKLyogQWt6ZW50 c3RyaWNoIGFtIGxpbmtlbiBaZWlsZW4tUmFuZCBlbnRmZXJudCDigJQgSGVhZGVyIHNvbGwgdW5p Zm9ybSBDRC1ibGF1IGJsZWliZW4gKi8KLmtvcGYtemVpbGUudGwtcm93OjpiZWZvcmUgeyBjb250 ZW50OiBub25lOyB9CgovKiBMYWJlbC1UZXh0IGF1ZiBkdW5rZWxibGF1ZW0gSGVhZGVyLUJsb2Nr OiBIRUxMICsgZmV0dCwgbGVzYmFyICovCi5rb3BmLXplaWxlLnRsLXJvdyAua2wtbGFiZWwgewog ICAgcGFkZGluZy1sZWZ0OiAwOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc2l6ZTog MTFweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgbGV0dGVyLXNwYWNp bmc6IDAuMnB4OwogICAgZmxleC1zaHJpbms6IDA7Cn0KLmtvcGYtemVpbGUudGwtcm93IC5rbC13 ZXJ0IHsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwg MC41NSk7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBw YWRkaW5nLXJpZ2h0OiA4cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0 dGVyLXNwYWNpbmc6IDAuNHB4Owp9CgovKiBBa3plbnRmYXJiZSBwcm8gWmVpbGUgKExFRlQgKyBS SUdIVCkg4oCUIGZ1ZXIgZGVuIDNweC1TdHJpY2ggKi8KLnRsLXJvdy1kc20gICAgICAgICB7IC0t dGwtYWt6ZW50OiB2YXIoLS10bC1ha3otZHNtKTsgfQoudGwtcm93LXZvcmdhYmUgICAgIHsgLS10 bC1ha3plbnQ6IHZhcigtLXRsLWFrei1zb2xsKTsgfQoudGwtcm93LXN0YWVya2Vzb2xsIHsgLS10 bC1ha3plbnQ6IHZhcigtLXRsLWFrei1zb2xsKTsgfQoudGwtcm93LWZydWVoLWwgICAgIHsgLS10 bC1ha3plbnQ6IHZhcigtLXRsLWFrei1mcnVlaCk7IH0KLnRsLXJvdy1zcGFldC1sICAgICB7IC0t dGwtYWt6ZW50OiB2YXIoLS10bC1ha3otc3BhZXQpOyB9Ci50bC1yb3ctdW50c3R1ZXR6LWYgeyAt LXRsLWFremVudDogdmFyKC0tdGwtYWt6LWZydWVoKTsgfQoudGwtcm93LXVudHN0dWV0ei1uIHsg LS10bC1ha3plbnQ6IHZhcigtLXRsLWFrei1uYWNodCk7IH0KCi8qIEJsb2NrLVRvZW51bmcgTlVS IGF1ZiBkZXIgcmVjaHRlbiBUYWdlc2RhdGVuLVNlaXRlIOKAlCBkaWUgbGlua2VuIExhYmVscwog ICBibGVpYmVuIGVpbmhlaXRsaWNoIGltIEhlYWRlci1Mb29rLiBBa3plbnRzdHJlaWZlbiByZWlj aGVuIHp1cgogICB2aXN1ZWxsZW4gRGlmZmVyZW56aWVydW5nLiAqLwoua29wZi1kYXRlbi16ZWls ZS50bC1yb3ctdm9yZ2FiZSAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS10bC1iZy1zb2xsKTsgfQou a29wZi1kYXRlbi16ZWlsZS50bC1yb3ctc3RhZXJrZXNvbGwgeyBiYWNrZ3JvdW5kOiB2YXIoLS10 bC1iZy1zb2xsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRl ci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyB9Ci5rb3BmLWRhdGVuLXpl aWxlLnRsLXJvdy1mcnVlaC1sICAgICB7IGJhY2tncm91bmQ6IHZhcigtLXRsLWJnLWZydWVoKTsg fQoua29wZi1kYXRlbi16ZWlsZS50bC1yb3ctc3BhZXQtbCAgICAgeyBiYWNrZ3JvdW5kOiB2YXIo LS10bC1iZy1zcGFldCk7IH0KLmtvcGYtZGF0ZW4temVpbGUudGwtcm93LXVudHN0dWV0ei1mIHsg YmFja2dyb3VuZDogdmFyKC0tdGwtYmctZnJ1ZWgpOyB9Ci5rb3BmLWRhdGVuLXplaWxlLnRsLXJv dy11bnRzdHVldHotbiB7IGJhY2tncm91bmQ6IHZhcigtLXRsLWJnLW5hY2h0KTsgfQoKLyogVW50 LUYgLyBVbnQtTjogZ2VzdHJpY2hlbHRlciBBa3plbnRzdHJpY2ggenVyIEFiZ3Jlbnp1bmcgdm9u IEYtTC9TLUwgKi8KLmtvcGYtemVpbGUudGwtcm93LXVudHN0dWV0ei1mOjpiZWZvcmUsCi5rb3Bm LXplaWxlLnRsLXJvdy11bnRzdHVldHotbjo6YmVmb3JlIHsKICAgIGJhY2tncm91bmQ6IHJlcGVh dGluZy1saW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLCB2YXIoLS10bC1ha3plbnQpIDAg NHB4LCB0cmFuc3BhcmVudCA0cHggN3B4KTsKfQoKLyogU3TDpHJrZS1Tb2xsLVplbGxlOiBSb3Qv R3LDvG4gcGFzc2VuZCB6dSBEU00gdW5kIEZlaWVydGFnLU1hcmtlcm4uCiAgIEVyZsO8bGx0ID0g IzFCNUUyMCAoPSBEU00tYWt0aXYtR3LDvG4pLCBVbnRlcmJlc2V0enQgPSAjOEIxQTFBICg9IEZl aWVydGFnLVJvdCkuICovCi5rZC16ZWxsZS50ZC1zb2xsLnRkLWVyZnVlbGx0LXRpbnQgewogICAg YmFja2dyb3VuZDogIzFCNUUyMCAhaW1wb3J0YW50OwogICAgY29sb3I6ICNGRkZGRkYgIWltcG9y dGFudDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7Cn0KLmtkLXplbGxlLnRkLXNvbGwudGQtdW50ZXJi ZXNldHp0IHsKICAgIGJhY2tncm91bmQ6ICM4QjFBMUEgIWltcG9ydGFudDsKICAgIGNvbG9yOiAj RkZGRkZGICFpbXBvcnRhbnQ7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgYm94LXNoYWRvdzog bm9uZTsKfQovKiBUcmVubmVyICIvIiB1bmQgWmllbC1aYWhsIGF1ZiBkZW0gZmFyYmlnZW4gSGlu dGVyZ3J1bmQ6IHdlaXNzLWdldG9lbnQgKi8KLmtkLXplbGxlLnRkLXNvbGwgLnRkLXNvbGwtZGl2 aWRlciB7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOyBvcGFjaXR5OiAxOyB9Ci5rZC16 ZWxsZS50ZC1zb2xsIC50ZC1zb2xsLXppZWwgICAgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSww LjkyKTsgb3BhY2l0eTogMTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBWaXN1YWwtUmVmcmVzaCDigJQgVG9wYmFy IC8gR3J1cHBlbi1UcmVubmVyCiAgIChhZGRpdGl2LCBrZWluZSBET00tQWVuZGVydW5nZW4gZXJm b3JkZXJsaWNoKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ICovCgovKiBGTEQtTG9nby1Ba3plbnQgdm9yIGRlbSBUaXRlbCDi gJQgR29sZC1RdWFkcmF0IHBlciBQc2V1ZG8tRWxlbWVudC4KICAgQ3VzdG9tLUxvZ28tSG9laGUg dmlhIENTUy1WYXJpYWJsZSAoRGVmYXVsdCAyOHB4KSwgSGVhZGVyIGF0bWV0IG1pdC4gKi8KOnJv b3QgeyAtLWN1c3RvbS1sb2dvLWhvZWhlOiAyOHB4OyB9CiNrb3BmbGVpc3RlIHsgbWluLWhlaWdo dDogY2FsYyh2YXIoLS1jdXN0b20tbG9nby1ob2VoZSkgKyAxNHB4KTsgaGVpZ2h0OiBhdXRvOyB9 CiNrb3BmbGVpc3RlIC5oZWFkZXItbGlua3MgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24t aXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyB9CiNrb3BmbGVpc3RlIGgxIHsgZGlzcGxheTogaW5s aW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KI2N1c3RvbS1sb2dvLXNsb3QgeyBkaXNw bGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQojY3VzdG9tLWxvZ28tc2xv dCBpbWcuY3VzdG9tLWxvZ28gewogICAgbWF4LWhlaWdodDogdmFyKC0tY3VzdG9tLWxvZ28taG9l aGUpOwogICAgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWN1c3RvbS1sb2dvLWhvZWhlKSAqIDMuNSk7 CiAgICB3aWR0aDogYXV0bzsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICBib3JkZXItcmFk aXVzOiA0cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgcGFk ZGluZzogMnB4IDRweDsKfQoja29wZmxlaXN0ZSBoMTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJG TEQiOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwog ICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMjZweDsKICAgIGhlaWdodDog MjZweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFk aWVudCgxMzVkZWcsIHZhcigtLWdvbGQpIDAlLCAjOEU2RjJGIDEwMCUpOwogICAgY29sb3I6ICNm ZmY7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgbGV0dGVy LXNwYWNpbmc6IDAuNXB4OwogICAgYm94LXNoYWRvdzogdmFyKC0tc2NoYXR0ZW4tc20pOwogICAg bWFyZ2luLXJpZ2h0OiAxMHB4Owp9Ci8qIEN1c3RvbS1Mb2dvIGFrdGl2OiBGTEQtUHNldWRvIGF1 c2JsZW5kZW4gKi8KYm9keS5jdXN0b20tbG9nby1ha3RpdiAja29wZmxlaXN0ZSBoMTo6YmVmb3Jl IHsgZGlzcGxheTogbm9uZTsgfQoKLyogQWt0aXZlciBOYXYtVGFiOiBBa3plbnQtVW50ZXJzdHJp Y2ggaW4gR29sZCBzdGF0dCBXZWlzcyDigJQgcnVoaWdlciAqLwoubmF2LWJ0bi5ha3RpdiB7CiAg ICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1nb2xkKTsKfQoKLyogUGVyc29uYWx2ZXJ3YWx0 dW5nLVRhYmVsbGU6IGZlc3RlIFNwYWx0ZW5icmVpdGVuIHZlcmhpbmRlcm4gTGF5b3V0LVNwcnVu ZyAqLwojcGVyc29uYWwtdGFiZWxsZSB7CiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOwogICAgd2lk dGg6IDEwMCU7Cn0KI3BlcnNvbmFsLXRhYmVsbGUgdGQgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsK ICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoK LyogSW5saW5lLUVkaXQgKFZJMy1QYXR0ZXJuOiByZXBsYWNlV2l0aCkg4oCUIFNwYW4gd2lyZCB6 dSBJbnB1dCAqLwouemUtZWRpdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBjdXJz b3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4 OwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgbWluLXdpZHRoOiAzMHB4Owog ICAgbWF4LXdpZHRoOiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZs b3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIHZlcnRpY2FsLWFsaWdu OiBtaWRkbGU7Cn0KLnplLWVkaXQ6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctaG92 ZXIpOwogICAgb3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIG91 dGxpbmUtb2Zmc2V0OiAtMXB4Owp9Ci56ZS1lZGl0LWlucHV0IHsKICAgIHdpZHRoOiAxMDAlOwog ICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLWlucHV0KTsKICAgIHBhZGRpbmc6IDFweCA1cHg7CiAgICBtYXJnaW46IDA7CiAg ICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiB2 YXIoLS10ZXh0LXByaW1hcnkpOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgb3V0bGluZTog bm9uZTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLnplLWVkaXQtaW5wdXQ6Zm9jdXMg ewogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNDQsNjIsODAsMC4yMCk7Cn0KLnplLWVk aXQtc2VsZWN0IHsgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9CgovKiBM b2didWNoLVRhZ3MgKyBSb2xsZW4tQmFkZ2VzICovCi5sYi10YWcgewogICAgZGlzcGxheTogaW5s aW5lLWJsb2NrOwogICAgcGFkZGluZzogMXB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsK ICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBtYXJnaW4tbGVm dDogNnB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoubGItdGFnLXBmbGljaHQgIHsg YmFja2dyb3VuZDogcmdiYSgxNzYsMTM4LDYzLDAuMTUpOyBjb2xvcjogdmFyKC0tZ29sZCk7IGJv cmRlcjogMXB4IHNvbGlkIHJnYmEoMTc2LDEzOCw2MywwLjQpOyB9Ci5sYi10YWctb3ZlcnJpZGUg eyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4xNSk7IGNvbG9yOiB2YXIoLS1mYXJiZS13 YXJudW5nKTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDIsMTExLDMwLDAuNCk7IH0KCi5sYi1y b2xsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAxcHggNXB4Owog ICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgZm9udC1zaXplOiA5cHg7CiAgICBmb250LXdlaWdo dDogNzAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5n OiAwLjVweDsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRs ZTsKfQoubGItcm9sbGUtc3VwZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBj b2xvcjogI2ZmZjsgfQoubGItcm9sbGUtYWRtaW4geyBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkLXNv ZnQpOyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KLmxiLXJvbGxlLXVzZXIgIHsgYmFja2dyb3VuZDog dmFyKC0tYmctaG92ZXIpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KCi8qIFRlcm1pbmUt VGFiOiBLYXRlZ29yaWUtQmFkZ2VzICsgRmlsdGVyICovCi5mdC1rYXQgewogICAgZGlzcGxheTog aW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogMXB4IDdweDsKICAgIGJvcmRlci1yYWRpdXM6IDhw eDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0ZXh0LXRy YW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4Owp9Ci5mdC1rYXQt Z2VzZXR6bGljaCB7IGJhY2tncm91bmQ6IHJnYmEoMTc2LDEzOCw2MywwLjE1KTsgY29sb3I6IHZh cigtLWdvbGQpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE3NiwxMzgsNjMsMC40KTsgfQouZnQt a2F0LWp1ZWRpc2NoICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDYyLDk0LDEzOSwwLjEyKTsgIGNvbG9y OiAjM0U1RThCOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDYyLDk0LDEzOSwwLjQpOyB9Ci5mdC1r YXQtbXVzbGltaXNjaCB7IGJhY2tncm91bmQ6IHJnYmEoNzQsMTM5LDk0LDAuMTIpOyAgY29sb3I6 ICM0QThCNUU7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNzQsMTM5LDk0LDAuNCk7IH0KLmZ0LWth dC10dWVya2lzY2ggIHsgYmFja2dyb3VuZDogcmdiYSgxNzYsNTgsNDYsMC4xMik7ICBjb2xvcjog dmFyKC0tZmFyYmUtZmVobGVyKTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNzYsNTgsNDYsMC40 KTsgfQouZnQta2F0LWNoayB7IGZvbnQtc2l6ZTogMTFweDsgY3Vyc29yOiBwb2ludGVyOyB1c2Vy LXNlbGVjdDogbm9uZTsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7 IGdhcDogNHB4OyB9Ci5mdC1rYXQtY2hrIGlucHV0IHsgY3Vyc29yOiBwb2ludGVyOyB9CgovKiBl TWFpbC1TdGF0dXMtQnRuIChtYWlsdG8pIOKAlCBndXQgbGVzYmFyLCBlaW5oZWl0bGljaGUgSG9l aGUgd2llIEFrdGlvbmVuLUJ0biAqLwouYnRuLWVtYWlsLXN0YXR1cyB7CiAgICBib3JkZXI6IDFw eCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHBhZGRpbmc6 IDNweCAxMHB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAg IGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlv bjogdmFyKC0tdHJhbnNpdGlvbi1zdGQpOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBh bGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA1cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5v bmU7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgbWluLXdpZHRoOiA3MHB4OwogICAganVzdGlm eS1jb250ZW50OiBjZW50ZXI7Cn0KLmJ0bi1lbWFpbC1zdGF0dXMgLmljbyB7CiAgICBmb250LXNp emU6IDEzcHg7CiAgICBsaW5lLWhlaWdodDogMTsKfQouYnRuLWVtYWlsLXN0YXR1cy5oYXQtZW1h aWwgewogICAgYmFja2dyb3VuZDogcmdiYSgzOSwxMzcsMTA5LDAuMTIpOwogICAgY29sb3I6IHZh cigtLWZhcmJlLWVyZm9sZyk7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMzksMTM3LDEwOSwwLjQw KTsKfQouYnRuLWVtYWlsLXN0YXR1cy5oYXQtZW1haWw6aG92ZXIgewogICAgYmFja2dyb3VuZDog dmFyKC0tZmFyYmUtZXJmb2xnKTsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLWNvbG9yOiB2 YXIoLS1mYXJiZS1lcmZvbGcpOwp9Ci5idG4tZW1haWwtc3RhdHVzLmtlaW5lLWVtYWlsIHsKICAg IGJhY2tncm91bmQ6IHJnYmEoMTc2LDU4LDQ2LDAuMTApOwogICAgY29sb3I6IHZhcigtLWZhcmJl LWZlaGxlcik7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMTc2LDU4LDQ2LDAuNDApOwp9Ci5idG4t ZW1haWwtc3RhdHVzLmtlaW5lLWVtYWlsOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZh cmJlLWZlaGxlcik7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFy YmUtZmVobGVyKTsKfQoKLyogPT09PT0gVmlldy1BcyBCYW5uZXIgKyBTY2hyZWliLURpc2FibGUg PT09PT0gKi8KI3ZpZXctYXMtYmFubmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1p dGVtczogY2VudGVyOwogICAgZ2FwOiAxNHB4OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRp ZW50KDkwZGVnLCB2YXIoLS1mYXJiZS13YXJudW5nKSAwJSwgI0I4NUMxMiAxMDAlKTsKICAgIGNv bG9yOiAjZmZmOwogICAgcGFkZGluZzogOHB4IDE4cHg7CiAgICBmb250LXNpemU6IDEycHg7CiAg ICBmb250LXdlaWdodDogNjAwOwogICAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwwLDAs MC4xNSk7CiAgICB6LWluZGV4OiAyMDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KI3ZpZXct YXMtYmFubmVyIC52YS1pY29uIHsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMTsgfQoj dmlldy1hcy1iYW5uZXIgLnZhLXRleHQgeyBmbGV4OiAxOyB9CiN2aWV3LWFzLWJhbm5lciAjYnRu LXZpZXctYXMtenVydWVjayB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgY29sb3I6IHZhcigt LWZhcmJlLXdhcm51bmcpOwogICAgYm9yZGVyOiBub25lOwogICAgZm9udC13ZWlnaHQ6IDcwMDsK ICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7CiAgICBvcGFjaXR5OiAxICFpbXBv cnRhbnQ7Cn0KI3ZpZXctYXMtYmFubmVyICNidG4tdmlldy1hcy16dXJ1ZWNrOmhvdmVyIHsgYmFj a2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9CgovKiBJbSBWaWV3LUFzLU1vZHVzOiBhbGxlIFNj aHJlaWItQWt0aW9uZW4gdmlzdWVsbCArIGZ1bmt0aW9uYWwgc3BlcnJlbiAqLwpib2R5LnZpZXct YXMtbW9kdXMgLmFuc2ljaHQgYnV0dG9uOm5vdCgjYnRuLXZpZXctYXMtenVydWVjayk6bm90KC5u YXYtYnRuKTpub3QoLmljb24tYnRuKTpub3QoLmJ0bi1zdGF0aXN0aWstbGFkZW4pLApib2R5LnZp ZXctYXMtbW9kdXMgLmFuc2ljaHQgaW5wdXQ6bm90KFt0eXBlPSJjaGVja2JveCJdKTpub3QoW3Jl YWRvbmx5XSksCmJvZHkudmlldy1hcy1tb2R1cyAuYW5zaWNodCBzZWxlY3QsCmJvZHkudmlldy1h cy1tb2R1cyAuYW5zaWNodCB0ZXh0YXJlYSwKYm9keS52aWV3LWFzLW1vZHVzIC5ncmlkLXplbGxl LApib2R5LnZpZXctYXMtbW9kdXMgLnplLWVkaXQsCmJvZHkudmlldy1hcy1tb2R1cyAuY2ItZGFy Zi1zdGF0LApib2R5LnZpZXctYXMtbW9kdXMgLmJ0bi1zdGF0dXMtdG9nZ2xlLApib2R5LnZpZXct YXMtbW9kdXMgLmJ0bi1lbWFpbC1zdGF0dXMgewogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAg ICBvcGFjaXR5OiAwLjU1OwogICAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50Owp9CmJv ZHkudmlldy1hcy1tb2R1cyAuZ3JpZC16ZWxsZTpob3ZlciB7IGJhY2tncm91bmQ6IGluaGVyaXQg IWltcG9ydGFudDsgfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgPT09PT09PT09PT09PT0gSEVB REVSICsgVEFHRVNMQUdFIFJFREVTSUdOIOKAlCBQQVRDSCBCTE9DSyA9PT09PT09PT09PT09PT09 CiAgIEVpbmdlYmF1dDogMjAyNi0wNS0wMwogICBRdWVsbGU6IEZMRCBIZWFkZXIgUmVkZXNpZ24u aHRtbCAoTW9ja3VwKQogICAtIFVlYmVyc2NocmVpYnQgYWx0ZSBIZWFkZXItUmVnZWxuIGR1cmNo IGhvZWhlcmUgU3BlemlmaXRhZXQKICAgICBiencuIHNwYWV0ZXJlIFJlaWhlbmZvbGdlLgogICAt IFNldHp0IFpvbmUtV3JhcHBlciAoLnpvbmUtc29sbC8tZHNtLy1kYXR1bS8tY291bnRlci8tc2Yp IHVtIGRpZQogICAgIGJlc3RlaGVuZGVuIEtvcGYtWmVpbGVuIHZvcmF1cyAoaW4gaW5kZXguaHRt bCBiZXJlaXRzIGVpbmdlYmF1dCkuCiAgIC0gT3JpZ2luYWwtSURzL0tsYXNzZW4gYmxlaWJlbiB1 bmFuZ2V0YXN0ZXQg4oCUIGtlaW5lIEpTLUFlbmRlcnVuZyBub2V0aWcuCiAgID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0gKi8KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICAgRkxELVBsYW51bmcg4oCUIFJlZGVzaWduIEhlYWRlciArIFRhZ2Vz bGFnZS1CbG9jawogICBaaWVsZTogd2VuaWdlciBMw6RybSwga2xhcmVyZSBIaWVyYXJjaGllLCBz YXViZXJlIEZhcmJsb2dpawogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0gKi8KCgoKOnJvb3QgewogICAgLyogTmV1dHJhbGUgQmFzaXMg 4oCUIGxlaWNodCBrw7xobCwgd2VuaWdlciBTw6R0dGlndW5nIGFscyB2b3JoZXIgKi8KICAgIC0t YmctcHJpbWFyeTogICAgICAgICMxRjJBMzY7ICAgLyogSGVhZGVyLUJsb2NrIChldHdhcyBkdW5r bGVyLCBydWhpZ2VyKSAqLwogICAgLS1iZy1wcmltYXJ5LTI6ICAgICAgIzI5Mzg0QTsgICAvKiBz ZWt1bmTDpHJlciBIZWFkZXItVG9uIChEYXR1bS1ab25lKSAqLwogICAgLS1iZy1ib2R5OiAgICAg ICAgICAgI0VFRjBGMzsKICAgIC0tYmctY2FyZDogICAgICAgICAgICNGRkZGRkY7CiAgICAtLWJn LWNhcmQtYWx0OiAgICAgICAjRjZGN0Y5OwogICAgLS1iZy10b29sYmFyOiAgICAgICAgI0U5RUNF RjsKCiAgICAtLXRleHQtb24tcHJpbWFyeTogICAjRTlFRUYzOwogICAgLS10ZXh0LW9uLXByaW1h cnktbXV0OiByZ2JhKDIzMywyMzgsMjQzLDAuNTUpOwogICAgLS10ZXh0LXByaW1hcnk6ICAgICAg IzFGMkEzNjsKICAgIC0tdGV4dC1zZWNvbmRhcnk6ICAgICM1QzZCN0E7CiAgICAtLXRleHQtbXV0 ZWQ6ICAgICAgICAjOEE5OEE2OwoKICAgIC0tYm9yZGVyLWxpZ2h0OiAgICAgICNFNEU3RUI7CiAg ICAtLWJvcmRlci1jb2xvcjogICAgICAjRDJEN0REOwogICAgLS1ib3JkZXItc3Ryb25nOiAgICAg I0FFQjZCRjsKCiAgICAvKiBTY2hpY2h0LUFremVudGUg4oCUIG51ciBlaW4gSHVlIHBybyBTY2hp Y2h0LCBlaW5oZWl0bGljaGUgU8OkdHRpZ3VuZyAqLwogICAgLS1hY2MtZnJ1ZWg6ICAgICAgICAg I0M5QTk0QTsgICAvKiBGID0gR29sZCAqLwogICAgLS1hY2Mtc3BhZXQ6ICAgICAgICAgIzRBOEI1 RTsgICAvKiBTID0gR3LDvG4gKi8KICAgIC0tYWNjLW5hY2h0OiAgICAgICAgICMzRTVFOEI7ICAg LyogTiA9IEJsYXUgKi8KCiAgICAvKiBTdGF0dXMg4oCUIHNwYXJzYW0gZWluc2V0emVuICovCiAg ICAtLXN0YXR1cy1vazogICAgICAgICAjMkY4RjZGOwogICAgLS1zdGF0dXMtd2Fybi1iZzogICAg I0ZCRTlFNzsKICAgIC0tc3RhdHVzLXdhcm4tZmc6ICAgICNBODM0MUY7CgogICAgLyogTGF5b3V0 ICovCiAgICAtLXplbGxlLWJyZWl0ZTogICAgICA2MnB4OwogICAgLS16ZWxsZS1ob2VoZTogICAg ICAgMjJweDsKICAgIC0tbmFtZW4tYnJlaXRlOiAgICAgIDI2MHB4OwogICAgLS1rb3BmLXplaWxl bi1ob2VoZTogMjRweDsgICAgIC8qIGlkZW50aXNjaCB6dSAtLWhlYWRlci1yb3ctaCwgc29uc3Qg RHJpZnQgbGlua3MvcmVjaHRzICovCiAgICAtLWhlYWRlci1yb3ctaDogICAgICAyNHB4OwoKICAg IC0tcmFkaXVzLXNtOiAzcHg7CiAgICAtLXJhZGl1cy1tZDogNnB4OwoKICAgIC8qIFZvbSBSZWRl c2lnbi1QYXRjaCBnZW51dHp0ZSBUb2tlbnMgKHZvcmhlciB1bmRlZmluaWVydDsgRkFMTEJBQ0sg YXVmIFRhZy1XZXJ0ZSkgKi8KICAgIC0tc2hhZG93LXNtOiAgMCAxcHggNHB4IHJnYmEoMCwwLDAs MC4wOCk7CiAgICAtLWFjYy1pbmZvOiAgICMzRTVFOEI7ICAgLyogSGV1dGUtSGlnaGxpZ2h0LVJp bmcgKGVudHNwcmljaHQgLS1hY2MtbmFjaHQpICovCiAgICAtLXN0YXR1cy1lcnI6ICNCNzFDMUM7 ICAgLyogRmVpZXJ0YWctU2NocmlmdCBpbSBQZXJzcGxhbiAqLwoKICAgIC0tZm9udC1zdGFjazog IkludGVyIiwgIlNlZ29lIFVJIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAi SGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgIC0tZm9udC1udW06ICAgIklu dGVyIiwgIlNGIE1vbm8iLCB1aS1tb25vc3BhY2UsICJSb2JvdG8gTW9ubyIsIG1vbm9zcGFjZTsK fQoKLyogV0lDSFRJRzogRGllc2VyIE5pZ2h0LU92ZXJyaWRlIG11c3MgTkFDSCBkZW0gOnJvb3Qg b2JlbiBzdGVoZW4sIHdlaWwgZGllCiAgIFRva2VucyBkb3J0IGRpZSB1cnNwcsO8bmdsaWNoZW4g TmlnaHQtV2VydGUgKFplaWxlIDgzKSB3aWVkZXIgw7xiZXJzY2hyaWViZW4KICAgaGFiZW4uIFNv bnN0IHNjaGFsdGVuIGRpZSBkb21pbmFudGVuIEZsw6RjaGVuIChCb2R5LCBUb29sYmFyLCBDYXJk cykgaW0KICAgTmlnaHQtTW9kZSBuaWNodCB1bS4gKi8KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gewog ICAgLS1iZy1wcmltYXJ5OiAgICAgICAgICAgIzFBMjUyRjsKICAgIC0tYmctcHJpbWFyeS0yOiAg ICAgICAgICMyQTNBNEQ7CiAgICAtLWJnLWJvZHk6ICAgICAgICAgICAgICAjMTUxRDI1OwogICAg LS1iZy1jYXJkOiAgICAgICAgICAgICAgIzFDMjYzMDsKICAgIC0tYmctY2FyZC1hbHQ6ICAgICAg ICAgICMyMTMwM0Q7CiAgICAtLWJnLXRvb2xiYXI6ICAgICAgICAgICAjMjEzMDNEOwoKICAgIC0t dGV4dC1vbi1wcmltYXJ5OiAgICAgICNENURERTU7CiAgICAtLXRleHQtb24tcHJpbWFyeS1tdXQ6 ICByZ2JhKDIxMywyMjEsMjI5LDAuNTUpOwogICAgLS10ZXh0LXByaW1hcnk6ICAgICAgICAgI0Q1 RERFNTsKICAgIC0tdGV4dC1zZWNvbmRhcnk6ICAgICAgICM4ODk5QTY7CiAgICAtLXRleHQtbXV0 ZWQ6ICAgICAgICAgICAjNUE2QTc4OwoKICAgIC0tYm9yZGVyLWxpZ2h0OiAgICAgICAgICMyMjMw NDA7CiAgICAtLWJvcmRlci1jb2xvcjogICAgICAgICAjMjgzQTRBOwogICAgLS1ib3JkZXItc3Ry b25nOiAgICAgICAgIzNBNEU2MDsKCiAgICAtLXN0YXR1cy1vazogICAgICAgICAgICAjNjZCQjZB OwogICAgLS1zdGF0dXMtd2Fybi1iZzogICAgICAgIzVEMkMyMzsKICAgIC0tc3RhdHVzLXdhcm4t Zmc6ICAgICAgICNGMDk1NkY7CgogICAgLyogUGF0Y2gtUGVyc3BsYW4tVG9rZW5zICovCiAgICAt LXNoYWRvdy1zbTogICAgICAgICAgICAwIDFweCA0cHggcmdiYSgwLDAsMCwwLjQwKTsKICAgIC0t YWNjLWluZm86ICAgICAgICAgICAgICM1Qjg3Qjg7CiAgICAtLXN0YXR1cy1lcnI6ICAgICAgICAg ICAjRUY1MzUwOwp9CgpodG1sLCBib2R5IHsKICAgIGhlaWdodDogMTAwJTsKICAgIGZvbnQtZmFt aWx5OiB2YXIoLS1mb250LXN0YWNrKTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxpbmUtaGVp Z2h0OiAxLjM7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLWJvZHkpOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7 CiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5Owp9Ci8qID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAxKSBUT1At SEVBREVSIOKAlCBlaW5lIFplaWxlLCBkcmVpIFpvbmVuCiAgID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoja29wZmxlaXN0ZSB7CiAg ICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRv OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMjRweDsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSk7CiAg ICBwYWRkaW5nOiAwIDE2cHg7CiAgICBoZWlnaHQ6IDQ4cHg7CiAgICBib3gtc2hhZG93OiAwIDFw eCAwIHJnYmEoMCwwLDAsMC4xNSk7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4 OiAxMDA7Cn0KCi8qIEJyYW5kICovCi5rbC1icmFuZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0 ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWluLXdpZHRoOiAwOyB9CgovKiBMb2dvLVNsb3QgZnVl ciBhdXN0YXVzY2hiYXJlcyBDdXN0b20tTG9nbyAoQmlsZCBvZGVyIElubGluZS1TVkcpLgogICBX ZW5uIGRlciBTbG90IEluaGFsdCBoYXQsIHdpcmQgZGVyIERlZmF1bHQtQmxvY2sgYXVzZ2VibGVu ZGV0LiAqLwoua2wtbG9nby1zbG90IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1z OiBjZW50ZXI7IH0KLmtsLWxvZ28tc2xvdDplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH0KLmtsLWxv Z28tc2xvdCBpbWcsIC5rbC1sb2dvLXNsb3Qgc3ZnIHsKICAgIGhlaWdodDogMjZweDsgd2lkdGg6 IGF1dG87IGRpc3BsYXk6IGJsb2NrOyBib3JkZXItcmFkaXVzOiA1cHg7Cn0KLmtsLWxvZ28tc2xv dDpub3QoOmVtcHR5KSArIC5rbC1sb2dvLWRlZmF1bHQgeyBkaXNwbGF5OiBub25lOyB9Cgoua2wt bG9nbyB7CiAgICB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4OyBib3JkZXItcmFkaXVzOiA1cHg7 CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjM0U1RThCLCAjNEE4QjVF KTsKICAgIGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBmb250LXdlaWdo dDogNzAwOyBmb250LXNpemU6IDExcHg7IGNvbG9yOiAjZmZmOyBsZXR0ZXItc3BhY2luZzogMC41 cHg7Cn0KLmtsLXRpdGVsIHsKICAgIGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDYwMDsg bGV0dGVyLXNwYWNpbmc6IC0wLjFweDsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBi YXNlbGluZTsgZ2FwOiA2cHg7Cn0KLmtsLXRpdGVsIC5qYWhyIHsgZm9udC13ZWlnaHQ6IDQwMDsg b3BhY2l0eTogMC41NTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQoKLyog TmF2ICovCi5oZWFkZXItbmF2IHsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogMnB4OyBqdXN0aWZ5 LXNlbGY6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNCk7CiAg ICBwYWRkaW5nOiAzcHg7IGJvcmRlci1yYWRpdXM6IDZweDsKfQoubmF2LWJ0biB7CiAgICBiYWNr Z3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOwog ICAgYm9yZGVyOiBub25lOwogICAgcGFkZGluZzogNXB4IDEycHg7CiAgICBib3JkZXItcmFkaXVz OiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250OiBpbmhlcml0OyBmb250LXNpemU6 IDEycHg7IGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJz LCBjb2xvciAwLjEyczsKfQoubmF2LWJ0bjpob3ZlciB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5k OiByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyB9Ci5uYXYtYnRuLmFrdGl2IHsKICAgIGNvbG9yOiAj ZmZmOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE0KTsKICAgIGJveC1zaGFk b3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwwLjE1KTsKfQoKLyogUmVjaHRzOiBrb21wYWt0IGVpbnpl aWxpZyAqLwoua2wtcmVjaHRzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsg Z2FwOiAxMHB4OyB9Ci5rbC11c2VyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBj ZW50ZXI7IGdhcDogNnB4OwogICAgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogcmdiYSgyNTUsMjU1 LDI1NSwwLjYpOwogICAgcGFkZGluZzogNHB4IDhweDsgYm9yZGVyLXJhZGl1czogNHB4Owp9Ci5r bC11c2VyIC5hdmF0YXIgewogICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYm9yZGVyLXJh ZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTsKICAgIGRp c3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBmb250LXNpemU6IDEwcHg7IGZv bnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODUpOwp9Ci5rbC1oZXV0 ZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4 cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgYm9yZGVyOiAx cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTsKICAgIHBhZGRpbmc6IDRweCAxMHB4Owog ICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlv bjogYmFja2dyb3VuZCAwLjEycywgYm9yZGVyLWNvbG9yIDAuMTJzOwogICAgZm9udDogaW5oZXJp dDsgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSk7Cn0KLmtsLWhldXRlOmhvdmVyIHsgYmFj a2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE0KTsgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwy NTUsMjU1LDAuMjIpOyB9Ci5rbC1oZXV0ZS1sYWJlbCB7CiAgICBmb250LXNpemU6IDEwcHg7IGZv bnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjZweDsKICAgIHRleHQtdHJhbnNmb3Jt OiB1cHBlcmNhc2U7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOwp9Ci5rbC1oZXV0ZS1k YXR1bSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsg bGluZS1oZWlnaHQ6IDEuMDU7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1z Owp9Ci5rbC1oZXV0ZS1kYXR1bSAuZCB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYw MDsgfQoua2wtaGV1dGUtZGF0dW0gLncgeyBmb250LXNpemU6IDEwcHg7IG9wYWNpdHk6IDAuNjsg bWFyZ2luLXRvcDogMXB4OyB9CgouaWNvbi1idG4gewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJl bnQ7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpOwogICAgYm9yZGVyOiAxcHggc29s aWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTsKICAgIHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7 CiAgICBwYWRkaW5nOiAwOyAgICAgICAgICAgICAgICAgICAgICAgLyogw7xiZXJzY2hyZWlidCBk YXMgw6RsdGVyZSBwYWRkaW5nOjNweCAxMHB4IGF1cyBSdWxlIG9iZW4gKi8KICAgIGRpc3BsYXk6 IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBj dXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzLCBjb2xvciAw LjEycywgYm9yZGVyLWNvbG9yIDAuMTJzOwp9Ci5pY29uLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6 IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IGNvbG9yOiAjZmZmOyBib3JkZXItY29sb3I6IHJnYmEo MjU1LDI1NSwyNTUsMC4yMik7IH0KLmljb24tYnRuIHN2ZyB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6 IDE0cHg7IHN0cm9rZTogY3VycmVudENvbG9yOyBmaWxsOiBub25lOyBzdHJva2Utd2lkdGg6IDI7 IHN0cm9rZS1saW5lY2FwOiByb3VuZDsgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsgfQoKLyogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAg IDIpIFBMQU5VTkdTLUNPTlRBSU5FUiArIEtPUEZCTE9DSwogICA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI3BsYW51bmctY29udGFp bmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4OiAxOwogICAgbWluLWhlaWdodDogMDsK ICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKfQoK I25hbWVuLXNwYWx0ZSB7CiAgICB3aWR0aDogdmFyKC0tbmFtZW4tYnJlaXRlKTsKICAgIG1pbi13 aWR0aDogdmFyKC0tbmFtZW4tYnJlaXRlKTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZh cigtLWJvcmRlci1jb2xvcik7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29s dW1uOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICB6LWluZGV4OiAxMDsKfQoK I2tvcGYtbGlua3MgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IH0KCi5rb3BmLXpl aWxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgaGVp Z2h0OiB2YXIoLS1oZWFkZXItcm93LWgpOwogICAgcGFkZGluZzogMCAxMHB4OwogICAgZm9udC1z aXplOiAxMHB4OwogICAgZ2FwOiA4cHg7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAyYSkgWk9ORSBBIOKAlCBTb2xsdm9y Z2FiZW4gKGR1bmtlbCwgZWluIEJsb2NrKQogICAgICAgVm9yZ2FiZSArIFNvbGwgPSBQbGFuLUFu a2VyIG9iZW4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ICovCi56b25lLXNvbGwgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJp bWFyeSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJvcmRlci1yYWRp dXM6IDA7Cn0KLnpvbmUtc29sbCAua29wZi16ZWlsZSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xp ZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyB9Ci56b25lLXNvbGwgLmtvcGYtemVpbGU6bGFzdC1j aGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH0KCi8qIERTTS1aZWlsZTogdmlzdWVsbCBhbHMg ZWlnZW5lIFN1Yi1ab25lIChldHdhcyBkdW5rbGVyLCBUaWNrYm94LUtvbnplcHQpICovCi56b25l LWRzbSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5LTIpOwogICAgY29sb3I6IHZh cigtLXRleHQtb24tcHJpbWFyeSk7Cn0KCi8qIERhdHVtLVpvbmUgKi8KLnpvbmUtZGF0dW0gewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeS0yKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0 LW9uLXByaW1hcnkpOwp9Ci56b25lLWRhdHVtIC5rb3BmLXplaWxlIHsgYm9yZGVyLWJvdHRvbTog MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7IH0KLnpvbmUtZGF0dW0gLmtvcGYtemVp bGU6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH0KCi8qID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAyYikgWk9ORSBC IOKAlCBDb3VudGVyIChIRUxMLCBsZXNiYXIpCiAgICAgICBEaWVzZSBzaW5kIGVpZ2VudGxpY2gg RGF0ZW56ZWlsZW4sIG5pY2h0IEhlYWRlci4KICAgICAgIEhlbGwgPSBzb2ZvcnRpZ2UgdmlzdWVs bGUgRW50bGFzdHVuZwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0gKi8KLnpvbmUtY291bnRlciB7CiAgICBiYWNrZ3JvdW5kOiAjMjkz ODRBOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdsZWljaGVyIENELUJs YXUgd2llIG9iZW4gKi8KICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1 LDAuMjIpOyAgICAgICAgICAgLyogc2ljaHRiYXJlciBUcmVubmVyIOKAlCB3aXJrdCBsaW5rcyBV TkQgcmVjaHRzICovCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1 NSwwLjA4KTsKfQouem9uZS1jb3VudGVyIC5rb3BmLXplaWxlIHsKICAgIGJvcmRlci1ib3R0b206 IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOwogICAgY29sb3I6ICNFOUVFRjM7CiAg ICBoZWlnaHQ6IHZhcigtLWhlYWRlci1yb3ctaCk7CiAgICBmb250LXNpemU6IDExcHg7Cn0KLnpv bmUtY291bnRlciAua29wZi16ZWlsZTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsg fQoKLyogU2NoaWNodGZvbGdlICovCi8qIFNjaGljaHRmb2xnZS1CbG9jayAoU3RhbmRvcnQtc3Bl emlmaXNjaCkg4oCUIGhldXRlIG5pY2h0IGluIFZlcndlbmR1bmcsCiAgIGRpZSBDb3VudGVyIHJl bmRlcm4ga2VpbmUgV2VydGUgaGllcmVpbi4gVm9sbHN0w6RuZGlnIGF1c2JsZW5kZW4sIHNvbnN0 CiAgIGJsZWlidCBsaW5rcyBlaW5lIHVuZ2VudXR6dGUg4oCeU2NoaWNodCItQmVzY2hyaWZ0dW5n IG9obmUgRGF0ZW4tUGVuZGFudC4gKi8KLnpvbmUtc2YsCiNzY2hpY2h0Zm9sZ2UtbGlua3MsCiNz Y2hpY2h0Zm9sZ2UtcmVjaHRzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9CgovKiBMaW5r ZSBMYWJlbHM6IGVpbmhlaXRsaWNoZSBUeXBvICovCi5rbC1sYWJlbCB7CiAgICBmbGV4OiAxOwog ICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNm b3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2luZzogMC41NXB4OwogICAgY29sb3I6IGlu aGVyaXQ7CiAgICBvcGFjaXR5OiAwLjg1OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIG92 ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQouem9uZS1jb3Vu dGVyIC5rbC1sYWJlbCB7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG9wYWNpdHk6IDE7 IH0KLnpvbmUtc29sbCAgLmtsLWxhYmVsIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41NSk7 IH0KLnpvbmUtZGF0dW0gLmtsLWxhYmVsIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41NSk7 IH0KLnpvbmUtZHNtICAgLmtsLWxhYmVsIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41NSk7 IH0KCi8qIEFremVudHN0cmVpZmVuIHZvciBDb3VudGVyLUxhYmVscyBlbnRmZXJudCDigJQgSGVh ZGVyIHNvbGwgdW5pZm9ybSBDRC1ibGF1IGJsZWliZW4gKi8KLmtsLWFreiB7IGRpc3BsYXk6IG5v bmU7IH0KCi8qIEhpbndlaXMtSWNvbiAoaSk6IE1vZGFsLVRyaWdnZXIg4oCUIGRpZSBlaW56aWdl IEljb24tU3RlbGxlIGhpZXIgKi8KLmtsLWluZm8gewogICAgd2lkdGg6IDE0cHg7IGhlaWdodDog MTRweDsgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENv bG9yOwogICAgZGlzcGxheTogaW5saW5lLWdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBm b250LXNpemU6IDlweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGN1cnNvcjogaGVscDsKICAgIG9w YWNpdHk6IDAuNDU7CiAgICBmbGV4LXNocmluazogMDsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsK ICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnM7Cn0KLmtsLWluZm86aG92ZXIgeyBvcGFjaXR5 OiAwLjk1OyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICAgMykgUkVDSFRFUiBLT1BGQkVSRUlDSCDigJQgVGFnZXN6ZWxsZW4K ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ICovCiNncmlkLXNjcm9sbC1jb250YWluZXIgewogICAgZmxleDogMTsKICAgIG92ZXJmbG93 OiBhdXRvOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CiNrb3BmLXJlY2h0cyB7CiAgICBwb3Np dGlvbjogc3RpY2t5OwogICAgdG9wOiAwOwogICAgei1pbmRleDogNTsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLXByaW1hcnkpOyAgIC8qIENELUJsYXUgKi8KfQoKLmtvcGYtZGF0ZW4temVpbGUg ewogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogdmFyKC0taGVhZGVyLXJvdy1oKTsKfQoK LmtkLXplbGxlIHsKICAgIHdpZHRoOiB2YXIoLS16ZWxsZS1icmVpdGUpOwogICAgbWluLXdpZHRo OiB2YXIoLS16ZWxsZS1icmVpdGUpOwogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBm b250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgcG9zaXRpb246IHJlbGF0aXZl Owp9CgovKiAtLS0gWm9uZSBBOiBWb3JnYWJlLVBpbGxlbiAoRi9TL04pIC0tLS0tLS0tLS0tLS0t LS0tLS0tLSAqLwouem9uZS1zb2xsIC5rZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1i Zy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgYm9yZGVy LXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKICAgIGJvcmRlci1ib3R0 b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgcGFkZGluZzogMnB4IDRw eDsKICAgIGdhcDogNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKfQouem9uZS1zb2xsIC5rb3Bm LWRhdGVuLXplaWxlOmxhc3QtY2hpbGQgLmtkLXplbGxlIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsg fQoKLyogVm9yZ2FiZS1TY2hpY2h0OiBHQU5aRSBaRUxMRSBpbiBTY2hpY2h0ZmFyYmUgKEYvUy9O KS4KICAgV2VydGUgYXVzIGFkbWluLmpzb24uaGVhZGVyS29uZmlnLnZvcmdhYmVTdHlsZXNbRnxT fE5dIChBdWRpdC1JdGVyLUQsIDIwMjYtMDUtMDUpLgogICBIYXJkY29kZXMgc2luZCBGYWxsYmFj ayDigJQgd2VubiB2b3JnYWJlU3R5bGVzLjx0eXA+LmhpbnRlcmdydW5kIGxlZXIsIGtvbW10CiAg IGRpZSBTY2hpY2h0Y29kZS1GYXJiZSBhdXMgYWRtaW4uc2NoaWNodGNvZGVzICgtLWFjYy1mcnVl aC8tc3BhZXQvLW5hY2h0KS4gKi8KLnpvbmUtc29sbCAjdGQtdm9yZ2FiZS16ZWlsZSAua2QtemVs bGUudnotZiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1mLWJnLCB2YXIoLS1hY2MtZnJ1ZWgp KTsKICAgIGNvbG9yOiB2YXIoLS12cC1mLWZnLCAjMkUxRjAwKTsKICAgIGZvbnQtc2l6ZTogdmFy KC0tdnAtZi1zaXplLCBpbmhlcml0KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS12cC1mLXdlaWdo dCwgaW5oZXJpdCk7CiAgICBmb250LXN0eWxlOiB2YXIoLS12cC1mLXN0eWxlLCBub3JtYWwpOwog ICAgYm9yZGVyLXRvcDogdmFyKC0tdnAtZi1idCwgbm9uZSk7CiAgICBib3JkZXItbGVmdDogdmFy KC0tdnAtZi1ibCwgbm9uZSk7CiAgICBib3JkZXItcmlnaHQ6IHZhcigtLXZwLWYtYnIsIG5vbmUp Owp9Ci56b25lLXNvbGwgI3RkLXZvcmdhYmUtemVpbGUgLmtkLXplbGxlLnZ6LXMgewogICAgYmFj a2dyb3VuZDogdmFyKC0tdnAtcy1iZywgdmFyKC0tYWNjLXNwYWV0KSk7CiAgICBjb2xvcjogdmFy KC0tdnAtcy1mZywgI0ZGRkZGRik7CiAgICBmb250LXNpemU6IHZhcigtLXZwLXMtc2l6ZSwgaW5o ZXJpdCk7CiAgICBmb250LXdlaWdodDogdmFyKC0tdnAtcy13ZWlnaHQsIGluaGVyaXQpOwogICAg Zm9udC1zdHlsZTogdmFyKC0tdnAtcy1zdHlsZSwgbm9ybWFsKTsKICAgIGJvcmRlci10b3A6IHZh cigtLXZwLXMtYnQsIG5vbmUpOwogICAgYm9yZGVyLWxlZnQ6IHZhcigtLXZwLXMtYmwsIG5vbmUp OwogICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS12cC1zLWJyLCBub25lKTsKfQouem9uZS1zb2xsICN0 ZC12b3JnYWJlLXplaWxlIC5rZC16ZWxsZS52ei1uIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLXZw LW4tYmcsIHZhcigtLWFjYy1uYWNodCkpOwogICAgY29sb3I6IHZhcigtLXZwLW4tZmcsICNGRkZG RkYpOwogICAgZm9udC1zaXplOiB2YXIoLS12cC1uLXNpemUsIGluaGVyaXQpOwogICAgZm9udC13 ZWlnaHQ6IHZhcigtLXZwLW4td2VpZ2h0LCBpbmhlcml0KTsKICAgIGZvbnQtc3R5bGU6IHZhcigt LXZwLW4tc3R5bGUsIG5vcm1hbCk7CiAgICBib3JkZXItdG9wOiB2YXIoLS12cC1uLWJ0LCBub25l KTsKICAgIGJvcmRlci1sZWZ0OiB2YXIoLS12cC1uLWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdo dDogdmFyKC0tdnAtbi1iciwgbm9uZSk7Cn0KLnpvbmUtc29sbCAjdGQtdm9yZ2FiZS16ZWlsZSAu a2QtemVsbGUgLnZwIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogaW5oZXJp dDsKICAgIHdpZHRoOiBhdXRvOyBoZWlnaHQ6IGF1dG87CiAgICBmb250LXNpemU6IDExcHg7IGZv bnQtd2VpZ2h0OiA3MDA7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAwOwp9Ci8q IFRyZW5ubGluaWVuIGluIGRlciBWb3JnYWJlLVplaWxlIGRlemVudCBoYWx0ZW4gKGF1ZiBkZXIg Vm9sbGZhcmJlKSAqLwouem9uZS1zb2xsICN0ZC12b3JnYWJlLXplaWxlIC5rZC16ZWxsZSB7CiAg ICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMC4xMCk7Cn0KCi8qIFRvZ2dsZS1CdXR0 b24gaW0gSGVhZGVyIHp1bSBVbXNjaGFsdGVuIFBpbGxlIDwtPiBWb2xsLVplbGxlICovCi52b3Jn YWJlLXRvZ2dsZSB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2Jh KDI1NSwyNTUsMjU1LDAuNTUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1 NSwwLjEyKTsKICAgIGhlaWdodDogMjhweDsgcGFkZGluZzogMCA5cHg7CiAgICBib3JkZXItcmFk aXVzOiA1cHg7IGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQ6IGluaGVyaXQ7IGZvbnQtc2l6ZTog MTBweDsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxl dHRlci1zcGFjaW5nOiAwLjVweDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDZweDsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGNv bG9yIDAuMTJzLCBib3JkZXItY29sb3IgMC4xMnM7Cn0KLnZvcmdhYmUtdG9nZ2xlOmhvdmVyIHsg YmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsgY29sb3I6ICNmZmY7IH0KLnZvcmdh YmUtdG9nZ2xlIC5kb3QgewogICAgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRp dXM6IDUwJTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWFjYy1zcGFldCk7CiAgICBib3gtc2hhZG93 OiAwIDAgMCAycHggcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKfQpib2R5LnZvcmdhYmUtZmlsbCAu dm9yZ2FiZS10b2dnbGUgeyBjb2xvcjogI2ZmZjsgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUs MjU1LDAuMzApOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTApOyB9CgovKiBTb2xs LVplbGxlOiBudXIgWmFobGVuLCBrZWluIGZhcmJpZ2VzIEVjayAqLwouc29sbCB7CiAgICBkaXNw bGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBnYXA6IDJweDsKICAgIGZv bnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7Cn0KLnNvbGwgLm51bSB7IGZvbnQtd2Vp Z2h0OiA3MDA7IH0KLnNvbGwgLnNlcCB7IG9wYWNpdHk6IDAuNDU7IGZvbnQtd2VpZ2h0OiA0MDA7 IH0KCi8qIERTTS1aZWxsZW4gKi8KLnpvbmUtZHNtIC5rZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1wcmltYXJ5LTIpOwogICAgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeS1t dXQpOwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsK ICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnM7Cn0K LnpvbmUtZHNtIC5rZC16ZWxsZTpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUs MC4wNSk7IH0KLyogTGVnYWN5IERTTS1Ba3Rpdi1DU1MtSGFrZW4gZW50ZmVybnQg4oCUIFN5bWJv bCBrb21tdCBqZXR6dCBhdXMgZGVtCiAgIDxzcGFuIGNsYXNzPSJ0ZC1kc20tc3ltIj4tRWxlbWVu dCAo4pyTL8OXKS4gR3LDvG4vUm90IHdlcmRlbiBpbiBkZXIKICAgdGQtZHNtLXplbGxlLUJsb2Nr LVJlZ2VsIG9iZW4gZ2VzZXR6dC4gKi8KCi8qIC0tLSBab25lIERhdHVtIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi56b25lLWRhdHVtIC5rZC16ZWxsZSB7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5LTIpOwogICAgY29sb3I6IHZhcigtLXRleHQt b24tcHJpbWFyeSk7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1 LDAuMDYpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4w NSk7Cn0KLnpvbmUtZGF0dW0gLmtkLWRhdHVtIHsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXpl OiAxMXB4OyB9Ci56b25lLWRhdHVtIC5rZC13dGFnIHsgZm9udC1zaXplOiAxMHB4OyBvcGFjaXR5 OiAwLjU1OyB9Ci56b25lLWRhdHVtIC5rZC1ldmVudHMgeyBnYXA6IDRweDsgbWluLWhlaWdodDog dmFyKC0taGVhZGVyLXJvdy1oKTsgfQouem9uZS1kYXR1bSAua2QtZmVyaWVuIHsgZm9udC1zaXpl OiA5cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG9wYWNpdHk6IDAuNzsgfQoKLyogV29jaGVuZW5kZTog bnVyIGxlaWNodGVyIFRvbndlY2hzZWwg4oCUIGtlaW4gYW5kZXJlciBIdWUgKi8KLmtkLXdlIHsg YmFja2dyb3VuZDogIzM0NDU1QSAhaW1wb3J0YW50OyB9Ci5rZC1mZWllcnRhZyB7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1rZC1mZWllcnRhZy1iZywgIzhCMUExQSkgIWltcG9ydGFudDsKICAgIGNv bG9yOiB2YXIoLS1rZC1mZWllcnRhZy1mZywgI0ZGRkZGRikgIWltcG9ydGFudDsKfQoua2QtaGV1 dGUgewogICAgYmFja2dyb3VuZDogdmFyKC0ta2QtaGV1dGUtYmcsICMxQjRBNkIpICFpbXBvcnRh bnQ7CiAgICBjb2xvcjogdmFyKC0ta2QtaGV1dGUtZmcsICNmZmYpICFpbXBvcnRhbnQ7CiAgICBi b3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCAjNUJCMEU1Owp9CgovKiBGZXJpZW5rw7xyemVsICov Ci5rZC1may1mZXJpZW4geyBjb2xvcjogI0E2RDVCMDsgfQoua2QtZmstZmVpZXJ0YWcgeyBjb2xv cjogI0YyQTZBMDsgfQoKLyogRXZlbnRzOiBOVVIgaGllciBJY29ucyAoSGlud2Vpc2UvRGV0YWls cykgKi8KLmtkLWV2ZW50LWljb24gewogICAgZGlzcGxheTogaW5saW5lLWdyaWQ7IHBsYWNlLWl0 ZW1zOiBjZW50ZXI7CiAgICB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OwogICAgY3Vyc29yOiBw b2ludGVyOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7CiAgICB0cmFuc2l0aW9u OiB0cmFuc2Zvcm0gMC4xMnM7Cn0KLmtkLWV2ZW50LWljb246aG92ZXIgeyB0cmFuc2Zvcm06IHNj YWxlKDEuMTUpOyB9Ci5rZC1ldmVudC1pY29uIHN2ZyB7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEy cHg7IGZpbGw6IGN1cnJlbnRDb2xvcjsgfQoua2QtZXZlbnQtd2FybiB7IGNvbG9yOiAjRjBCODcy OyB9Ci5rZC1ldmVudC1pbmZvIHsgY29sb3I6ICM4RkI4REQ7IH0KCi8qIC0tLSBab25lIENvdW50 ZXIgKGhlbGwpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi56b25lLWNvdW50 ZXIgLmtkLXplbGxlIHsKICAgIGJhY2tncm91bmQ6ICMyOTM4NEE7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBleHBsaXppdCBibGF1IOKAlCBQYXJlbnQga2FubiBkdXJjaCBTY3JvbGwg YXXDn2VyaGFsYiBsaWVnZW4gKi8KICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwog ICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKICAgIGJv cmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgZm9udC1z aXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKfQouem9uZS1jb3VudGVyIC5rb3BmLWRh dGVuLXplaWxlOmxhc3QtY2hpbGQgLmtkLXplbGxlIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQoK LyogQ291bnRlciBtaXQgU3RhdHVzZmFyYmUgTlVSIGJlaSBCZWRhcmYgKi8KLnpvbmUtY291bnRl ciAua2QtemVsbGUud2FybiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdGF0dXMtd2Fybi1iZyk7 CiAgICBjb2xvcjogdmFyKC0tc3RhdHVzLXdhcm4tZmcpOwp9Ci56b25lLWNvdW50ZXIgLmtkLXpl bGxlLmRpbSB7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBmb250LXdlaWdodDog NTAwOwp9Ci56b25lLWNvdW50ZXIgLmtkLXplbGxlIC5zbWFsbCB7CiAgICBmb250LXNpemU6IDlw eDsKICAgIG9wYWNpdHk6IDAuNTU7CiAgICBtYXJnaW4tbGVmdDogMXB4Owp9CgovKiBXb2NoZW4t VHJlbm5lcjogZMO8bm5lciBzZW5rcmVjaHRlciBTdHJpY2ggYW0gU28g4oaSIE1vICovCi5rZC16 ZWxsZS53ZS1lbmQgeyBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcikgIWlt cG9ydGFudDsgfQouem9uZS1zb2xsIC5rZC16ZWxsZS53ZS1lbmQsCi56b25lLWRhdHVtIC5rZC16 ZWxsZS53ZS1lbmQsCi56b25lLWRzbSAua2QtemVsbGUud2UtZW5kIHsgYm9yZGVyLXJpZ2h0LWNv bG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpICFpbXBvcnRhbnQ7IH0KCi8qIEhldXRlLVNwYWx0 ZW4tQWt6ZW50OiB2ZXJ0aWthbGVyIFN0cmVpZmVuIHF1ZXIgZHVyY2ggYWxsZSBab25lbiAqLwou a2QtemVsbGUuaGV1dGUtc3BhbHRlIHsKICAgIGJveC1zaGFkb3c6IGluc2V0IDJweCAwIDAgIzVC QjBFNSwgaW5zZXQgLTJweCAwIDAgIzVCQjBFNTsKfQouem9uZS1jb3VudGVyIC5rZC16ZWxsZS5o ZXV0ZS1zcGFsdGUgewogICAgYmFja2dyb3VuZDogI0VBRjRGQjsKfQoKLyogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDQpIE5BTUVO LUxJU1RFIChLb250ZXh0LCB2ZXJlaW5mYWNodCkKICAgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNuYW1lbi1saXN0ZSB7CiAgICBm bGV4OiAxOwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIC8qIFNjcm9sbGJhbGtlbiB2aXN1ZWxs IGF1c2JsZW5kZW4g4oCUIHZlcnRpa2FsZXMgU2Nyb2xsZW4gd2lyZCBtaXQgZGVtCiAgICAgICBy ZWNodGVuIERhdGVuLUdyaWQgc3luY2hyb25pc2llcnQgKHNpZWhlIGFwcC5qcyAvIGV2ZW50TGlz dGVuZXJFaW5yaWNodGVuKSwKICAgICAgIHNvZGFzcyBlcyBudXIgRUlORU4gc2ljaHRiYXJlbiBT Y3JvbGxiYWxrZW4gYW0gcmVjaHRlbiBCaWxkc2NoaXJtcmFuZCBnaWJ0LiAqLwogICAgc2Nyb2xs YmFyLXdpZHRoOiBub25lOwp9CiNuYW1lbi1saXN0ZTo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0 aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9Ci5uYW1lbi16ZWlsZSB7CiAgICBkaXNw bGF5OiBmbGV4OwogICAgaGVpZ2h0OiB2YXIoLS16ZWxsZS1ob2VoZSk7CiAgICBib3JkZXItYm90 dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGFsaWduLWl0ZW1zOiBjZW50 ZXI7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICBnYXA6IDhw eDsKfQoubmFtZW4temVpbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 IH0KLm56LW5hbWUgeyBmbGV4OiAxOyBmb250LXdlaWdodDogNjAwOyBvdmVyZmxvdzogaGlkZGVu OyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQoubnotcm9s bGUgeyBmb250LXNpemU6IDlweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB0ZXh0LXRyYW5z Zm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IH0KCi8qIEdyaWQtWmVsbGVu IOKAlCBudXIgU2tlbGV0dCBmw7xyIE1vY2t1cCAqLwojZ3JpZC1kYXRlbiB7IGRpc3BsYXk6IGZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KLmdyaWQtemVpbGUgeyBkaXNwbGF5OiBmbGV4 OyBoZWlnaHQ6IHZhcigtLXplbGxlLWhvZWhlKTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZh cigtLWJvcmRlci1saWdodCk7IH0KLmdyaWQtemVsbGUgewogICAgd2lkdGg6IHZhcigtLXplbGxl LWJyZWl0ZSk7IG1pbi13aWR0aDogdmFyKC0temVsbGUtYnJlaXRlKTsKICAgIGRpc3BsYXk6IGZs ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9y ZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGZvbnQtc2l6ZTog MTBweDsgZm9udC13ZWlnaHQ6IDYwMDsKfQouZ3otZiAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwx NjksNzQsMC4xOCk7IGNvbG9yOiAjNkY1NTFBOyB9Ci5nei1zICB7IGJhY2tncm91bmQ6IHJnYmEo NzQsMTM5LDk0LDAuMjApOyAgY29sb3I6ICMyMDVBMzY7IH0KLmd6LW4gIHsgYmFja2dyb3VuZDog cmdiYSg2Miw5NCwxMzksMC4yMCk7ICBjb2xvcjogIzFGM0Q2MDsgfQouZ3otZnJlaSB7IGNvbG9y OiB2YXIoLS10ZXh0LW11dGVkKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDUpIEhpbGZzLUJhbm5lciAvIEFubm90YXRp b24gZsO8ciBWb3JoZXItL05hY2hoZXItQW5zaWNodAogICA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLmRlbW8tZnJhbWUgewogICAg ZmxleDogMTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHgg dmFyKC0tYm9yZGVyLWNvbG9yKTsKfQouZGVtby1iYXIgewogICAgZGlzcGxheTogZmxleDsgYWxp Z24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgcGFk ZGluZzogMTBweCAxNnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAg Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBmb250LXNp emU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLmRlbW8tYmFyIGgyIHsg Zm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1wcmlt YXJ5KTsgfQouZGVtby1iYXIgLnBpbGwgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWdu LWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OwogICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJh ZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ3LDE0MywxMTEsMC4xMCk7IGNvbG9y OiB2YXIoLS1zdGF0dXMtb2spOwogICAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAw OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7Cn0KLmxl Z2VuZGUgewogICAgZGlzcGxheTogZmxleDsgZ2FwOiAxNHB4OyBmbGV4LXdyYXA6IHdyYXA7CiAg ICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9y ZGVyLWNvbG9yKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGZvbnQt c2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKfQoubGVnZW5kZS1pdGVt IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyB9 Ci5sZWdlbmRlLXN3YXRjaCB7CiAgICB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyBib3JkZXIt cmFkaXVzOiAzcHg7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLDAsMCww LjA4KTsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgRklOQUxFIE9WRVJSSURFUyDigJQga29t cGF0aWJlbCB6dW0gYmVzdGVoZW5kZW4gR3JpZAogICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCjpyb290 IHsgLS1uYW1lbi1icmVpdGU6IDI4MHB4OyAtLWtvcGYtemVpbGVuLWhvZWhlOiAyNHB4OyB9Cgoj a29wZi1saW5rcyAuem9uZS1jb3VudGVyIC5rb3BmLXplaWxlLnRsLXJvdywKI2tvcGYtcmVjaHRz IC56b25lLWNvdW50ZXIgLmtvcGYtZGF0ZW4temVpbGUudGwtcm93IHsKICAgIGJhY2tncm91bmQ6 ICMyOTM4NEEgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpICFp bXBvcnRhbnQ7Cn0KI2tvcGYtcmVjaHRzIC56b25lLWNvdW50ZXIgLmtvcGYtZGF0ZW4temVpbGUu dGwtcm93IC5rZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5kOiAjMjkzODRBICFpbXBvcnRhbnQ7CiAg ICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KSAhaW1wb3J0YW50Owp9CiNrb3BmLWxpbmtz IC5rb3BmLXplaWxlLnRsLXJvdyB7IHBhZGRpbmc6IDAgOHB4ICFpbXBvcnRhbnQ7IGdhcDogNnB4 OyB9CiNrb3BmLWxpbmtzIC56b25lLWNvdW50ZXIgLmtsLWxhYmVsIHsKICAgIG92ZXJmbG93OiB2 aXNpYmxlOyB0ZXh0LW92ZXJmbG93OiBjbGlwOyB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgY29s b3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSkgIWltcG9ydGFudDsgb3BhY2l0eTogMTsKICAgIGZv bnQtc2l6ZTogMTAuNXB4OyBmb250LXdlaWdodDogNjAwOwp9CiNrb3BmLWxpbmtzIC56b25lLWNv dW50ZXIgLmtsLXdlcnQgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOyBmb250LXdlaWdo dDogNjAwOyBmb250LXNpemU6IDExcHg7IH0KI2tvcGYtbGlua3MgLnpvbmUtc29sbCAua2wtbGFi ZWwsCiNrb3BmLWxpbmtzIC56b25lLWRhdHVtIC5rbC1sYWJlbCwKI2tvcGYtbGlua3MgLnpvbmUt ZHNtIC5rbC1sYWJlbCB7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY1KSAhaW1wb3J0 YW50OyBvcGFjaXR5OiAxOwogICAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAwOyBw YWRkaW5nOiAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CiN0ZC1kc20temVpbGUgeyBiYWNrZ3Jv dW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9Ci8qIERTTS1aZWxsZSB3aXJkIGluIGRlciBE U00tQmxvY2stUmVnZWwgb2JlbiBnZWbDpHJidCAocm90L2dyw7xuKSDigJQgaGllciBuaWNodHMg w7xiZXJzY2hyZWliZW4uICovCgojc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtYWJjICB7IGJhY2tn cm91bmQ6IHJnYmEoNzQsMTM5LDk0LDAuMTQpICAhaW1wb3J0YW50OyBjb2xvcjogIzJBNUEzRCAh aW1wb3J0YW50OyB9CiNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1iY2EgIHsgYmFja2dyb3VuZDog cmdiYSg2Miw5NCwxMzksMC4xNCkgICFpbXBvcnRhbnQ7IGNvbG9yOiAjMjMzRTYwICFpbXBvcnRh bnQ7IH0KI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLWNhYiAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIw MSwxNjksNzQsMC4xOCkgIWltcG9ydGFudDsgY29sb3I6ICM2RjU1MUEgIWltcG9ydGFudDsgfQoj c2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtcG9vbCB7IGJhY2tncm91bmQ6ICNFQ0VFRjEgIWltcG9y dGFudDsgICAgY29sb3I6ICM2Rjc5ODQgIWltcG9ydGFudDsgZm9udC1zdHlsZTogaXRhbGljOyB9 CltkYXRhLXRoZW1lPSJuaWdodCJdICNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1hYmMgIHsgYmFj a2dyb3VuZDogcmdiYSg3NCwxMzksOTQsMC4yMCkgIWltcG9ydGFudDsgY29sb3I6ICM4RkNGQTEg IWltcG9ydGFudDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAu c2YtYmNhICB7IGJhY2tncm91bmQ6IHJnYmEoNjIsOTQsMTM5LDAuMjQpICFpbXBvcnRhbnQ7IGNv bG9yOiAjOTJBREQwICFpbXBvcnRhbnQ7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gI3NjaGljaHRm b2xnZS1yZWNodHMgLnNmLWNhYiAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwxNjksNzQsMC4yMikg IWltcG9ydGFudDsgY29sb3I6ICNEOUMwNzggIWltcG9ydGFudDsgfQpbZGF0YS10aGVtZT0ibmln aHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtcG9vbCB7IGJhY2tncm91bmQ6ICMyQTJGMzYg IWltcG9ydGFudDsgY29sb3I6ICM4QjkzOUIgIWltcG9ydGFudDsgfQoKLnNmLXZvcnNjaGF1LnNm LWFiYyB7IGJhY2tncm91bmQ6IHJnYmEoNzQsMTM5LDk0LDAuMTgpOyBjb2xvcjogIzJBNUEzRDsg fQouc2Ytdm9yc2NoYXUuc2YtYmNhIHsgYmFja2dyb3VuZDogcmdiYSg2Miw5NCwxMzksMC4xOCk7 IGNvbG9yOiAjMjMzRTYwOyB9Ci5zZi12b3JzY2hhdS5zZi1jYWIgeyBiYWNrZ3JvdW5kOiByZ2Jh KDIwMSwxNjksNzQsMC4yMik7IGNvbG9yOiAjNkY1NTFBOyB9Ci5zZi12b3JzY2hhdS5zZi12b3Jz Y2hhdS1wb29sIHsgYmFja2dyb3VuZDogI0VDRUVGMTsgY29sb3I6ICM2Rjc5ODQ7IGZvbnQtc3R5 bGU6IGl0YWxpYzsgcGFkZGluZzogM3B4IDEwcHg7IH0KCiNrb3BmbGVpc3RlIC52b3JnYWJlLXRv Z2dsZSB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHJnYmEoMjU1LDI1NSwy NTUsMC41NSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwog ICAgaGVpZ2h0OiAyOHB4OyBwYWRkaW5nOiAwIDlweDsgYm9yZGVyLXJhZGl1czogNXB4OwogICAg Y3Vyc29yOiBwb2ludGVyOyBmb250OiBpbmhlcml0OyBmb250LXNpemU6IDEwcHg7IGZvbnQtd2Vp Z2h0OiA2MDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzog MC41cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2Fw OiA2cHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzLCBjb2xvciAwLjEycywgYm9y ZGVyLWNvbG9yIDAuMTJzOwp9CiNrb3BmbGVpc3RlIC52b3JnYWJlLXRvZ2dsZTpob3ZlciB7IGJh Y2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IGNvbG9yOiAjZmZmOyB9CiNrb3BmbGVp c3RlIC52b3JnYWJlLXRvZ2dsZSAuZG90IHsKICAgIHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBi b3JkZXItcmFkaXVzOiA1MCU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2Mtc3BhZXQpOyBib3gt c2hhZG93OiAwIDAgMCAycHggcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKfQpib2R5LnZvcmdhYmUt ZmlsbCAja29wZmxlaXN0ZSAudm9yZ2FiZS10b2dnbGUgewogICAgY29sb3I6ICNmZmY7IGJvcmRl ci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMwKTsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1 LDI1NSwwLjEwKTsKfQoKI2tvcGZsZWlzdGUgLmtsLWxvZ28tc2xvdDpub3QoOmVtcHR5KSB+IC5r bC1sb2dvLApib2R5LmN1c3RvbS1sb2dvLWFrdGl2ICNrb3BmbGVpc3RlIC5rbC1sb2dvIHsgZGlz cGxheTogbm9uZSAhaW1wb3J0YW50OyB9CiNrb3BmbGVpc3RlIC5rbC1sb2dvLXNsb3Q6ZW1wdHkg KyAua2wtbG9nbyB7IGRpc3BsYXk6IGlubGluZS1ncmlkOyB9CiNrb3BmbGVpc3RlIGgxOjpiZWZv cmUgeyBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsg fQoja29wZmxlaXN0ZSAuaGVhZGVyLXJlY2h0cyB7IGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9y dGFudDsgcGFkZGluZzogMCAhaW1wb3J0YW50OyBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRh bnQ7IH0KI2tvcGZsZWlzdGUgLmhyLXplaWxlIHsgZGlzcGxheTogY29udGVudHMgIWltcG9ydGFu dDsgfQoja29wZmxlaXN0ZSAuaWNvbi1idG4geyBmb250LXNpemU6IDAgIWltcG9ydGFudDsgfQoj a29wZmxlaXN0ZSAuaWNvbi1idG4gc3ZnIHsgZGlzcGxheTogYmxvY2s7IH0KCi8qID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KICAgSEVBREVSIExBWU9VVCBGSVgg4oCUIEJyYW5kL05hdi1PdmVybGFwLCBUaXRl bC1VbWJydWNoLCBEb3BwZWwtRkxECiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2tvcGZsZWlzdGUg ewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMjIwcHgsIGF1dG8pIDFmciBtaW5t YXgoMjgwcHgsIGF1dG8pICFpbXBvcnRhbnQ7CiAgICBnYXA6IDE2cHggIWltcG9ydGFudDsgcGFk ZGluZzogMCAxMnB4ICFpbXBvcnRhbnQ7IG92ZXJmbG93OiB2aXNpYmxlOwp9CiNrb3BmbGVpc3Rl IC5rbC1icmFuZCwgI2tvcGZsZWlzdGUgLmhlYWRlci1saW5rcyB7IGZsZXgtc2hyaW5rOiAwOyBt aW4td2lkdGg6IDA7IH0KI2tvcGZsZWlzdGUgLmtsLXRpdGVsLCAja29wZmxlaXN0ZSBoMSB7IHdo aXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDsgZmxleC1zaHJpbms6IDA7IH0KI2tvcGZsZWlz dGUgLmtsLXRpdGVsIC5qYWhyLCAja29wZmxlaXN0ZSAuaGVhZGVyLWphaHIgeyB3aGl0ZS1zcGFj ZTogbm93cmFwOyB9CiNrb3BmbGVpc3RlIC5oZWFkZXItbmF2IHsganVzdGlmeS1zZWxmOiBjZW50 ZXIgIWltcG9ydGFudDsgZmxleC1zaHJpbms6IDA7IH0KI2tvcGZsZWlzdGUgLmhlYWRlci1yZWNo dHMsICNrb3BmbGVpc3RlIC5rbC1yZWNodHMgeyBmbGV4LXNocmluazogMDsgbWluLXdpZHRoOiAw OyB9CiNrb3BmbGVpc3RlIGgxOjpiZWZvcmUsICNrb3BmbGVpc3RlIC5rbC10aXRlbDo6YmVmb3Jl IHsKICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50 OwogICAgd2lkdGg6IDAgIWltcG9ydGFudDsgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7IG1hcmdpbjog MCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kOiBub25l ICFpbXBvcnRhbnQ7IGJvcmRlcjogMCAhaW1wb3J0YW50OyBmb250LXNpemU6IDAgIWltcG9ydGFu dDsKfQoja29wZmxlaXN0ZSAua2wtbG9nbyB7IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IGZs ZXgtc2hyaW5rOiAwOyB9CiNrb3BmbGVpc3RlIC5rbC1sb2dvLXNsb3QgeyBmbGV4LXNocmluazog MDsgfQoja29wZmxlaXN0ZSAuYmVudXR6ZXItYmFkZ2UsICNrb3BmbGVpc3RlIC5rbC11c2VyIHsK ICAgIG1heC13aWR0aDogMTQwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVs bGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgp IHsgI2tvcGZsZWlzdGUgLmtsLXRpdGVsIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH0K Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogICBQRVJTw5ZOTElDSEVSIFBMQU4g4oCUIFJlZGVzaWduIFBhdGNoCiAgIEFud2VuZHVu ZzogYW4gc3R5bGUuY3NzIEFOSMOETkdFTiAobmFjaCBwYXRjaC5jc3MpLgogICBTdGFuZDogMjAy Ni0wNS0wMwogICBWb3JhdXNzZXR6dW5nOiBUb2tlbnMgYXVzIHBhdGNoLmNzcyAoLS1iZy1jYXJk LCAtLWJnLWNhcmQtYWx0LAogICAtLWJnLWJvZHksIC0tYmctdG9vbGJhciwgLS1ib3JkZXItbGln aHQsIC0tYm9yZGVyLWNvbG9yLAogICAtLWJvcmRlci1zdHJvbmcsIC0tdGV4dC1wcmltYXJ5LCAt LXRleHQtc2Vjb25kYXJ5LCAtLXRleHQtbXV0ZWQsCiAgIC0tYWNjLWluZm8sIC0tc3RhdHVzLWVy ciwgLS1zaGFkb3ctc20pIHNpbmQgdmVyZsO8Z2Jhci4KICAgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoucHAtbGF5b3V0IHsKICAg IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGZsZXg6IDE7IG1pbi1oZWln aHQ6IDA7Cn0KLnBwLXRvb2xiYXIgewogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsgZ2FwOiA4cHg7CiAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgIGJhY2tncm91bmQ6IHZh cigtLWJnLXRvb2xiYXIpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRl ci1jb2xvcik7CiAgICBtaW4taGVpZ2h0OiA0NHB4OyBmbGV4LXNocmluazogMDsgZmxleC13cmFw OiB3cmFwOwp9Ci5wcC10b29sYmFyIC50b29sYmFyLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTFw eDsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRl ci1zcGFjaW5nOiAwLjRweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLnBw LXRvb2xiYXIgLnBwLXBlcnNvbiAgICAgIHsgd2lkdGg6IDI0MHB4OyB9Ci5wcC10b29sYmFyIC5w cC1qYWhyLXNlbGVjdCB7IHdpZHRoOiA5MHB4OyB9Ci5wcC10b29sYmFyIC5wcC1tb2R1cyB7CiAg ICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAxcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1i Zy1jYXJkLWFsdCk7IGJvcmRlci1yYWRpdXM6IDVweDsgcGFkZGluZzogMnB4Owp9Ci5wcC10b29s YmFyIC5wcC1tb2R1cyAudG9vbGJhci1idG4geyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6IHRy YW5zcGFyZW50OyB9Ci5wcC10b29sYmFyIC5wcC1tb2R1cyAudG9vbGJhci1idG4uYWt0aXYgewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1z bSk7Cn0KLnBwLXRvb2xiYXIgLnBwLXRvb2xiYXItcmVjaHRzIHsKICAgIG1hcmdpbi1sZWZ0OiBh dXRvOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiA2cHg7Cn0KCi5wcC1zY3JvbGwgewogICAg ZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87CiAgICBwYWRkaW5nOiAyMHB4OyBiYWNrZ3JvdW5kOiB2 YXIoLS1iZy1ib2R5KTsKfQoKLnBwLXRpdGVsIHsKICAgIG1heC13aWR0aDogMTIwMHB4OyBtYXJn aW46IDAgYXV0byAxNHB4OwogICAgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGln bi1pdGVtczogYmFzZWxpbmU7IGdhcDogMTJweCAxNnB4Owp9Ci5wcC10aXRlbCAucHAtbmFtZSB7 CiAgICBmb250LXNpemU6IDIwcHg7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0t dGV4dC1wcmltYXJ5KTsgbGV0dGVyLXNwYWNpbmc6IC0wLjJweDsKfQoucHAtdGl0ZWwgLnBwLXJv bGxlIHsKICAgIGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsK ICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJh ZGl1czogOTk5cHg7Cn0KLnBwLXRpdGVsIC5wcC1tZXRhIHsKICAgIG1hcmdpbi1sZWZ0OiBhdXRv OyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGZvbnQtdmFy aWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7Cn0KCi5wcC1sZWdlbmRlIHsKICAgIG1heC13aWR0 aDogMTIwMHB4OyBtYXJnaW46IDAgYXV0byAxNHB4OwogICAgcGFkZGluZzogOHB4IDEycHg7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigt LWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBkaXNwbGF5OiBmbGV4 OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMTJweDsKICAgIGZvbnQtc2l6ZTogMTFweDsgY29sb3I6 IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKfQoucHAtbGVnZW5kZSAubGVnZW5kZS1pdGVtICAgeyBk aXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA1cHg7IH0KLnBw LWxlZ2VuZGUgLmxlZ2VuZGUtc3dhdGNoIHsKICAgIHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7 IGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2Jh KDAsMCwwLDAuMDgpOwp9Ci5wcC1sZWdlbmRlIC5sZWdlbmRlLXN3YXRjaC5zdy1mICAgICB7IGJh Y2tncm91bmQ6IHJnYmEoMjAxLDE2OSw3NCwwLjMwKTsgfQoucHAtbGVnZW5kZSAubGVnZW5kZS1z d2F0Y2guc3ctcyAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDc0LDEzOSw5NCwwLjMwKTsgfQoucHAt bGVnZW5kZSAubGVnZW5kZS1zd2F0Y2guc3ctbiAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDYyLDk0 LDEzOSwwLjMwKTsgfQoucHAtbGVnZW5kZSAubGVnZW5kZS1zd2F0Y2guc3ctZnJlaSAgeyBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRl ci1jb2xvcik7IH0KLnBwLWxlZ2VuZGUgLmxlZ2VuZGUtc3dhdGNoLnN3LXdlICAgIHsgYmFja2dy b3VuZDogdmFyKC0tdGFnLXdvY2hlbmVuZGUpOyB9Ci5wcC1sZWdlbmRlIC5sZWdlbmRlLXN3YXRj aC5zdy1mdCAgICB7IGJhY2tncm91bmQ6IHZhcigtLXRhZy1mZWllcnRhZyk7IH0KLnBwLWxlZ2Vu ZGUgLmxlZ2VuZGUtc3dhdGNoLnN3LWhldXRlIHsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7 IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hY2MtaW5mbyk7IH0KCi5wcC1tb25hdGUgewog ICAgbWF4LXdpZHRoOiAxMjAwcHg7IG1hcmdpbjogMCBhdXRvOwogICAgZGlzcGxheTogZ3JpZDsg Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyODBweCwgMWZy KSk7CiAgICBnYXA6IDE2cHg7Cn0KLnBwLWxheW91dFtkYXRhLW1vZHVzPSJtb25hdCJdIC5wcC1t b25hdGUgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgNzIwcHgpOyBqdXN0 aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQoucHAtbGF5b3V0W2RhdGEtbW9kdXM9Im1vbmF0Il0gLnBw LW1vbmF0IHsgcGFkZGluZzogMjBweDsgfQoucHAtbGF5b3V0W2RhdGEtbW9kdXM9Im1vbmF0Il0g LnBwLW1vbmF0LWtvcGYgaDMgeyBmb250LXNpemU6IDE4cHg7IH0KLnBwLWxheW91dFtkYXRhLW1v ZHVzPSJtb25hdCJdIC5wcC10YWcgeyBmb250LXNpemU6IDEzcHg7IH0KLnBwLWxheW91dFtkYXRh LW1vZHVzPSJtb25hdCJdIC5wcC10YWctbnVtIHsgZm9udC1zaXplOiAxMnB4OyB9Ci5wcC1sYXlv dXRbZGF0YS1tb2R1cz0ibW9uYXQiXSAucHAtdGFnLWNvZGUgeyBmb250LXNpemU6IDEwcHg7IH0K Ci5wcC1tb25hdCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjog MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7IHBh ZGRpbmc6IDE0cHg7CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOwogICAgZGlzcGxh eTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4Owp9Ci5wcC1tb25hdC1r b3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsganVzdGlmeS1j b250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDhweDsKICAgIHBhZGRpbmctYm90dG9tOiA4cHg7 IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9Ci5wcC1tb25h dC1rb3BmIGgzIHsKICAgIGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNv bG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOyBtYXJnaW46IDA7Cn0KLnBwLW1vbmF0LWtvcGYgLnBw LWphaHIgewogICAgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAg ICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwp9Ci5wcC1tb25hdC1rb3BmIC5w cC1tb25hdC1rcGkgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87IGZvbnQtc2l6ZTogMTBweDsKICAg IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzog dGFidWxhci1udW1zOyBsZXR0ZXItc3BhY2luZzogMC4ycHg7Cn0KCi5wcC10YWdlIHsKICAgIGRp c3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7IGdhcDog MnB4Owp9Ci5wcC13dCB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogOXB4OyBj b2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBmb250LXdlaWdodDogNzAwOyB0ZXh0LXRyYW5z Zm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC40cHg7CiAgICBwYWRkaW5nOiA0cHgg MCAycHg7Cn0KLnBwLXRhZyB7CiAgICBhc3BlY3QtcmF0aW86IDEuMiAvIDE7CiAgICBkaXNwbGF5 OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsg anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3Bh cmVudDsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA4cywgYm94LXNoYWRvdyAwLjA4czsK ICAgIGN1cnNvcjogZGVmYXVsdDsKfQoucHAtdGFnLW51bSB7CiAgICBmb250LXNpemU6IDEwcHg7 IGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1z OwogICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKfQoucHAtdGFnLWNvZGUgewogICAg Zm9udC1zaXplOiA5cHg7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBtYXJnaW4tdG9wOiAxcHg7IG9w YWNpdHk6IDAuODU7IGxldHRlci1zcGFjaW5nOiAwLjNweDsKfQoucHAtdGFnLndlICAgIHsgYmFj a2dyb3VuZDogdmFyKC0tdGFnLXdvY2hlbmVuZGUpOyB9Ci5wcC10YWcud2UgICAgLnBwLXRhZy1u dW0geyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9Ci5wcC10YWcuZnQgICAgeyBiYWNr Z3JvdW5kOiB2YXIoLS10YWctZmVpZXJ0YWcpOyB9Ci5wcC10YWcuZnQgICAgLnBwLXRhZy1udW0s Ci5wcC10YWcuZnQgICAgLnBwLXRhZy1jb2RlIHsgY29sb3I6IHZhcigtLXN0YXR1cy1lcnIpOyB9 Ci5wcC10YWcuZiAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwxNjksNzQsMC4yMik7IH0KLnBw LXRhZy5mICAgICAucHAtdGFnLWNvZGUgeyBjb2xvcjogdmFyKC0tYWNjLWZydWVoKTsgfQoucHAt dGFnLnMgICAgIHsgYmFja2dyb3VuZDogcmdiYSg3NCwxMzksOTQsMC4yMik7IH0KLnBwLXRhZy5z ICAgICAucHAtdGFnLWNvZGUgeyBjb2xvcjogdmFyKC0tYWNjLXNwYWV0KTsgfQoucHAtdGFnLm4g ICAgIHsgYmFja2dyb3VuZDogcmdiYSg2Miw5NCwxMzksMC4yMik7IH0KLnBwLXRhZy5uICAgICAu cHAtdGFnLWNvZGUgeyBjb2xvcjogdmFyKC0tYWNjLW5hY2h0KTsgfQoucHAtdGFnLnVybGF1YiAg eyBiYWNrZ3JvdW5kOiByZ2JhKDk1LDEyOCwxNjUsMC4xOCk7IH0KLnBwLXRhZy5rcmFuayAgIHsg YmFja2dyb3VuZDogcmdiYSgxNjgsNTIsMzEsMC4xNCk7IH0KLnBwLXRhZy5oZXV0ZSAgIHsKICAg IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hY2MtaW5mbyk7CiAgICB0cmFuc2Zvcm06IHRy YW5zbGF0ZVkoLTFweCk7IHotaW5kZXg6IDE7Cn0KLnBwLXRhZy5sZWVyICAgICB7IGJhY2tncm91 bmQ6IHRyYW5zcGFyZW50OyB9Ci5wcC10YWcuZ2VzcGVycnQgeyBvcGFjaXR5OiAwLjQ1OyB9Ci5w cC10YWcua2xpY2tiYXI6aG92ZXIgewogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm94LXNoYWRv dzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1zdHJvbmcpOwp9CgoucHAtc3VtbWFyeSB7CiAgICBt YXgtd2lkdGg6IDEyMDBweDsgbWFyZ2luOiAxNnB4IGF1dG8gMDsKICAgIGRpc3BsYXk6IGdyaWQ7 CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4 LCAxZnIpKTsKICAgIGdhcDogMTJweDsKfQoucHAtc3VtbWFyeSAua3BpIHsKICAgIGJhY2tncm91 bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp Z2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMTJweCAxNHB4OwogICAgYm94 LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0 aW9uOiBjb2x1bW47IGdhcDogNHB4Owp9Ci5wcC1zdW1tYXJ5IC5rcGktbGFiZWwgewogICAgZm9u dC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNzAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuNnB4OwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQp Owp9Ci5wcC1zdW1tYXJ5IC5rcGktd2VydCB7CiAgICBmb250LXNpemU6IDIycHg7IGZvbnQtd2Vp Z2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGZvbnQtdmFyaWFu dC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IGxpbmUtaGVpZ2h0OiAxLjE7Cn0KLnBwLXN1bW1hcnkg LmtwaS5rcGktZiAua3BpLXdlcnQgICAgeyBjb2xvcjogdmFyKC0tYWNjLWZydWVoKTsgfQoucHAt c3VtbWFyeSAua3BpLmtwaS1zIC5rcGktd2VydCAgICB7IGNvbG9yOiB2YXIoLS1hY2Mtc3BhZXQp OyB9Ci5wcC1zdW1tYXJ5IC5rcGkua3BpLW4gLmtwaS13ZXJ0ICAgIHsgY29sb3I6IHZhcigtLWFj Yy1uYWNodCk7IH0KLnBwLXN1bW1hcnkgLmtwaS5rcGktZnJlaSAua3BpLXdlcnQgeyBjb2xvcjog dmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9CgovKiAtLS0tLS0tLS0tIERydWNrYW5zaWNodCAoUGVy c8O2bmxpY2hlciBQbGFuKSAtLS0tLS0tLS0tICovCkBtZWRpYSBwcmludCB7CiAgICAvKiBtYXJn aW46IDAgc2V0enQgZGVuIEJyb3dzZXItS29wZi8tRnXDnyAoU2VpdGVudGl0ZWwgKyBVUkwpIGF1 ZgogICAgICAgbnVsbCBQbGF0eiDihpIgZGllIHdlcmRlbiB2b20gQnJvd3NlciBuaWNodCBtZWhy IGVpbmdlYmxlbmRldC4KICAgICAgIERlciBlaWdlbnRsaWNoZSBJbm5lbmFic3RhbmQga29tbXQg w7xiZXIgYm9keS1QYWRkaW5nLiAqLwogICAgQHBhZ2UgeyBzaXplOiBBNCBwb3J0cmFpdDsgbWFy Z2luOiAwOyB9CgogICAgLyogSGludGVyZ3J1bmRmYXJiZW4gaW0gRHJ1Y2sgZXJ6d2luZ2VuIChz b25zdCBnZWhlbiBTY2hpY2h0ZmFyYmVuLAogICAgICAgUm9sbGUtUGlsbGUgZXRjLiBudXIgYWxz IHdlacOfZSBGbMOkY2hlbiByYXVzKSAqLwogICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7CiAg ICAgICAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0ICFpbXBvcnRhbnQ7CiAgICAg ICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdCAhaW1wb3J0YW50OwogICAgfQoKICAgIGJvZHkg eyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDZtbSA3bW0gIWltcG9ydGFu dDsgfQogICAgLyogV29jaGVucGxhbi1EcnVjayBoYXQgc2VpbmUgZWlnZW5lIFBpeGVsZ2VuYXVp Z2tlaXQg4oCUIGVpZ2VuZXMgUGFkZGluZyAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4g eyBwYWRkaW5nOiA4bW0gN21tICFpbXBvcnRhbnQ7IH0KCiAgICAvKiBIZWFkZXIgcmVkdXppZXJ0 IGF1ZiBCcmFuZCAoTG9nbyArIFRpdGVsKTsgTmF2IHVuZCByZWNodGUKICAgICAgIEFrdGlvbnNs ZWlzdGUgdmVyc2Nod2luZGVuIGltIERydWNrLiAqLwogICAgYm9keSA+ICNpbnRlZ3JpdGFldC1i YW5uZXIsCiAgICBib2R5ID4gI3ZpZXctYXMtYmFubmVyLAogICAgYm9keSA+ICN0b2FzdC1jb250 YWluZXIsCiAgICBib2R5ID4gI21vZGFsLW92ZXJsYXksCiAgICBib2R5ID4gI2tvbnRleHRtZW51 LAogICAgYm9keSA+ICNrb3BmbGVpc3RlIC5oZWFkZXItbmF2LAogICAgYm9keSA+ICNrb3BmbGVp c3RlIC5oZWFkZXItcmVjaHRzLAogICAgYm9keSA+ICNrb3BmbGVpc3RlIC5rbC1yZWNodHMsCiAg ICAucHAtdG9vbGJhciwKICAgIC5wcC1sZWdlbmRlLAogICAgLnBwLXN1bW1hcnkgeyBkaXNwbGF5 OiBub25lICFpbXBvcnRhbnQ7IH0KCiAgICBib2R5ID4gI2tvcGZsZWlzdGUgewogICAgICAgIGRp c3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBv cnRhbnQ7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OwogICAgICAgIGNvbG9y OiAjMDAwICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICAg ICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWEgIWltcG9ydGFudDsKICAgICAgICBib3gt c2hhZG93OiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzogMCAwIDNtbSAhaW1wb3J0 YW50OwogICAgICAgIG1hcmdpbjogMCAwIDRtbSAhaW1wb3J0YW50OwogICAgICAgIG1pbi1oZWln aHQ6IDAgIWltcG9ydGFudDsKICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAg ICBnYXA6IDZtbSAhaW1wb3J0YW50OwogICAgfQogICAgYm9keSA+ICNrb3BmbGVpc3RlIC5rbC1i cmFuZCB7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICAgIGFsaWduLWl0 ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgICBnYXA6IDRtbSAhaW1wb3J0YW50OwogICAg ICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5ID4g I2tvcGZsZWlzdGUgLmtsLXRpdGVsIHsKICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50Owog ICAgICAgIGZvbnQtc2l6ZTogMTNwdCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbjogMCAhaW1w b3J0YW50OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CiAgICBib2R5ID4gI2tv cGZsZWlzdGUgLmtsLXRpdGVsIC5oZWFkZXItamFociwKICAgIGJvZHkgPiAja29wZmxlaXN0ZSAu a2wtdGl0ZWwgLmphaHIgeyBjb2xvcjogIzU1NSAhaW1wb3J0YW50OyB9CiAgICBib2R5ID4gI2tv cGZsZWlzdGUgI2N1c3RvbS1sb2dvLXNsb3QsCiAgICBib2R5ID4gI2tvcGZsZWlzdGUgLmtsLWxv Z28sCiAgICBib2R5ID4gI2tvcGZsZWlzdGUgLmtsLWxvZ28tc2xvdCB7CiAgICAgICAgbWF4LWhl aWdodDogMTRtbSAhaW1wb3J0YW50OwogICAgfQogICAgYm9keSA+ICNrb3BmbGVpc3RlICNjdXN0 b20tbG9nby1zbG90IGltZyB7CiAgICAgICAgbWF4LWhlaWdodDogMTRtbSAhaW1wb3J0YW50OyB3 aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wcC1zY3JvbGwgeyBwYWRkaW5nOiAw OyBiYWNrZ3JvdW5kOiAjZmZmOyBvdmVyZmxvdzogdmlzaWJsZTsgfQoKICAgIC8qIEJ1ZmZlci1K YW51YXIgZGVzIEZvbGdlamFocmVzICgxMy4gS2FydGUpIGltIERydWNrIG5pY2h0IHplaWdlbiAq LwogICAgLnBwLW1vbmF0ZSAucHAtbW9uYXQ6bnRoLWNoaWxkKDEzKSB7IGRpc3BsYXk6IG5vbmUg IWltcG9ydGFudDsgfQoKICAgIC8qIFRpdGVsIGtvbXBha3Q6IFJvbGxlLVBpbGxlIChEaWVuc3Rn cmFkL0dydXBwZSkgaW0gRHJ1Y2sgd2VnbGFzc2VuICovCiAgICAucHAtdGl0ZWwgeyBtYXJnaW46 IDAgMCA0bW07IGdhcDogNG1tOyB9CiAgICAucHAtdGl0ZWwgLnBwLXJvbGxlIHsgZGlzcGxheTog bm9uZSAhaW1wb3J0YW50OyB9CiAgICAucHAtdGl0ZWwgLnBwLW5hbWUgIHsgZm9udC1zaXplOiAx NHB0OyB9CiAgICAucHAtdGl0ZWwgLnBwLW1ldGEgIHsgZm9udC1zaXplOiA5cHQ7IH0KCiAgICAv KiAxMiBLYXJ0ZW4gaW4gNCBSZWloZW4gw5cgMyBTcGFsdGVuIOKAlCBwYXNzdCB6dXNhbW1lbiBt aXQga29tcGFrdGVuCiAgICAgICBUYWdlbiBhdWYgZWluZSBTZWl0ZSAqLwogICAgLnBwLW1vbmF0 ZSB7CiAgICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICAgIGdhcDogM21tOwogICAgICAgIGdy aWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICB9CiAgICAucHAtbW9uYXQg ewogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Nj YzsKICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkOwogICAgICAgIHBhZGRpbmc6IDNtbTsKICAg ICAgICBnYXA6IDJtbTsKICAgIH0KICAgIC5wcC1tb25hdC1rb3BmIHsgcGFkZGluZy1ib3R0b206 IDEuNW1tOyB9CiAgICAucHAtbW9uYXQta29wZiBoMyB7IGZvbnQtc2l6ZTogMTBwdDsgfQogICAg LnBwLW1vbmF0LWtvcGYgLnBwLWphaHIsCiAgICAucHAtbW9uYXQta29wZiAucHAtbW9uYXQta3Bp IHsgZm9udC1zaXplOiA3cHQ7IH0KCiAgICAucHAtdGFnZSB7IGdhcDogMXB4OyB9CiAgICAucHAt d3QgICB7IGZvbnQtc2l6ZTogNnB0OyBwYWRkaW5nOiAxcHggMDsgfQogICAgLnBwLXRhZyB7CiAg ICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAg cGFkZGluZzogMXB4IDA7CiAgICAgICAgZ2FwOiAwOwogICAgfQogICAgLnBwLXRhZy1udW0gIHsg Zm9udC1zaXplOiA3cHQ7IH0KICAgIC5wcC10YWctY29kZSB7IGZvbnQtc2l6ZTogNnB0OyBtYXJn aW4tdG9wOiAwOyB9CgogICAgLyogU3VtbWFyeSBrb21wYWt0IOKAlCBwYXNzdCBpbSBJZGVhbGZh bGwgbWl0IGF1ZiBkaWUgbGV0enRlIFNlaXRlICovCiAgICAucHAtc3VtbWFyeSB7CiAgICAgICAg Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICBnYXA6IDJtbTsK ICAgICAgICBtYXJnaW4tdG9wOiAzbW07CiAgICB9CiAgICAucHAtc3VtbWFyeSAua3BpIHsgcGFk ZGluZzogMm1tIDNtbTsgYm94LXNoYWRvdzogbm9uZTsgZ2FwOiAxcHg7IH0KICAgIC5wcC1zdW1t YXJ5IC5rcGktbGFiZWwgeyBmb250LXNpemU6IDZwdDsgfQogICAgLnBwLXN1bW1hcnkgLmtwaS13 ZXJ0ICB7IGZvbnQtc2l6ZTogMTNwdDsgfQp9Cg== ### FILE: sync-worker.js | 2267 Ly8gTGl2ZS1TeW5jIFdlYiBXb3JrZXIg4oCUIHBvbGx0IC9hcGkvcGxhbnVuZy9jaGFuZ2VzICsg L2FwaS9sb2NrL3plbGxlbiBhbGxlCi8vIDMgU2VrdW5kZW4gdW5kIHNjaGlja3QgZGllIERlbHRh cyBhbiBkZW4gSGF1cHR0aHJlYWQuIExhZXVmdCBhdWNoIGluCi8vIEhpbnRlcmdydW5kLVRhYnMg dW5nZWRyb3NzZWx0IChhbmFsb2cgaGVhcnRiZWF0LXdvcmtlci5qcykuCi8vCi8vIFByb3Rva29s bDoKLy8gICBNYWluIOKGkiBXb3JrZXI6ICB7IGNtZDogJ3N0YXJ0JyB8ICdwYXVzZScgfCAncmVz dW1lJywgc2VpdD86ICc8aXNvLXRzPicgfQovLyAgIFdvcmtlciDihpIgTWFpbjogIHsgdHlwZTog J3N5bmMnLCBjaGFuZ2VzOiBbLi4uXSwgbG9ja3M6IFsuLi5dLCBzZXJ2ZXJUczogJzxpc28tdHM+ JyB9Cgp2YXIgSU5URVJWQUxMID0gMzAwMDsKdmFyIHNpY2h0YmFyID0gdHJ1ZTsKdmFyIHNlaXQg PSAnJzsKdmFyIHRpbWVyID0gbnVsbDsKCnZhciBpbnRlZ1RpY2tDb3VudGVyID0gMDsKZnVuY3Rp b24gdGljaygpIHsKICAgIGlmICghc2ljaHRiYXIpIHJldHVybjsKICAgIHZhciBjaGFuZ2VzUCA9 IGZldGNoKCcvYXBpL3BsYW51bmcvY2hhbmdlcz9zZWl0PScgKyBlbmNvZGVVUklDb21wb25lbnQo c2VpdCB8fCAnJykpCiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeyByZXR1cm4gci5qc29uKCk7 IH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSk7CiAgICB2YXIg bG9ja3NQID0gZmV0Y2goJy9hcGkvbG9jay96ZWxsZW4nKQogICAgICAgIC50aGVuKGZ1bmN0aW9u KHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KQogICAgICAgIC5jYXRjaChmdW5jdGlvbigpIHsgcmV0 dXJuIG51bGw7IH0pOwogICAgLy8gUGhhc2UgRzogSW50ZWdyaXRhZXQtU3RhdHVzIG51ciBhbGxl IH4zMHMgcG9sbGVuIChTZXJ2ZXItQ2FjaGUgVFRMKQogICAgLy8gQmVpIElOVEVSVkFMTD0zMDAw bXMgcGFzc3QgMTAgVGlja3MgfiAzMHMuCiAgICBpbnRlZ1RpY2tDb3VudGVyKys7CiAgICB2YXIg aW50ZWdQID0gKGludGVnVGlja0NvdW50ZXIgJSAxMCA9PT0gMSkKICAgICAgICA/IGZldGNoKCcv YXBpL2ludGVncml0YWV0L3N0YXR1cycpLnRoZW4oZnVuY3Rpb24ocikgeyByZXR1cm4gci5qc29u KCk7IH0pLmNhdGNoKGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSkKICAgICAgICA6IFByb21p c2UucmVzb2x2ZShudWxsKTsKICAgIFByb21pc2UuYWxsKFtjaGFuZ2VzUCwgbG9ja3NQLCBpbnRl Z1BdKS50aGVuKGZ1bmN0aW9uKGFycikgewogICAgICAgIHZhciBjaCA9IGFyclswXSwgbGsgPSBh cnJbMV0sIGl0ID0gYXJyWzJdOwogICAgICAgIHZhciBtc2cgPSB7IHR5cGU6ICdzeW5jJyB9Owog ICAgICAgIGlmIChjaCAmJiBjaC5zZXJ2ZXJUcykgewogICAgICAgICAgICBzZWl0ID0gY2guc2Vy dmVyVHM7CiAgICAgICAgICAgIG1zZy5zZXJ2ZXJUcyA9IGNoLnNlcnZlclRzOwogICAgICAgICAg ICBtc2cuY2hhbmdlcyA9IGNoLmNoYW5nZXMgfHwgW107CiAgICAgICAgfQogICAgICAgIGlmIChs ayAmJiBsay5sb2NrcykgbXNnLmxvY2tzID0gbGsubG9ja3M7CiAgICAgICAgaWYgKGl0KSBtc2cu aW50ZWdyaXRhZXQgPSBpdDsKICAgICAgICBpZiAobXNnLmNoYW5nZXMgfHwgbXNnLmxvY2tzIHx8 IG1zZy5pbnRlZ3JpdGFldCkgc2VsZi5wb3N0TWVzc2FnZShtc2cpOwogICAgfSk7Cn0KCmZ1bmN0 aW9uIHN0YXJ0ZW4oKSB7CiAgICBpZiAodGltZXIpIGNsZWFySW50ZXJ2YWwodGltZXIpOwogICAg dGljaygpOwogICAgdGltZXIgPSBzZXRJbnRlcnZhbCh0aWNrLCBJTlRFUlZBTEwpOwp9CgpzZWxm Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBkID0gZS5kYXRhIHx8IHt9OwogICAg aWYgKGQuY21kID09PSAnc3RhcnQnKSB7CiAgICAgICAgaWYgKGQuc2VpdCkgc2VpdCA9IGQuc2Vp dDsKICAgICAgICBzaWNodGJhciA9IHRydWU7CiAgICAgICAgc3RhcnRlbigpOwogICAgfSBlbHNl IGlmIChkLmNtZCA9PT0gJ3BhdXNlJykgewogICAgICAgIHNpY2h0YmFyID0gZmFsc2U7CiAgICB9 IGVsc2UgaWYgKGQuY21kID09PSAncmVzdW1lJykgewogICAgICAgIGlmIChkLnNlaXQpIHNlaXQg PSBkLnNlaXQ7CiAgICAgICAgc2ljaHRiYXIgPSB0cnVlOwogICAgICAgIHRpY2soKTsKICAgIH0g ZWxzZSBpZiAoZC5jbWQgPT09ICdzdG9wJykgewogICAgICAgIGlmICh0aW1lcikgY2xlYXJJbnRl cnZhbCh0aW1lcik7CiAgICAgICAgdGltZXIgPSBudWxsOwogICAgfQp9Owo=