### SYNC-TRANSFER 6/7 -- mit sync-entpacken.bat entpacken ### Base64 ### FILE: server.ps1 | 251958 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 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgSFRUUC1MSVNURU5FUiBTVEFS VEVODQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCiRMaXN0ZW5lciA9ICRudWxsDQp0cnkgew0K ICAgICRMaXN0ZW5lciA9IE5ldy1PYmplY3QgU3lzdGVtLk5ldC5IdHRwTGlzdGVuZXINCiAgICAk TGlzdGVuZXIuUHJlZml4ZXMuQWRkKCJodHRwOi8vbG9jYWxob3N0OiRQb3J0LyIpDQogICAgJExp c3RlbmVyLlN0YXJ0KCkNCiAgICBXcml0ZS1TdGFydHVwTG9nICJMaXN0ZW5lciBsYWV1ZnQgYXVm IGh0dHA6Ly9sb2NhbGhvc3Q6JFBvcnQiDQp9IGNhdGNoIHsNCiAgICBXcml0ZS1TdGFydHVwTG9n ICJGQVRBTDogTGlzdGVuZXIga29ubnRlIG5pY2h0IGdlc3RhcnRldCB3ZXJkZW46ICRfIg0KICAg IFdyaXRlLVN0YXJ0dXBMb2cgIk3DtmdsaWNoZSBVcnNhY2hlbjogUG9ydCBiZWxlZ3QsIGZlaGxl bmRlIFVSTC1BQ0wsIEZpcmV3YWxsLiINCiAgICBleGl0IDENCn0NCg0KV3JpdGUtSG9zdCAiRkxE LVBsYW51bmcgU2VydmVyIGF1ZiBodHRwOi8vbG9jYWxob3N0OiRQb3J0Ig0KV3JpdGUtSG9zdCAi Um9vdDogJFJvb3QiDQpXcml0ZS1Ib3N0ICJEYXRlbjogJERhdGFEaXIiDQoNCiMgLS0tIEJyb3dz ZXIgb2VmZm5lbiAtLS0NCmlmICgtbm90ICROb0Jyb3dzZXIpIHsNCiAgICBTdGFydC1TbGVlcCAt TWlsbGlzZWNvbmRzIDMwMA0KICAgIHRyeSB7IFN0YXJ0LVByb2Nlc3MgImh0dHA6Ly9sb2NhbGhv c3Q6JFBvcnQiIH0gY2F0Y2ggeyBXcml0ZS1TdGFydHVwTG9nICJCcm93c2VyLVN0YXJ0IGZlaGxn ZXNjaGxhZ2VuOiAkXyIgfQ0KfQ0KDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIFJFUVVFU1Qt TE9PUA0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQp0cnkgew0KICAgIHdoaWxlICgkTGlzdGVu ZXIuSXNMaXN0ZW5pbmcpIHsNCiAgICAgICAgJEFzeW5jUmVzdWx0ID0gJExpc3RlbmVyLkJlZ2lu R2V0Q29udGV4dCgkbnVsbCwgJG51bGwpDQogICAgICAgIHdoaWxlICgtbm90ICRBc3luY1Jlc3Vs dC5Bc3luY1dhaXRIYW5kbGUuV2FpdE9uZSgyMDAwKSkgew0KICAgICAgICAgICAgIyBTZWxmLUtp bGw6IDMwcyBvaG5lIEhlYXJ0YmVhdCA9IFRhYiBvZGVyIEJyb3dzZXIgenUgPSBTZXJ2ZXIgYmVl bmRlbg0KICAgICAgICAgICAgJEVsYXBzZWQgPSAoKEdldC1EYXRlKSAtICRzY3JpcHQ6TGFzdEhl YXJ0YmVhdCkuVG90YWxTZWNvbmRzDQogICAgICAgICAgICBpZiAoJEVsYXBzZWQgLWd0ICRzY3Jp cHQ6SGVhcnRiZWF0VGltZW91dFNlYykgew0KICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgJycN CiAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICc9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nDQogICAgICAgICAgICAgICAgV3JpdGUt SG9zdCAiICBLZWluIEhlYXJ0YmVhdCBzZWl0ICQoW2ludF0kRWxhcHNlZClzIC0gU2VydmVyIHdp cmQgYmVlbmRldC4iDQogICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAnICAoQnJvd3Nlci1UYWIg b2RlciBCcm93c2VyIHd1cmRlIGdlc2NobG9zc2VuKScNCiAgICAgICAgICAgICAgICBXcml0ZS1I b3N0ICc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0nDQogICAgICAgICAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAiU2VsZi1LaWxsIG5h Y2ggJChbaW50XSRFbGFwc2VkKXMgb2huZSBIZWFydGJlYXQiDQogICAgICAgICAgICAgICAgJExp c3RlbmVyLlN0b3AoKQ0KICAgICAgICAgICAgICAgICRMaXN0ZW5lci5DbG9zZSgpDQogICAgICAg ICAgICAgICAgZXhpdCAwDQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAkQ29u dGV4dCA9ICRMaXN0ZW5lci5FbmRHZXRDb250ZXh0KCRBc3luY1Jlc3VsdCkNCiAgICAgICAgJFJl cSA9ICRDb250ZXh0LlJlcXVlc3QNCiAgICAgICAgJFJlcyA9ICRDb250ZXh0LlJlc3BvbnNlDQog ICAgICAgICRNZXRob2QgPSAkUmVxLkh0dHBNZXRob2QNCiAgICAgICAgJFJhd1BhdGggPSAkUmVx LlVybC5BYnNvbHV0ZVBhdGgNCiAgICAgICAgJFBhdGggPSAkUmF3UGF0aCAgIyBRdWVyeSB3aXJk IHZvbiBIdHRwTGlzdGVuZXIgc2VwYXJhdCBiZXJlaXRnZXN0ZWxsdA0KDQogICAgICAgICMgQXVk aXQtSUktMiBGMzogZHluYW1pc2NoZSBBQ0FPLVF1ZWxsZSBwcm8gUmVxdWVzdCBzZXR6ZW4uIEFk ZC1TZWN1cml0eUhlYWRlcnMNCiAgICAgICAgIyBsaWVzdCAkc2NyaXB0OkNvcnNPcmlnaW5EeW5h bWljLiBXaGl0ZWxpc3QgcGFzc2VuZCB6dW0gQ1NSRi1GaWx0ZXIgdW50ZW4uDQogICAgICAgICRz Y3JpcHQ6UmVxT3JpZ2luSGVhZGVyID0gJFJlcS5IZWFkZXJzWydPcmlnaW4nXQ0KICAgICAgICAk T3JpZ2luV2hpdGVsaXN0ID0gQCgiaHR0cDovL2xvY2FsaG9zdDokUG9ydCIsICJodHRwOi8vMTI3 LjAuMC4xOiRQb3J0IikNCiAgICAgICAgaWYgKCRzY3JpcHQ6UmVxT3JpZ2luSGVhZGVyIC1hbmQg KCRPcmlnaW5XaGl0ZWxpc3QgLWNvbnRhaW5zICRzY3JpcHQ6UmVxT3JpZ2luSGVhZGVyKSkgew0K ICAgICAgICAgICAgJHNjcmlwdDpDb3JzT3JpZ2luRHluYW1pYyA9ICRzY3JpcHQ6UmVxT3JpZ2lu SGVhZGVyDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkc2NyaXB0OkNvcnNPcmlnaW5E eW5hbWljID0gJHNjcmlwdDpDb3JzT3JpZ2luDQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0K ICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gQ09SUyBQUkVGTElHSFQgPT09PT09 PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJE1ldGhvZCAtZXEgJ09QVElPTlMnKSB7 DQogICAgICAgICAgICAgICAgQWRkLVNlY3VyaXR5SGVhZGVycyAkUmVzOyAkUmVzLlN0YXR1c0Nv ZGUgPSAyMDQ7ICRSZXMuQ2xvc2UoKTsgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgIyBDU1JGLVNjaHV0eiBmdWVyIHdyaXRpbmcgbWV0aG9kczogT3JpZ2luIG11c3MgbWF0 Y2hlbiBvZGVyIGZlaGxlbi4NCiAgICAgICAgICAgICMgQnJvd3NlciBzZW5kZW4gT3JpZ2luIGJl aSBDcm9zcy1TaXRlLVBPU1QgendpbmdlbmQ7IGJlaSBTYW1lLVNpdGUNCiAgICAgICAgICAgICMg UmVxdWVzdHMgaXN0IGVyIGdsZWljaCBvZGVyIGZlaGx0IChDTEkvY3VybCkuIEFid2VpY2hlbmRl ciBPcmlnaW4NCiAgICAgICAgICAgICMgPSBDcm9zcy1TaXRlLUFuZ3JpZmYgdm9uIGVpbmVtIGFu ZGVyZW4gbG9rYWxlbiBTZXJ2aWNlIGFibGVobmVuLg0KICAgICAgICAgICAgIyBNaXJyb3IgenUg c2VydmVyLnB5OjIyMTctMjIyOC4NCiAgICAgICAgICAgIGlmICgkTWV0aG9kIC1pbiBAKCdQT1NU JywnUFVUJywnREVMRVRFJywnUEFUQ0gnKSkgew0KICAgICAgICAgICAgICAgICRPcmlnaW4gPSAk UmVxLkhlYWRlcnNbJ09yaWdpbiddDQogICAgICAgICAgICAgICAgIyBUb2xlcmFudGVzIE1hdGNo aW5nOiBsb2NhbGhvc3QgVU5EIDEyNy4wLjAuMSAoVXNlciBrb2VubmVuDQogICAgICAgICAgICAg ICAgIyB2aWEgQm9va21hcmsgYXVmIGRpZSBMb29wYmFjay1JUCBnZWxhbmRldCBzZWluKS4gQmVp ZGUNCiAgICAgICAgICAgICAgICAjIFZhcmlhbnRlbiB6ZWlnZW4gYXVmIGRlbnNlbGJlbiBMaXN0 ZW5lciwga2VpbiBDU1JGLVJpc2lrby4NCiAgICAgICAgICAgICAgICAkT3JpZ2luRXJsYXVidCA9 IEAoDQogICAgICAgICAgICAgICAgICAgICJodHRwOi8vbG9jYWxob3N0OiRQb3J0IiwNCiAgICAg ICAgICAgICAgICAgICAgImh0dHA6Ly8xMjcuMC4wLjE6JFBvcnQiDQogICAgICAgICAgICAgICAg KQ0KICAgICAgICAgICAgICAgIGlmICgkT3JpZ2luIC1hbmQgKCRPcmlnaW5FcmxhdWJ0IC1ub3Rj b250YWlucyAkT3JpZ2luKSkgew0KICAgICAgICAgICAgICAgICAgICBEZWJ1Zy1Mb2cgJ1NFQycg IkNTUkY6ICRNZXRob2QgJFBhdGggdm9uIE9yaWdpbj0kT3JpZ2luIGFiZ2VsZWhudCIgJ3JlZCcN CiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdDcm9zcy1PcmlnaW4tUmVxdWVz dCBhYmdlbGVobnQnIDQwMw0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09 PT09PT0gTElGRUNZQ0xFID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQ YXRoIC1lcSAnL2FwaS9oZWFydGJlYXQnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAg ICAgICAgICAgICAgJHNjcmlwdDpMYXN0SGVhcnRiZWF0ID0gR2V0LURhdGUNCiAgICAgICAgICAg ICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnb2snIH07IGNvbnRpbnVlDQogICAgICAg ICAgICB9DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3NodXRkb3duJyAtYW5kICRN ZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgICMgQmVhY29uIHZvbSBCcm93c2Vy IGJlaSBUYWIvV2luZG93LUNsb3NlLiBIZWFydGJlYXQtVWhyIDI1cw0KICAgICAgICAgICAgICAg ICMgenVydWVja2RyZWhlbiAtPiBTZXJ2ZXIgc3RpcmJ0IGluIDw9NXMgKGt1cnplIFJlbG9hZC1U b2xlcmFueikuDQogICAgICAgICAgICAgICAgJHNjcmlwdDpMYXN0SGVhcnRiZWF0ID0gKEdldC1E YXRlKS5BZGRTZWNvbmRzKC0oJHNjcmlwdDpIZWFydGJlYXRUaW1lb3V0U2VjIC0gNSkpDQogICAg ICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ3NodXRkb3duIGVpbmdlbGVp dGV0JyB9OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09 PT09PT09PT09PT09PSBJTkZPID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYg KCRQYXRoIC1lcSAnL2FwaS9pbmZvJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAg ICAgICAgICAgJFJvbGxlQWt0dWVsbCA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICBT ZW5kLUpzb24gJFJlcyAoW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICAgICAgYmVudXR6ZXIg ICAgICAgICAgICA9IEdldC1Ba3R1ZWxsZXJCZW51dHplcg0KICAgICAgICAgICAgICAgICAgICBp c3RBZG1pbiAgICAgICAgICAgID0gVGVzdC1Jc3RBZG1pbg0KICAgICAgICAgICAgICAgICAgICBp c3RTdXBlclVzZXIgICAgICAgID0gVGVzdC1Jc3RTdXBlclVzZXINCiAgICAgICAgICAgICAgICAg ICAgaXN0RmFjaGF1ZnNpY2h0ICAgICA9IFRlc3QtSXN0RmFjaGF1ZnNpY2h0DQogICAgICAgICAg ICAgICAgICAgIHJvbGxlICAgICAgICAgICAgICAgPSAkUm9sbGVBa3R1ZWxsDQogICAgICAgICAg ICAgICAgICAgIGRhcmZVZWJlcnNjaHJlaWJlbiAgPSBUZXN0LURhcmZVZWJlcnNjaHJlaWJlbiAk Um9sbGVBa3R1ZWxsDQogICAgICAgICAgICAgICAgICAgIHNlcnZlciAgICAgICAgICAgICAgPSAi aHR0cDovL2xvY2FsaG9zdDokUG9ydCINCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAg ICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09 PT09PT09PT09IEFETUlOLUNPTkZJRyA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAg IGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4nIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAg ICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgICAg ICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEFkbWluKSB7IFNlbmQtRXJyb3IgJFJlcyAnYWRtaW4u anNvbiBuaWNodCBnZWZ1bmRlbicgNDA0IH0gZWxzZSB7IFNlbmQtSnNvbiAkUmVzICRBZG1pbiB9 DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlm ICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAg ICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdL ZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5 ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7 IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAg ICAgICAgICAgICAgJERhdGEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAg ICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJERhdGENCiAgICAgICAgICAgICAgICBX cml0ZS1Mb2dFaW50cmFnICdhZG1pbi5jb25maWcuZ2VhZW5kZXJ0JyBAeyBiZXJlaWNoID0gJ2Fk bWluLWtvbmZpZ3VyYXRpb24nIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBz dGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH07IGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFNVUEVSVVNFUi1WRVJXQUxUVU5HID09PT09 PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbi9z dXBlcnVzZXInIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAo LW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1cGVyVXNl ciBkdWVyZmVuIFN1cGVyVXNlciB2ZXJ3YWx0ZW4nIDQwMzsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwg LWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgJERhdGVuID0gW29iamVjdFtdXUAoJEJvZHkgfCBDb252 ZXJ0RnJvbS1Kc29uKSAgIyBBcnJheS1FcmhhbHQgdW50ZXIgUFMgNS4xIGF1Y2ggYmVpIDEgRWxl bWVudA0KICAgICAgICAgICAgICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24n DQogICAgICAgICAgICAgICAgaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydzdXBlclVz ZXInXSkgew0KICAgICAgICAgICAgICAgICAgICAkQWRtaW4uc3VwZXJVc2VyID0gJERhdGVuDQog ICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJEFkbWluIHwgQWRk LU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3N1cGVyVXNlcicgLVZhbHVl ICREYXRlbg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmls ZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAgICAgICAgICAgJEFuemFobCA9IEAoJERhdGVu KS5Db3VudA0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3N1cGVydXNlci5nZWFl bmRlcnQnIEB7IGFuemFobCA9ICRBbnphaGwgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAk UmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsgY29udGludWUNCiAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gRkFDSEFVRlNJQ0hURU4tVkVS V0FMVFVORyAoUGhhc2UgQikgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICAjID09 PT09PT09PT09PT09PT09PT09PSBXT0NIRU5OT1RJWiAoV29jaGVucGxhbi1BbnNpY2h0LCBwZXJz aXN0ZW50IHBybyBLVykgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBh dGggLWVxICcvYXBpL3BsYW51bmcvd29jaGVubm90aXonIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1Qn KSB7DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAg ICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdy b3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICB0cnkgeyAkQSA9ICRCb2R5IHwg Q29udmVydEZyb20tSnNvbiB9IGNhdGNoIHsgU2VuZC1FcnJvciAkUmVzICdVbmd1ZWx0aWdlcyBK U09OJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkS3dLZXkgPSBpZiAoJEEuUFNP YmplY3QuUHJvcGVydGllc1sna3dLZXknXSkgeyAoW3N0cmluZ10kQS5rd0tleSkuVHJpbSgpIH0g ZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAkVGV4dCA9IGlmICgkQS5QU09iamVjdC5Qcm9w ZXJ0aWVzWyd0ZXh0J10pIHsgW3N0cmluZ10kQS50ZXh0IH0gZWxzZSB7ICcnIH0NCiAgICAgICAg ICAgICAgICBpZiAoJEt3S2V5IC1ub3RtYXRjaCAnXlxkezR9LVdcZHsyfSQnKSB7IFNlbmQtRXJy b3IgJFJlcyAna3dLZXkgdW5ndWVsdGlnIChlcndhcnRldDogWVlZWS1Xbm4pJyA0MDA7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAjIFZlcmdhbmdlbmUgV29jaGVuIHNjaHJlaWJnZXNjaHVl dHp0DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJEphaHIgPSBb aW50XSRLd0tleS5TdWJzdHJpbmcoMCwgNCkNCiAgICAgICAgICAgICAgICAgICAgJEt3TiAgPSBb aW50XSRLd0tleS5TdWJzdHJpbmcoNiwgMikNCiAgICAgICAgICAgICAgICAgICAgJEphbjQgPSBb ZGF0ZXRpbWVdOjpuZXcoJEphaHIsIDEsIDQpDQogICAgICAgICAgICAgICAgICAgICRXMU1vID0g JEphbjQuQWRkRGF5cygtKFtpbnRdJEphbjQuRGF5T2ZXZWVrIC0gMSkpDQogICAgICAgICAgICAg ICAgICAgIGlmICgkSmFuNC5EYXlPZldlZWsgLWVxIFtTeXN0ZW0uRGF5T2ZXZWVrXTo6U3VuZGF5 KSB7ICRXMU1vID0gJEphbjQuQWRkRGF5cygtNikgfQ0KICAgICAgICAgICAgICAgICAgICAkS3dT byA9ICRXMU1vLkFkZERheXMoKCRLd04gLSAxKSAqIDcgKyA2KQ0KICAgICAgICAgICAgICAgIH0g Y2F0Y2ggeyBTZW5kLUVycm9yICRSZXMgJ2t3S2V5IHVuZ3VlbHRpZycgNDAwOyBjb250aW51ZSB9 DQogICAgICAgICAgICAgICAgaWYgKCRLd1NvLkRhdGUgLWx0IChHZXQtRGF0ZSkuRGF0ZSkgew0K ICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1dvY2hlIGJlcmVpdHMgYWJnZWxh dWZlbiAtIE5vdGl6IG5pY2h0IGVkaXRpZXJiYXInIDQwMzsgY29udGludWUNCiAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgSW52b2tl LVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICAgICAk UGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICAg ICAgICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcpIHsgcmV0dXJuIEB7IHR5cCA9ICdlcnJvcic7 IGNvZGUgPSA0MDQ7IG1zZyA9ICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5kZW4nIH0gfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGll c1snd29jaGVubm90aXplbiddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51 bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnd29jaGVubm90 aXplbicgLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPckVtcHR5 KCRUZXh0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy53b2No ZW5ub3RpemVuLlBTT2JqZWN0LlByb3BlcnRpZXNbJEt3S2V5XSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkUGxhbnVuZy53b2NoZW5ub3RpemVuLlBTT2JqZWN0LlByb3BlcnRp ZXMuUmVtb3ZlKCRLd0tleSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkUGxhbnVuZy53b2NoZW5ub3RpemVuLlBTT2JqZWN0LlByb3BlcnRpZXNbJEt3S2V5XSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy53b2NoZW5ub3RpemVuLiRL d0tleSA9ICRUZXh0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcud29jaGVubm90aXplbiB8IEFkZC1N ZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRLd0tleSAtVmFsdWUgJFRleHQN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAjIEF1ZGl0LUl0ZXItQzogSE1BQy1SZS1TaWduIC0g c29uc3QgbG9lc3QgSW50ZWdyaXRhZXRzLUNoZWNrIEZlaGxhbGFybSBhdXMuDQogICAgICAgICAg ICAgICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQgJFBsYW51bmcgQCgpDQog ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ29rJyB9DQogICAgICAgICAg ICAgICAgICAgIH0gfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAg ICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3dvY2hlbm5vdGl6 LmdlYWVuZGVydCcgQHsga3dLZXkgPSAkS3dLZXk7IGxhZW5nZSA9ICRUZXh0Lkxlbmd0aCB9DQog ICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9 DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg IyA9PT09PT09PT09PT09PT09PT09PT0gVEFHRVNEQVRFTi1PVkVSUklERSBGVUVSIEVJTkVOIFRB RyAoQi4yIFNVLU92ZXJyaWRlKSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgICMg UE9TVCAvYXBpL3BsYW51bmcvdGFnZXNkYXRlbiB7IGRhdHVtLCBkYXRlbiB9DQogICAgICAgICAg ICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvdGFnZXNkYXRlbicgLWFuZCAkTWV0aG9kIC1l cSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJvbGxlDQogICAg ICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtRGFyZlVlYmVyc2NocmVpYmVuICRSb2xsZSkpIHsg U2VuZC1FcnJvciAkUmVzICdOdXIgU1UvRmFjaGF1ZnNpY2h0IGRhcmYgVGFnZXNkYXRlbiBhbnBh c3NlbicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkg JFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAk UmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICB0 cnkgeyAkQSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbiB9IGNhdGNoIHsgU2VuZC1FcnJvciAk UmVzICdVbmd1ZWx0aWdlcyBKU09OJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBp ZiAoLW5vdCAkQS5kYXR1bSAtb3IgJG51bGwgLWVxICRBLmRhdGVuKSB7IFNlbmQtRXJyb3IgJFJl cyAnZGF0dW0vZGF0ZW4gZmVobHQnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRE YXR1bSA9IFtzdHJpbmddJEEuZGF0dW0NCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICAgICAgICBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0K ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUGxhbnVuZykgeyByZXR1cm4g QHsgdHlwID0gJ2Vycm9yJzsgY29kZSA9IDQwNDsgbXNnID0gJ3BsYW51bmcuanNvbiBuaWNodCBn ZWZ1bmRlbicgfSB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5Q U09iamVjdC5Qcm9wZXJ0aWVzWyd0YWdlc2RhdGVuJ10pIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1O YW1lICd0YWdlc2RhdGVuJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcudGFn ZXNkYXRlbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkUGxhbnVuZy50YWdlc2RhdGVuLiREYXR1bSA9ICRBLmRhdGVuDQogICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQ bGFudW5nLnRhZ2VzZGF0ZW4gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAt TmFtZSAkRGF0dW0gLVZhbHVlICRBLmRhdGVuDQogICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQgJFBsYW51 bmcgQCggQHsga2luZCA9ICd0YWdlc2RhdGVuJzsgZGF0dW0gPSAkRGF0dW0gfSApDQogICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ29rJyB9DQogICAgICAgICAgICAgICAg ICAgIH0gfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAg ICAgICAgICBTZW5kLUVycm9yICRSZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3RhZ2VzZGF0ZW4ub3ZlcnJp ZGUnIEB7IGRhdHVtID0gJERhdHVtOyByb2xsZSA9ICRSb2xsZSB9DQogICAgICAgICAgICAgICAg U2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9DQogICAgICAgICAgICAg ICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09 PT09PT09PT0gUk9UQVRJT04tU0xPVCAoQi4yOiBrdWVuZnRpZ2UgVGVybWluZSBpbSBaeWtsdXMp ID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgIyBQT1NUIC9hcGkvYWRtaW4vcm90 YXRpb24tc2xvdCB7IGRhdHVtLCBkYXRlbiB9DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcv YXBpL2FkbWluL3JvdGF0aW9uLXNsb3QnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAg ICAgICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgIGlmICgt bm90IChUZXN0LURhcmZVZWJlcnNjaHJlaWJlbiAkUm9sbGUpKSB7IFNlbmQtRXJyb3IgJFJlcyAn TnVyIFNVL0ZhY2hhdWZzaWNodCBkYXJmIFJvdGF0aW9uIGFlbmRlcm4nIDQwMzsgY29udGludWUg fQ0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAg ICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9z cycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgdHJ5IHsgJEEgPSAkQm9keSB8IENv bnZlcnRGcm9tLUpzb24gfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXMgSlNP TicgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJEEuZGF0dW0gLW9y ICRudWxsIC1lcSAkQS5kYXRlbikgeyBTZW5kLUVycm9yICRSZXMgJ2RhdHVtL2RhdGVuIGZlaGx0 JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxl ICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgICRSb3QgPSAkbnVsbA0KICAgICAgICAgICAg ICAgIGlmICgkQWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1sndGFnZXNkYXRlblJvdGF0aW9uJ10p IHsgJFJvdCA9ICRBZG1pbi50YWdlc2RhdGVuUm90YXRpb24gfQ0KICAgICAgICAgICAgICAgIGlm ICgkbnVsbCAtZXEgJFJvdCAtb3IgLW5vdCAkUm90LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RhZ2Un XSAtb3IgQCgkUm90LnRhZ2UpLkNvdW50IC1lcSAwKSB7DQogICAgICAgICAgICAgICAgICAgIFNl bmQtRXJyb3IgJFJlcyAnUm90YXRpb24gaGF0IGtlaW5lIFRhZ2UnIDQwMDsgY29udGludWUNCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJFdvY2hlbiA9IGlmICgkUm90LlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ3dvY2hlbkFuemFobCddKSB7IFtpbnRdJFJvdC53b2NoZW5BbnphaGwg fSBlbHNlIHsgMyB9DQogICAgICAgICAgICAgICAgJFN0YXJ0U3RyID0gaWYgKCRSb3QuUFNPYmpl Y3QuUHJvcGVydGllc1snc3RhcnREYXR1bSddKSB7IFtzdHJpbmddJFJvdC5zdGFydERhdHVtIH0g ZWxzZSB7ICcyMDI2LTAxLTA1JyB9DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAg ICAgICAgICAgJFN0YXJ0RCA9IFtkYXRldGltZV06OlBhcnNlKCRTdGFydFN0cikNCiAgICAgICAg ICAgICAgICAgICAgJFppZWxEID0gW2RhdGV0aW1lXTo6UGFyc2UoW3N0cmluZ10kQS5kYXR1bSkN CiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJv ciAkUmVzICdEYXR1bSB1bmd1ZWx0aWcnIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgJE1vZHVsdXMgPSAkV29jaGVuICogNw0KICAgICAgICAgICAgICAg IGlmICgkTW9kdWx1cyAtbGUgMCkgeyBTZW5kLUVycm9yICRSZXMgJ1JvdGF0aW9uIGhhdCBrZWlu ZSBUYWdlJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGlmZiA9IFtpbnRdKFtt YXRoXTo6Um91bmQoKCRaaWVsRCAtICRTdGFydEQpLlRvdGFsRGF5cykpDQogICAgICAgICAgICAg ICAgJElkeCA9ICgoJERpZmYgJSAkTW9kdWx1cykgKyAkTW9kdWx1cykgJSAkTW9kdWx1cw0KICAg ICAgICAgICAgICAgICRUYWdlID0gQCgkUm90LnRhZ2UpDQogICAgICAgICAgICAgICAgaWYgKCRJ ZHggLWdlICRUYWdlLkNvdW50KSB7ICRJZHggPSAkSWR4ICUgJFRhZ2UuQ291bnQgfQ0KICAgICAg ICAgICAgICAgICRUYWdlWyRJZHhdID0gJEEuZGF0ZW4NCiAgICAgICAgICAgICAgICAkUm90LnRh Z2UgPSAkVGFnZQ0KICAgICAgICAgICAgICAgICRBZG1pbi50YWdlc2RhdGVuUm90YXRpb24gPSAk Um90DQogICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0K ICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3JvdGF0aW9uLnNsb3QuZ2VhZW5kZXJ0 JyBAeyBkYXR1bSA9ICRBLmRhdHVtOyBpZHggPSAkSWR4OyByb2xsZSA9ICRSb2xsZSB9DQogICAg ICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JzsgaWR4 ID0gJElkeCB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgIyBOdXIgU3VwZXJVc2VyIGRhcmYgZGllIExpc3RlIGFlbmRlcm4gLSBzb25zdCBr b2VubnRlbiBGYWNoYXVmc2ljaHRlbg0KICAgICAgICAgICAgIyBzaWNoIGdlZ2Vuc2VpdGlnIGhp bnp1ZnVlZ2VuIG9obmUgU3VwZXJVc2VyLVp1c3RpbW11bmcuDQogICAgICAgICAgICBpZiAoJFBh dGggLWVxICcvYXBpL2FkbWluL2ZhY2hhdWZzaWNodGVuJyAtYW5kICRNZXRob2QgLWVxICdQVVQn KSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBTZW5k LUVycm9yICRSZXMgJ051ciBTdXBlclVzZXIgZHVlcmZlbiBGYWNoYXVmc2ljaHRlbiB2ZXJ3YWx0 ZW4nIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRS ZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJl cyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJERh dGVuID0gW29iamVjdFtdXUAoJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uKQ0KICAgICAgICAgICAg ICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAg aWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydmYWNoYXVmc2ljaHRlbiddKSB7DQogICAg ICAgICAgICAgICAgICAgICRBZG1pbi5mYWNoYXVmc2ljaHRlbiA9ICREYXRlbg0KICAgICAgICAg ICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRBZG1pbiB8IEFkZC1NZW1iZXIg LU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdmYWNoYXVmc2ljaHRlbicgLVZhbHVlICRE YXRlbg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAn YWRtaW4uanNvbicgJEFkbWluDQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnZmFj aGF1ZnNpY2h0ZW4uZ2VhZW5kZXJ0JyBAeyBhbnphaGwgPSBAKCREYXRlbikuQ291bnQgfQ0KICAg ICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsg Y29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09 PT09PT0gRkVJRVJUQUdFIC8gRkVSSUVOIC8gU09OREVSVEVSTUlORSA9PT09PT09PT09PT09PT09 PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vZmVpZXJ0YWdlJyAt YW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3Qt SXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAg ICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2Ug enUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRlbiA9IFtvYmpl Y3RbXV1AKCRCb2R5IHwgQ29udmVydEZyb20tSnNvbikgICMgQXJyYXktRXJoYWx0IHVudGVyIFBT IDUuMSBhdWNoIGJlaSAxIEVsZW1lbnQNCiAgICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpz b25GaWxlICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgICRBZG1pbi5mZWllcnRhZ2UgPSAk RGF0ZW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWlu DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnZmVpZXJ0YWdlLmdlYWVuZGVydCcg QHt9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNo ZXJ0JyB9OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1l cSAnL2FwaS9hZG1pbi9mZXJpZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAg ICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdLZWlu ZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5ID0g UmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNl bmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAg ICAgICAgICAgJERhdGVuID0gW29iamVjdFtdXUAoJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uKSAg IyBBcnJheS1FcmhhbHQgdW50ZXIgUFMgNS4xIGF1Y2ggYmVpIDEgRWxlbWVudA0KICAgICAgICAg ICAgICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAg ICAgJEFkbWluLmZlcmllbiA9ICREYXRlbg0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxl ICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdm ZXJpZW4uZ2VhZW5kZXJ0JyBAe30NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBz dGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH07IGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAg ICAgICAjID09PT09PT09PT09PT09PT09PT09PSBCRVNQUkVDSFVOR1NWT1JMQUdFTiAoQi40KSA9 PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvYWRt aW4vYmVzcHJlY2h1bmdzdm9ybGFnZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAg ICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdL ZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5 ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7 IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAg ICAgICAgICAgICAgJERhdGVuID0gW29iamVjdFtdXUAoJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29u KQ0KICAgICAgICAgICAgICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQog ICAgICAgICAgICAgICAgaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydiZXNwcmVjaHVu Z3NWb3JsYWdlbiddKSB7DQogICAgICAgICAgICAgICAgICAgICRBZG1pbi5iZXNwcmVjaHVuZ3NW b3JsYWdlbiA9ICREYXRlbg0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAg ICAgICAgICRBZG1pbiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1l ICdiZXNwcmVjaHVuZ3NWb3JsYWdlbicgLVZhbHVlICREYXRlbg0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAg ICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnYmVzcHJlY2h1bmdzdm9ybGFnZW4uZ2VhZW5k ZXJ0JyBAeyBhbnphaGwgPSBAKCREYXRlbikuQ291bnQgfQ0KICAgICAgICAgICAgICAgIFNlbmQt SnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsgY29udGludWUNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbi9zb25kZXJ0ZXJt aW5lJyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3Qg KFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0 MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQog ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0Fu ZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRSb2ggPSBb b2JqZWN0W11dQCgkQm9keSB8IENvbnZlcnRGcm9tLUpzb24pICAjIEFycmF5LUVyaGFsdCB1bnRl ciBQUyA1LjEgYXVjaCBiZWkgMSBFbGVtZW50DQogICAgICAgICAgICAgICAgIyBXaGl0ZWxpc3Qg KEF1ZGl0LUl0ZXItQyk6IG51ciAxMSBlcmxhdWJ0ZSBGZWxkZXIgcHJvIEVpbnRyYWcgcGVyc2lz dGllcmVuDQogICAgICAgICAgICAgICAgJEVybGF1YnQgPSBAKCdpZCcsJ2RhdHVtJywnZGF0dW1C aXMnLCd0aXRlbCcsJ3RleHQnLCdpY29uJywndHlwJywnd2Fybk1vZHVzJywna2F0ZWdvcmllJywn bG9nb3MnLCdsb2dvRGFyc3RlbGx1bmcnKQ0KICAgICAgICAgICAgICAgICREYXRlbiA9IEAoKQ0K ICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRSb2gxIGluICRSb2gpIHsNCiAgICAgICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1lcSAkUm9oMSkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAg ICAgICRTYXViZXIgPSBbb3JkZXJlZF1Ae30NCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAo JEZlbGQgaW4gJEVybGF1YnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUm9oMS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyRGZWxkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRTYXViZXJbJEZlbGRdID0gJFJvaDEuJEZlbGQNCiAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkRGF0ZW4gKz0gW3Bz Y3VzdG9tb2JqZWN0XSRTYXViZXINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg JERhdGVuID0gW29iamVjdFtdXSREYXRlbg0KICAgICAgICAgICAgICAgICRBZG1pbiA9IFJlYWQt SnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgaWYgKCRBZG1pbi5QU09iamVj dC5Qcm9wZXJ0aWVzWydzb25kZXJ0ZXJtaW5lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgJEFk bWluLnNvbmRlcnRlcm1pbmUgPSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgICAgICAgICAkQWRtaW4gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9w ZXJ0eSAtTmFtZSAnc29uZGVydGVybWluZScgLVZhbHVlICREYXRlbg0KICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQog ICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnc29uZGVydGVybWluZS5nZWFlbmRlcnQn IEB7IGFuemFobCA9IEAoJERhdGVuKS5Db3VudCB9DQogICAgICAgICAgICAgICAgJFVzZXJuYW1l ID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAgICRSb2xsZSA9IEdldC1Vc2VyUm9sbGUN CiAgICAgICAgICAgICAgICBBZGQtQ2hhbmdlTG9nRW50cnkgJ3NvbmRlcnRlcm1pbmUnICRudWxs ICRudWxsICRudWxsICRVc2VybmFtZSAkUm9sbGUgQHsgYW56YWhsID0gQCgkRGF0ZW4pLkNvdW50 IH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hl cnQnIH07IGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09 PT09PT09PT09PT09IFNUQU5ET1JURSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAg IGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vc3RhbmRvcnRlJyAtYW5kICRNZXRob2QgLWVxICdQ VVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQt RXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxs IC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRlbiA9IFtvYmplY3RbXV1AKCRCb2R5IHwgQ29u dmVydEZyb20tSnNvbikgICMgQXJyYXktRXJoYWx0IHVudGVyIFBTIDUuMSBhdWNoIGJlaSAxIEVs ZW1lbnQNCiAgICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29u Jw0KICAgICAgICAgICAgICAgIGlmICgkQWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1snc3RhbmRv cnRlJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgJEFkbWluLnN0YW5kb3J0ZSA9ICREYXRlbg0K ICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRBZG1pbiB8IEFk ZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdzdGFuZG9ydGUnIC1WYWx1 ZSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZp bGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcg J3N0YW5kb3J0ZS5nZWFlbmRlcnQnIEB7fQ0KICAgICAgICAgICAgICAgICRVc2VybmFtZSA9ICRl bnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJvbGxlDQogICAg ICAgICAgICAgICAgQWRkLUNoYW5nZUxvZ0VudHJ5ICdzdGFuZG9ydGUnICRudWxsICRudWxsICRu dWxsICRVc2VybmFtZSAkUm9sbGUgQHt9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMg QHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBFSU5TVEVMTFVOR0VOID09PT09PT09 PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbi9laW5z dGVsbHVuZ2VuJyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYg KC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGln dW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAk UmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRS ZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRE YXRlbiA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICRBZG1pbiA9 IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgIyBXaGl0ZWxpc3Qg YW5hbG9nIHp1IHNlcnZlci5weToyNzYxIC0gSGVhZGVyLUtvbmZpZyArIGFsbGUNCiAgICAgICAg ICAgICAgICAjIFRvcC1MZXZlbC1CcmFuZGluZy9FaW5zdGVsbHVuZ2VuLUZlbGRlci4NCiAgICAg ICAgICAgICAgICBmb3JlYWNoICgkS2V5IGluIEAoJ2phaHInLCdpbmFrdGl2aXRhZXRNaW51dGVu JywnaW5mb3RleHQnLCdzdXBwb3J0aW5mbycsJ3NjaGxpZXNzaW5mbycsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAncGxhbnVuZ3NOYW1lJywncGxhbnVuZ3NLdXJ6JywNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlcmlubmVydW5nJywnY3VzdG9tTG9n bycsJ2N1c3RvbUxvZ29Ib2VoZScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAndmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXInLCdhbGxnZW1laW5lSGlsZmUnLCdiZWRpZW51bmdz SGlud2Vpc2UnLCd3b2NoZW5wbGFuS29wZicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnaGVhZGVyS29uZmlnJywnaGVhZGVyTGFiZWxzJywnY291bnRlcktvbmZpZycsJ21h cmtlcktvbmZpZycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm9yZ2Fi ZUFsc1BpbGxlJywnbWVkaWVuS2F0ZWdvcmllbicpKSB7DQogICAgICAgICAgICAgICAgICAgIGlm ICgkRGF0ZW4uUFNPYmplY3QuUHJvcGVydGllc1skS2V5XSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRLZXldKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEFkbWluLiRLZXkgPSAkRGF0ZW4uJEtleQ0KICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWRtaW4g fCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkS2V5IC1WYWx1ZSAk RGF0ZW4uJEtleQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdh ZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdlaW5z dGVsbHVuZ2VuLmdlYWVuZGVydCcgQHt9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMg QHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9OyBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBQTEFOVU5HID09PT09PT09PT09PT09 PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nJyAtYW5kICRN ZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25G aWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUGxhbnVu ZykgeyBTZW5kLUVycm9yICRSZXMgJ3BsYW51bmcuanNvbiBuaWNodCBnZWZ1bmRlbicgNDA0IH0g ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICMgSW50ZWdyaXRhZXRzLUNoZWNrIE5JQ0hUIGhp ZXIgaW5saW5lIC0tIGRlciBGcm9udGVuZC1zeW5jLWNsaWVudA0KICAgICAgICAgICAgICAgICAg ICAjIHBvbGx0IC9hcGkvaW50ZWdyaXRhZXQvc3RhdHVzIHNlcGFyYXQuIElubGluZS1DaGVjayB2 ZXJkb3BwZWx0DQogICAgICAgICAgICAgICAgICAgICMgYmVpIGplZGVtIFBhZ2UtTG9hZCBkYXMg UmVhZCtJdGVyYXRlLVZvbHVtZW4sIHdhcyBhdWYgU01CLQ0KICAgICAgICAgICAgICAgICAgICAj IFNoYXJlIChROikgbWVya2xpY2ggYmxvY2tpZXJ0IHVuZCBpbSBXb3JzdC1DYXNlIGRlbg0KICAg ICAgICAgICAgICAgICAgICAjIE91dHB1dFN0cmVhbS1Xcml0ZSB0aW1lb3V0ZXQgKEhUVFAuU1lT IC8gQnJvd3Nlci1BYm9ydCkuDQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzICRQ bGFudW5nDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IElOVEVHUklU QUVUIChQaGFzZSBHKSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0 aCAtZXEgJy9hcGkvaW50ZWdyaXRhZXQvc3RhdHVzJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7 DQogICAgICAgICAgICAgICAgJGVyZyA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsgJGVy ZyA9IEludm9rZS1JbnRlZ3JpdGFldFBydWVmdW5nICRmYWxzZSB9IGNhdGNoIHsgJGVyZyA9IEB7 IG9rID0gJGZhbHNlOyBmZWhsZXIgPSAiJF8iOyB2ZXJsZXR6dW5nZW4gPSBAKCkgfSB9DQogICAg ICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgJGVyZw0KICAgICAgICAgICAgICAgIGNvbnRpbnVl DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2ludGVncml0 YWV0L25ldS1zaWduaWVyZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAg ICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBTZW5kLUVycm9yICRSZXMgJ051 ciBTdXBlclVzZXIgZGFyZiBuZXUgc2lnbmllcmVuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAjIFZlcmlmeSBpc3QgUkVBRC1PTkxZIHVuZCBsYWV1ZnQgVk9SIGRlbSBMb2NrLCBk YW1pdCBkZXIgTG9jaw0KICAgICAgICAgICAgICAgICMgc28ga3VyeiB3aWUgbW9lZ2xpY2ggZ2Vo YWx0ZW4gd2lyZC4gUmVzdWx0YXQgYWxzDQogICAgICAgICAgICAgICAgIyB2ZXJsZXR6dW5nZW5a dXZvciBpbiBSZXNwb25zZSDigJQgRnJvbnRlbmQgemVpZ3QgZGFzIGltIFRvYXN0DQogICAgICAg ICAgICAgICAgIyAoc3luYy1jbGllbnQuanM6MjUyICJJbnRlZ3JpdGFldCBuZXUgc2lnbmllcnQg KE4gVmVybGV0enVuZ2VuDQogICAgICAgICAgICAgICAgIyBhdWZnZWxvZXN0KSIpLiBNaXJyb3Ig enUgc2VydmVyLnB5OjIyNjMtMjI4NS4NCiAgICAgICAgICAgICAgICAkUGxhbnVuZ1ByZSA9IFJl YWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICAkVmVybGV0enVuZ2Vu WnV2b3IgPSBAKCkNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRQbGFudW5nUHJlKSB7 DQogICAgICAgICAgICAgICAgICAgIHRyeSB7ICRWZXJsZXR6dW5nZW5adXZvciA9IFZlcmlmeS1Q bGFudW5nSW50ZWdyaXRhZXQgJFBsYW51bmdQcmUgfSBjYXRjaCB7ICRWZXJsZXR6dW5nZW5adXZv ciA9IEAoKSB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRTdGFydFRzID0g R2V0LURhdGUNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICBJbnZv a2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICRQID0gUmVhZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCRudWxsIC1uZSAkUCkgeyBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQgJFAgfQ0K ICAgICAgICAgICAgICAgICAgICB9IDYwMDAwIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICB9 IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAiRkVITEVSIG5l dS1zaWduaWVyZW46ICRfICgkKCRfLlNjcmlwdFN0YWNrVHJhY2UpKSINCiAgICAgICAgICAgICAg ICAgICAgU2VuZC1FcnJvciAkUmVzICJOZXUtU2lnbmllcmVuIGZlaGxnZXNjaGxhZ2VuOiAkXyIg NTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkRGF1ZXJN cyA9IFtpbnRdKChHZXQtRGF0ZSkgLSAkU3RhcnRUcykuVG90YWxNaWxsaXNlY29uZHMNCiAgICAg ICAgICAgICAgICAkc2NyaXB0OkludGVncml0eVZlcmlmeUNhY2hlID0gJG51bGwNCiAgICAgICAg ICAgICAgICAkVnpDb3VudCA9IEAoJFZlcmxldHp1bmdlblp1dm9yKS5Db3VudA0KICAgICAgICAg ICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2ludGVncml0YWV0Lm5ldV9zaWduaWVydCcgQHsgcm9s bGUgPSAoR2V0LVVzZXJSb2xsZSk7IGRhdWVyTXMgPSAkRGF1ZXJNczsgdmVybGV0enVuZ2VuWnV2 b3IgPSAkVnpDb3VudCB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgb2sgPSAk dHJ1ZTsgZGF1ZXJNcyA9ICREYXVlck1zOyB2ZXJsZXR6dW5nZW5adXZvciA9ICRWekNvdW50IH0N CiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAj ID09PT09PT09PT09PT09PT09PT09PSBaRUxMLUxPQ0sgKFBoYXNlIEExKSA9PT09PT09PT09PT09 PT09PT09PT0NCiAgICAgICAgICAgICMgUE9TVCAvYXBpL2xvY2svemVsbGUgIHsgZGF0dW0sIHBl cnNvbklkIH0gLT4geyBvaywgdG9rZW4sIGV4cGlyZXNBdCB9IG9kZXIgNDIzIHsgc3BlcnJlciwg c2VpdCwgcm9sbGUgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9sb2NrL3plbGxl JyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVh ZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQt RXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAg ICAgICAgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkRGF0 dW0gPSBbc3RyaW5nXSRBLmRhdHVtDQogICAgICAgICAgICAgICAgJFBlcnNvbklkID0gW3N0cmlu Z10kQS5wZXJzb25JZA0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUxvY2tTYWZlRGF0 dW0gJERhdHVtKSAtb3IgLW5vdCAoVGVzdC1Mb2NrU2FmZUlkICRQZXJzb25JZCkpIHsNCiAgICAg ICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdVbmd1ZWx0aWdlIGRhdHVtL3BlcnNvbklk JyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRVc2Vy bmFtZSA9ICRlbnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJv bGxlDQogICAgICAgICAgICAgICAgJFJlc3VsdCA9IEFjcXVpcmUtQ2VsbExvY2sgJERhdHVtICRQ ZXJzb25JZCAkVXNlcm5hbWUgJFJvbGxlICRmYWxzZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90 ICRSZXN1bHQub2spIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIGZlaGxlciAgID0gJ2dlc3BlcnJ0Jw0KICAgICAgICAgICAg ICAgICAgICAgICAgbWVsZHVuZyAgPSAiV2lyZCBiZWFyYmVpdGV0IHZvbiAkKCRSZXN1bHQuZXhp c3RpbmcudXNlcm5hbWUpIg0KICAgICAgICAgICAgICAgICAgICAgICAgc3BlcnJlciAgPSAkUmVz dWx0LmV4aXN0aW5nLnVzZXJuYW1lDQogICAgICAgICAgICAgICAgICAgICAgICByb2xsZSAgICA9 ICRSZXN1bHQuZXhpc3Rpbmcucm9sbGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlaXQgICAg ID0gJFJlc3VsdC5leGlzdGluZy5sb2NrZWRBdA0KICAgICAgICAgICAgICAgICAgICAgICAga2Fu bkZvcmNlID0gKFRlc3QtRGFyZlVlYmVyc2NocmVpYmVuICRSb2xsZSkNCiAgICAgICAgICAgICAg ICAgICAgfSA0MjMNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAgICAgICAgICAgICAg ICAgb2sgICAgICAgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB0b2tlbiAgICA9ICRSZXN1 bHQubG9jay50b2tlbg0KICAgICAgICAgICAgICAgICAgICBkYXR1bSAgICA9ICREYXR1bQ0KICAg ICAgICAgICAgICAgICAgICBwZXJzb25JZCA9ICRQZXJzb25JZA0KICAgICAgICAgICAgICAgICAg ICByb2xsZSAgICA9ICRSb2xsZQ0KICAgICAgICAgICAgICAgICAgICBsb2NrZWRBdCA9ICRSZXN1 bHQubG9jay5sb2NrZWRBdA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjb250 aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIFBPU1QgL2FwaS9sb2NrL3plbGxl L2ZvcmNlICB7IGRhdHVtLCBwZXJzb25JZCB9IC0+IHVlYmVyc2NocmVpYnQgZnJlbWRlbiBMb2Nr DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2xvY2svemVsbGUvZm9yY2UnIC1hbmQg JE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkg JFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAk UmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAk QSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICREYXR1bSA9IFtz dHJpbmddJEEuZGF0dW0NCiAgICAgICAgICAgICAgICAkUGVyc29uSWQgPSBbc3RyaW5nXSRBLnBl cnNvbklkDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtTG9ja1NhZmVEYXR1bSAkRGF0 dW0pIC1vciAtbm90IChUZXN0LUxvY2tTYWZlSWQgJFBlcnNvbklkKSkgew0KICAgICAgICAgICAg ICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2UgZGF0dW0vcGVyc29uSWQnIDQwMDsg Y29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJFVzZXJuYW1lID0g JGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAgICRSb2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAg ICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1EYXJmVWViZXJzY2hyZWliZW4gJFJvbGxlKSkg ew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ0ZvcmNlLUxvY2sgbnVyIGZ1 ZXIgRmFjaGF1ZnNpY2h0L1N1cGVyVXNlcicgNDAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAjIE9yaWdpbmFsLU93bmVyIHZvciBGb3JjZSBsZXNlbiAtLSBm dWVyIEF1ZGl0LVRyYWlsIGltIExvZ2J1Y2guDQogICAgICAgICAgICAgICAgJEV4aXN0aW5nTG9j a0Z1ZXJMb2cgPSBSZWFkLUNlbGxMb2NrICREYXR1bSAkUGVyc29uSWQNCiAgICAgICAgICAgICAg ICAkT3JpZ2luYWxPd25lciA9IGlmICgkbnVsbCAtbmUgJEV4aXN0aW5nTG9ja0Z1ZXJMb2cpIHsg JEV4aXN0aW5nTG9ja0Z1ZXJMb2cudXNlcm5hbWUgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAg ICAgICAgICRSZXN1bHQgPSBBY3F1aXJlLUNlbGxMb2NrICREYXR1bSAkUGVyc29uSWQgJFVzZXJu YW1lICRSb2xsZSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2xvY2su Zm9yY2UnIEB7DQogICAgICAgICAgICAgICAgICAgIGRhdHVtICAgICAgICAgPSAkRGF0dW0NCiAg ICAgICAgICAgICAgICAgICAgcGVyc29uSWQgICAgICA9ICRQZXJzb25JZA0KICAgICAgICAgICAg ICAgICAgICByb2xsZSAgICAgICAgID0gJFJvbGxlDQogICAgICAgICAgICAgICAgICAgIG9yaWdp bmFsT3duZXIgPSAkT3JpZ2luYWxPd25lcg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICBvayAgICAgICA9ICR0 cnVlDQogICAgICAgICAgICAgICAgICAgIHRva2VuICAgID0gJFJlc3VsdC5sb2NrLnRva2VuDQog ICAgICAgICAgICAgICAgICAgIGRhdHVtICAgID0gJERhdHVtDQogICAgICAgICAgICAgICAgICAg IHBlcnNvbklkID0gJFBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgIHJvbGxlICAgID0gJFJv bGxlDQogICAgICAgICAgICAgICAgICAgIGxvY2tlZEF0ID0gJFJlc3VsdC5sb2NrLmxvY2tlZEF0 DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgICMgUE9TVCAvYXBpL2xvY2svemVsbGUvaGVhcnRiZWF0ICB7IHRv a2VuIH0gLT4gYWt0dWFsaXNpZXJ0IGxhc3RCZWF0DQogICAgICAgICAgICBpZiAoJFBhdGggLWVx ICcvYXBpL2xvY2svemVsbGUvaGVhcnRiZWF0JyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0K ICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBp ZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycg NDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9t LUpzb24NCiAgICAgICAgICAgICAgICAkVG9rZW4gPSBpZiAoJEEuUFNPYmplY3QuUHJvcGVydGll c1sndG9rZW4nXSkgeyBbc3RyaW5nXSRBLnRva2VuIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAg ICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVG9rZW4pKSB7IFNlbmQtRXJy b3IgJFJlcyAnVG9rZW4gZmVobHQnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRS ZXN1bHQgPSBSZWZyZXNoLUNlbGxMb2NrICRUb2tlbg0KICAgICAgICAgICAgICAgIGlmICgtbm90 ICRSZXN1bHQub2spIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgZmVo bGVyID0gJ3VuYmVrYW5udGVyX2xvY2snOyBtZWxkdW5nID0gJ0xvY2sgZXhpc3RpZXJ0IG5pY2h0 IChtZWhyKS4nIH0gNDA0DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IG9rID0gJHRydWU7IGxh c3RCZWF0ID0gJFJlc3VsdC5sb2NrLmxhc3RCZWF0IH0NCiAgICAgICAgICAgICAgICBjb250aW51 ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIERFTEVURSAvYXBpL2xvY2svemVsbGUg IHsgdG9rZW4gfSAtPiBMb2NrIGZyZWlnZWJlbg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAn L2FwaS9sb2NrL3plbGxlJyAtYW5kICRNZXRob2QgLWVxICdERUxFVEUnKSB7DQogICAgICAgICAg ICAgICAgIyBERUxFVEUtQm9keSBsZXNlbiAoSHR0cExpc3RlbmVyIHVudGVyc3R1ZXR6dCBkYXMp DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAg ICRUb2tlbiA9ICRudWxsDQogICAgICAgICAgICAgICAgaWYgKCRCb2R5KSB7DQogICAgICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkQSA9ICRCb2R5IHwgQ29u dmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRBLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ3Rva2VuJ10pIHsgJFRva2VuID0gW3N0cmluZ10kQS50b2tlbiB9DQogICAgICAg ICAgICAgICAgICAgIH0gY2F0Y2gge30NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgIyBBdWNoIFF1ZXJ5LVN0cmluZyB1bnRlcnN0dWV0emVuLCBmdWVyIHNlbmRCZWFjb24tRmFl bGxlDQogICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRv a2VuKSAtYW5kICRSZXEuVXJsLlF1ZXJ5KSB7DQogICAgICAgICAgICAgICAgICAgICRRID0gW1N5 c3RlbS5XZWIuSHR0cFV0aWxpdHldOjpQYXJzZVF1ZXJ5U3RyaW5nKCRSZXEuVXJsLlF1ZXJ5KQ0K ICAgICAgICAgICAgICAgICAgICAkVG9rZW4gPSBbc3RyaW5nXSRRWyd0b2tlbiddDQogICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw YWNlKCRUb2tlbikpIHsgU2VuZC1FcnJvciAkUmVzICdUb2tlbiBmZWhsdCcgNDAwOyBjb250aW51 ZSB9DQogICAgICAgICAgICAgICAgJFJlc3VsdCA9IFJlbGVhc2UtQ2VsbExvY2sgJFRva2VuDQog ICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgb2sgPSAkUmVzdWx0Lm9rIH0NCiAgICAg ICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIEdFVCAv YXBpL2xvY2svemVsbGVuIC0+IExpc3RlIGFsbGVyIGFrdGl2ZW4gTG9ja3MgKGZ1ZXIgTGl2ZS1J bmRpY2F0b3ItUmVuZGVyKQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9sb2NrL3pl bGxlbicgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgICRMb2NrcyA9 IEdldC1BbGxBY3RpdmVDZWxsTG9ja3MNCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBA eyBsb2NrcyA9ICRMb2NrcyB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgIyBHRVQgL2FwaS9wbGFudW5nL2NoYW5nZXM/c2VpdD08aXNvLXRz PiAtPiBEZWx0YS1MaXN0ZSBmdWVyIExpdmUtU3luYyAoUGhhc2UgQTQpDQogICAgICAgICAgICBp ZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvY2hhbmdlcycgLWFuZCAkTWV0aG9kIC1lcSAnR0VU Jykgew0KICAgICAgICAgICAgICAgICRRID0gW1N5c3RlbS5XZWIuSHR0cFV0aWxpdHldOjpQYXJz ZVF1ZXJ5U3RyaW5nKCRSZXEuVXJsLlF1ZXJ5KQ0KICAgICAgICAgICAgICAgICRTZWl0ID0gW3N0 cmluZ10kUVsnc2VpdCddDQogICAgICAgICAgICAgICAgJENoYW5nZXMgPSBHZXQtQ2hhbmdlc1Np bmNlICRTZWl0DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAgICAgICAg ICAgICAgICAgc2VydmVyVHMgPSAoR2V0LURhdGUpLlRvVW5pdmVyc2FsVGltZSgpLlRvU3RyaW5n KCdvJykNCiAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyAgPSAkQ2hhbmdlcw0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAjIFplbGxlIGFlbmRlcm4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkv cGxhbnVuZy96ZWxsZScgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAg ICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAk Qm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUg fQ0KICAgICAgICAgICAgICAgICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAg ICAgICAgICAgJERhdHVtID0gW3N0cmluZ10kQS5kYXR1bQ0KICAgICAgICAgICAgICAgICRQZXJz b25JZCA9IFtzdHJpbmddJEEucGVyc29uSWQNCiAgICAgICAgICAgICAgICAkV2VydCA9IGlmICgk QS53ZXJ0KSB7IFtzdHJpbmddJEEud2VydCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAg JEhhdFBmbGljaHQgPSAkQS5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmxpY2h0J10NCiAgICAgICAg ICAgICAgICAkUGZsaWNodE5ldSA9IGlmICgkSGF0UGZsaWNodCkgeyBbYm9vbF0kQS5wZmxpY2h0 IH0gZWxzZSB7ICRmYWxzZSB9DQogICAgICAgICAgICAgICAgJEhhdEVyd2FydGV0ID0gJEEuUFNP YmplY3QuUHJvcGVydGllc1snZXJ3YXJ0ZXRlckFsdGVyV2VydCddDQogICAgICAgICAgICAgICAg JEVyd2FydGV0ID0gaWYgKCRIYXRFcndhcnRldCkgeyBbc3RyaW5nXSRBLmVyd2FydGV0ZXJBbHRl cldlcnQgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICRMb2NrVG9rZW4gPSBpZiAo JEEuUFNPYmplY3QuUHJvcGVydGllc1snbG9ja1Rva2VuJ10pIHsgW3N0cmluZ10kQS5sb2NrVG9r ZW4gfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICRVc2VybmFtZSA9ICRlbnY6VVNF Uk5BTUUNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJvbGxlDQogICAgICAgICAg ICAgICAgJERhcmZVZWJlcnNjaHJlaWJlbiA9IFRlc3QtRGFyZlVlYmVyc2NocmVpYmVuICRSb2xs ZQ0KDQogICAgICAgICAgICAgICAgJEFkbWluRnVlclZGID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4u anNvbicNCg0KICAgICAgICAgICAgICAgICMgV2hpdGVsaXN0IGdlZ2VuIGFkbWluLnNjaGljaHRj b2RlcyAtLSB2ZXJoaW5kZXJ0IE9ycGhhbi1Db2RlcyB3aWUNCiAgICAgICAgICAgICAgICAjIGRp ZSAnZGZyVScvJ2Rmci9VJy8nYWJnJy1WYXJpYW50cywgZGllIGhpc3RvcmlzY2ggZHVyY2ggVGlw cGZlaGxlcg0KICAgICAgICAgICAgICAgICMgaW4gZGllIERhdGVuIGdlbGFuZ3Qgd2FyZW4gKE1p Z3JhdGlvbiBpbiBBdWRpdC1QaGFzZS0yKS4gTWlycm9yDQogICAgICAgICAgICAgICAgIyB6dSBz ZXJ2ZXIucHk6Mjk0NC0yOTUyLg0KICAgICAgICAgICAgICAgICRWYWxpZENvZGVzID0gTmV3LU9i amVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5IYXNoU2V0W3N0cmluZ10NCiAgICAgICAg ICAgICAgICBbdm9pZF0kVmFsaWRDb2Rlcy5BZGQoJycpDQogICAgICAgICAgICAgICAgaWYgKCRu dWxsIC1uZSAkQWRtaW5GdWVyVkYgLWFuZCAkQWRtaW5GdWVyVkYuUFNPYmplY3QuUHJvcGVydGll c1snc2NoaWNodGNvZGVzJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJFNjIGlu ICRBZG1pbkZ1ZXJWRi5zY2hpY2h0Y29kZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkbnVsbCAtbmUgJFNjIC1hbmQgJFNjLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2NvZGUnXSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRWYWxpZENvZGVzLkFkZChbc3RyaW5n XSRTYy5jb2RlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRWYWxpZENv ZGVzLkNvbnRhaW5zKCRXZXJ0KSkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRS ZXMgIlVuYmVrYW5udGVyIFNjaGljaHRjb2RlOiAnJFdlcnQnIiA0MDANCiAgICAgICAgICAgICAg ICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjIFZl cmJpbmRsaWNoa2VpdHNmZW5zdGVyIChELjEpOiByZWd1bGFlcmUgVXNlciBrb2VubmVuIFRhZ2Ug ZGF2b3IgbmljaHQgZWRpdGllcmVuDQogICAgICAgICAgICAgICAgaWYgKCRSb2xsZSAtZXEgJ3Vz ZXInKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LURhdHVtSW5WZXJiaW5kbGljaGtl aXQgJERhdHVtICRBZG1pbkZ1ZXJWRikgew0KICAgICAgICAgICAgICAgICAgICAgICAgU2VuZC1K c29uICRSZXMgQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIgICAgICAgICAg PSAndmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXInDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg bWVsZHVuZyAgICAgICAgID0gJ0RhdHVtIGxpZWd0IGltIFZlcmJpbmRsaWNoa2VpdHNmZW5zdGVy IC0gZnVlciByZWd1bGFlcmUgVXNlciBub2NoIGdlc3BlcnJ0LicNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlcnN0ZXJGcmVpZXJUYWcgPSAoR2V0LUVyc3RlckZyZWllclRhZ0lzbyAkQWRt aW5GdWVyVkYpDQogICAgICAgICAgICAgICAgICAgICAgICB9IDQwMw0KICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICMgUGVzc2ltaXN0aWMgQ2VsbC1Mb2NrIHBydWVmZW4gKFBo YXNlIEEpDQogICAgICAgICAgICAgICAgJEV4aXN0aW5nTG9jayA9IFJlYWQtQ2VsbExvY2sgJERh dHVtICRQZXJzb25JZA0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEV4aXN0aW5nTG9j aykgew0KICAgICAgICAgICAgICAgICAgICAkVG9rZW5QYXNzdCA9ICgkTG9ja1Rva2VuIC1hbmQg JEV4aXN0aW5nTG9jay50b2tlbiAtZXEgJExvY2tUb2tlbikNCiAgICAgICAgICAgICAgICAgICAg JFNlbGJzdExvY2sgPSAoJEV4aXN0aW5nTG9jay51c2VybmFtZSAtaWVxICRVc2VybmFtZSkNCiAg ICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFRva2VuUGFzc3QgLWFuZCAtbm90ICRTZWxic3RM b2NrIC1hbmQgLW5vdCAkRGFyZlVlYmVyc2NocmVpYmVuKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlaGxl ciAgPSAnZ2VzcGVycnQnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVsZHVuZyA9ICJE aWVzZSBaZWxsZSB3aXJkIGdlcmFkZSB2b24gJCgkRXhpc3RpbmdMb2NrLnVzZXJuYW1lKSBiZWFy YmVpdGV0LiINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVycmVyID0gJEV4aXN0aW5n TG9jay51c2VybmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGxlICAgPSAkRXhp c3RpbmdMb2NrLnJvbGxlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VpdCAgICA9ICRF eGlzdGluZ0xvY2subG9ja2VkQXQNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gNDIzDQogICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgJExvY2tSZXN1bHQgPSAkbnVsbA0KICAg ICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRMb2NrUmVzdWx0ID0gSW52 b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICAg ICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcpIHsgcmV0dXJuIEB7IHR5cCA9ICdlcnJv cic7IGNvZGUgPSA0MDQ7IG1zZyA9ICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5kZW4nIH0gfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICAkQWx0ZXJXZXJ0ID0gJycNCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVn ZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVy IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZWludHJhZWdlJyAtVmFsdWUgKE5ldy1P YmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5laW50cmFlZ2UuUFNPYmplY3QuUHJvcGVydGll c1skRGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJh ZWdlIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1W YWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmVpbnRyYWVnZS4k RGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRBbHRlcldlcnQgPSBbc3RyaW5nXSRQbGFudW5nLmVpbnRyYWVnZS4k RGF0dW0uJFBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAjIE9wdGltaXN0aWMt Q29uY3VycmVuY3kNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkSGF0RXJ3YXJ0ZXQgLWFu ZCAkRXJ3YXJ0ZXQgLW5lICRBbHRlcldlcnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gQHsgdHlwID0gJ2tvbmZsaWt0JzsgYWt0dWVsbCA9ICRBbHRlcldlcnQgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAjIFBmbGlj aHQtT3ZlcnJpZGUtQ2hlY2sgKFBoYXNlIEIpOiBiZXN0ZWhlbmRlcyBwZmxpY2h0PXRydWUgbnVy IFNVL0ZhY2hhdWZzaWNodA0KICAgICAgICAgICAgICAgICAgICAgICAgJEFsdGVyUGZsaWNodCA9 ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ3BmbGljaHQnXSAtYW5kICRQbGFudW5nLnBmbGljaHQuUFNPYmplY3QuUHJvcGVy dGllc1skRGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5n LnBmbGljaHQuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJFBlcnNvbklkXSkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0ZXJQZmxpY2h0ID0gW2Jvb2xdJFBsYW51bmcu cGZsaWNodC4kRGF0dW0uJFBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRB bHRlclBmbGljaHQgLWFuZCAtbm90ICREYXJmVWViZXJzY2hyZWliZW4pIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ3BmbGljaHRnZXNwZXJydCc7IGFsdGVy V2VydCA9ICRBbHRlcldlcnQgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgIyBQZmxpY2h0LU5FVS1TZXR6ZW46IG51ciBTVS9GYWNoYXVmc2ljaHQN CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkSGF0UGZsaWNodCAtYW5kICRQZmxpY2h0TmV1 IC1hbmQgLW5vdCAkRGFyZlVlYmVyc2NocmVpYmVuKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEB7IHR5cCA9ICdwZmxpY2h0c2V0enVuZ1ZlcmJvdGVuJyB9DQogICAgICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChbc3RyaW5n XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRXZXJ0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJFBl cnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50 cmFlZ2UuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRQZXJzb25JZCkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5laW50cmFlZ2UuJERh dHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJFBlcnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtLiRQZXJzb25JZCA9ICRXZXJ0 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlLiREYXR1bSB8IEFkZC1NZW1iZXIgLU1l bWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRQZXJzb25JZCAtVmFsdWUgJFdlcnQNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICAgICAgICAgICMgUGZsaWNodC1GbGFnIHNlcGFyYXQgdmVyd2FsdGVuDQog ICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0 aWVzWydwZmxpY2h0J10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyB8 IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdwZmxpY2h0JyAtVmFs dWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICAkV2VydFZvcmhhbmRlbiA9IC1ub3QgW3N0cmluZ106OklzTnVs bE9yV2hpdGVTcGFjZSgkV2VydCkNCiAgICAgICAgICAgICAgICAgICAgICAgICRTb2xsU2V0emVu ID0gJEhhdFBmbGljaHQgLWFuZCAkUGZsaWNodE5ldSAtYW5kICRXZXJ0Vm9yaGFuZGVuDQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAoJFNvbGxTZXR6ZW4pIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5wZmxpY2h0LlBTT2JqZWN0LlByb3BlcnRpZXNb JERhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZmxp Y2h0IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1W YWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLnBmbGljaHQuJERhdHVt LlBTT2JqZWN0LlByb3BlcnRpZXNbJFBlcnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS4kUGVyc29uSWQgPSAkdHJ1ZQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRQbGFudW5nLnBmbGljaHQuJERhdHVtIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlw ZSBOb3RlUHJvcGVydHkgLU5hbWUgJFBlcnNvbklkIC1WYWx1ZSAkdHJ1ZQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkSGF0 UGZsaWNodCAtb3IgLW5vdCAkV2VydFZvcmhhbmRlbikgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICgkUGxhbnVuZy5wZmxpY2h0LlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGZsaWNodC4k RGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9w ZXJ0aWVzLlJlbW92ZSgkUGVyc29uSWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEAoJFBsYW51bmcucGZsaWNo dC4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllcykuQ291bnQgLWVxIDApIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQuUFNPYmplY3QuUHJvcGVy dGllcy5SZW1vdmUoJERhdHVtKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQgJFBs YW51bmcgQCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAeyBraW5kID0gJ2VpbnRyYWVn ZSc7IGRhdHVtID0gJERhdHVtOyBwZXJzb25JZCA9ICRQZXJzb25JZCB9LA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEB7IGtpbmQgPSAncGZsaWNodCc7ICAgZGF0dW0gPSAkRGF0dW07IHBl cnNvbklkID0gJFBlcnNvbklkIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBAeyB0eXAgPSAnb2snOyBhbHRlcldlcnQgPSAkQWx0ZXJX ZXJ0OyBhbHRlclBmbGljaHQgPSAkQWx0ZXJQZmxpY2h0OyBwbGFudW5nID0gJFBsYW51bmcgfQ0K ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAg ICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiJF8iIDUwMzsgY29udGludWUNCiAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoJExvY2tSZXN1bHQudHlwIC1lcSAnZXJy b3InKSB7IFNlbmQtRXJyb3IgJFJlcyAkTG9ja1Jlc3VsdC5tc2cgJExvY2tSZXN1bHQuY29kZTsg Y29udGludWUgfQ0KICAgICAgICAgICAgICAgIGlmICgkTG9ja1Jlc3VsdC50eXAgLWVxICdrb25m bGlrdCcpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAgICAg ICAgICAgICAgICAgICAgIGZlaGxlciAgICAgICAgPSAna29uZmxpa3QnDQogICAgICAgICAgICAg ICAgICAgICAgICBtZWxkdW5nICAgICAgID0gJ0RpZXNlIFplbGxlIHd1cmRlIGluendpc2NoZW4g Z2VhZW5kZXJ0LicNCiAgICAgICAgICAgICAgICAgICAgICAgIGFrdHVlbGxlcldlcnQgPSAkTG9j a1Jlc3VsdC5ha3R1ZWxsDQogICAgICAgICAgICAgICAgICAgIH0gNDA5DQogICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgk TG9ja1Jlc3VsdC50eXAgLWVxICdwZmxpY2h0Z2VzcGVycnQnKSB7DQogICAgICAgICAgICAgICAg ICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIgICAg ICAgID0gJ3BmbGljaHRnZXNwZXJydCcNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lbGR1bmcg ICAgICAgPSAnRGllc2UgWmVsbGUgaXN0IGFscyBQZmxpY2h0LVNldHp1bmcgbWFya2llcnQuIE51 ciBGYWNoYXVmc2ljaHQvU3VwZXJVc2VyIGRhcmYgc2llIGFlbmRlcm4uJw0KICAgICAgICAgICAg ICAgICAgICAgICAgYWt0dWVsbGVyV2VydCA9ICRMb2NrUmVzdWx0LmFsdGVyV2VydA0KICAgICAg ICAgICAgICAgICAgICB9IDQwMw0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJExvY2tSZXN1bHQudHlwIC1lcSAncGZs aWNodHNldHp1bmdWZXJib3RlbicpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRS ZXMgQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZlaGxlciAgPSAncGZsaWNodHNldHp1bmdW ZXJib3RlbicNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lbGR1bmcgPSAnUGZsaWNodC1TZXR6 dW5nZW4ga29lbm5lbiBudXIgRmFjaGF1ZnNpY2h0L1N1cGVyVXNlciB2b3JuZWhtZW4uJw0KICAg ICAgICAgICAgICAgICAgICB9IDQwMw0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRBbHRlcldlcnQgICAgPSAkTG9ja1Jl c3VsdC5hbHRlcldlcnQNCiAgICAgICAgICAgICAgICAkQWx0ZXJQZmxpY2h0ID0gJExvY2tSZXN1 bHQuYWx0ZXJQZmxpY2h0DQogICAgICAgICAgICAgICAgJFBsYW51bmcgICAgICA9ICRMb2NrUmVz dWx0LnBsYW51bmcNCiAgICAgICAgICAgICAgICAkSXN0T3ZlcnJpZGUgID0gKCRBbHRlclBmbGlj aHQgLWFuZCAkRGFyZlVlYmVyc2NocmVpYmVuKSAtb3IgYA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoJG51bGwgLW5lICRFeGlzdGluZ0xvY2sgLWFuZCAtbm90ICgkRXhpc3RpbmdM b2NrLnVzZXJuYW1lIC1pZXEgJFVzZXJuYW1lKSAtYW5kICREYXJmVWViZXJzY2hyZWliZW4pDQog ICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnemVsbGUuZ2VhZW5kZXJ0JyBAew0KICAg ICAgICAgICAgICAgICAgICBkYXR1bSAgICAgPSAkRGF0dW0NCiAgICAgICAgICAgICAgICAgICAg cGVyc29uSWQgID0gJFBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgIGFsdGVyV2VydCA9ICRB bHRlcldlcnQNCiAgICAgICAgICAgICAgICAgICAgbmV1ZXJXZXJ0ID0gJFdlcnQNCiAgICAgICAg ICAgICAgICAgICAgcGZsaWNodCAgID0gaWYgKCRIYXRQZmxpY2h0KSB7ICRQZmxpY2h0TmV1IH0g ZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAgICAgcm9sbGUgICAgID0gJFJvbGxlDQog ICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlICA9ICRJc3RPdmVycmlkZQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICBBZGQtQ2hhbmdlTG9nRW50cnkgJ3plbGxlJyAkRGF0dW0g JFBlcnNvbklkICRXZXJ0ICRVc2VybmFtZSAkUm9sbGUgQHsNCiAgICAgICAgICAgICAgICAgICAg YWx0ZXJXZXJ0ID0gJEFsdGVyV2VydA0KICAgICAgICAgICAgICAgICAgICBwZmxpY2h0ICAgPSBp ZiAoJEhhdFBmbGljaHQpIHsgJFBmbGljaHROZXUgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAg ICAgICAgICAgICBvdmVycmlkZSAgPSAkSXN0T3ZlcnJpZGUNCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgaWYgKCRBbHRlcldlcnQgLW5lICRXZXJ0KSB7DQogICAgICAgICAgICAg ICAgICAgIHRyeSB7IE5vdGlmeS1BZW5kZXJ1bmcgJFBsYW51bmcgJFBlcnNvbklkICREYXR1bSAk QWx0ZXJXZXJ0ICRXZXJ0IH0gY2F0Y2ggeyBEZWJ1Zy1Mb2cgJ01BSUwnICJGZWhsZXI6ICRfIiB9 DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0 YXR1cyA9ICdnZXNwZWljaGVydCc7IGFsdGVyV2VydCA9ICRBbHRlcldlcnQ7IHJvbGxlID0gJFJv bGxlOyBvdmVycmlkZSA9ICRJc3RPdmVycmlkZSB9DQogICAgICAgICAgICAgICAgY29udGludWUN CiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyBGTEQ6IERTTS1Ub2dnbGUgKFBoYXNlIEE1 OiBGaWxlLUxvY2sgKyBDaGFuZ2UtTG9nKQ0KICAgICAgICAgICAgIyBXYXIgaW4gc2VydmVyLnBz MSBiaXNoZXIgZ2FyIG5pY2h0IHZvcmhhbmRlbiAtIG51ciBzZXJ2ZXIucHkgaGF0dGUgZXMuDQog ICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvZHNtJyAtYW5kICRNZXRob2Qg LWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkg eyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQog ICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlm ICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0 MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQSA9ICRCb2R5IHwgQ29udmVydEZyb20t SnNvbg0KICAgICAgICAgICAgICAgICREYXR1bSA9IFtzdHJpbmddJEEuZGF0dW0NCiAgICAgICAg ICAgICAgICAkRmxhZyA9IFtib29sXSRBLmFrdGl2DQogICAgICAgICAgICAgICAgaWYgKFtzdHJp bmddOjpJc051bGxPcldoaXRlU3BhY2UoJERhdHVtKSkgeyBTZW5kLUVycm9yICRSZXMgJ2RhdHVt IGZlaGx0JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52 OlVTRVJOQU1FDQogICAgICAgICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAg ICAgICAgICAgICRMb2NrUmVzdWx0ID0gJG51bGwNCiAgICAgICAgICAgICAgICB0cnkgew0KICAg ICAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51 bmcuanNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25G aWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx ICRQbGFudW5nKSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBtc2cgPSAn cGxhbnVuZy5qc29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAgICAgICAgICAg IGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2RzbSddKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5v dGVQcm9wZXJ0eSAtTmFtZSAnZHNtJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAkQWx0ID0gJGZh bHNlDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcuZHNtLlBTT2JqZWN0LlBy b3BlcnRpZXNbJERhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBbHQgPSBb Ym9vbF0kUGxhbnVuZy5kc20uJERhdHVtDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAoJEZsYWcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoJFBsYW51bmcuZHNtLlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5kc20uJERhdHVtID0gJHRydWUN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkUGxhbnVuZy5kc20gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ cm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVlICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoJFBsYW51bmcuZHNtLlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVt XSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5kc20uUFNPYmpl Y3QuUHJvcGVydGllcy5SZW1vdmUoJERhdHVtKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFdy aXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyBAKA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEB7IGtpbmQgPSAnZHNtJzsgZGF0dW0gPSAkRGF0dW0gfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9ICdv ayc7IGFsdCA9ICRBbHQgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg fSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiJF8iIDUwMzsg Y29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRMb2NrUmVz dWx0LnR5cCAtZXEgJ2Vycm9yJykgeyBTZW5kLUVycm9yICRSZXMgJExvY2tSZXN1bHQubXNnICRM b2NrUmVzdWx0LmNvZGU7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50 cmFnICdkc20uZ2VhZW5kZXJ0JyBAeyBkYXR1bSA9ICREYXR1bTsgYWt0aXYgPSAkRmxhZzsgcm9s bGUgPSAkUm9sbGUgfQ0KICAgICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dFbnRyeSAnZHNtJyAk RGF0dW0gJG51bGwgKFtzdHJpbmddJEZsYWcuVG9TdHJpbmcoKS5Ub0xvd2VyKCkpICRVc2VybmFt ZSAkUm9sbGUgQHsNCiAgICAgICAgICAgICAgICAgICAgYWt0aXYgPSAkRmxhZw0KICAgICAgICAg ICAgICAgICAgICBhbHQgICA9ICRMb2NrUmVzdWx0LmFsdA0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnOyBk YXR1bSA9ICREYXR1bTsgYWt0aXYgPSAkRmxhZyB9DQogICAgICAgICAgICAgICAgY29udGludWUN CiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gWkVM TEVOLUJVTEsgKFBoYXNlIEM6IEF1dG9GaWxsLURuRCkgPT09PT09PT09PT09PT09PT09PT09DQog ICAgICAgICAgICAjIFBVVCAvYXBpL3BsYW51bmcvemVsbGVuLWJ1bGsgeyB6ZWxsZW46IFt7ZGF0 dW0sIHBlcnNvbklkLCB3ZXJ0LCBlcndhcnRldCwgbG9ja1Rva2VuP30sIC4uLl0gfQ0KICAgICAg ICAgICAgIyAyMDcgTXVsdGktU3RhdHVzOiB7IGVyZm9sZ3JlaWNoOltdLCBrb25mbGlrdGU6W10s IGdlc3BlcnJ0OltdLCB2ZXJib3RlbjpbXSwgZmVobGVyOltdIH0NCiAgICAgICAgICAgIGlmICgk UGF0aCAtZXEgJy9hcGkvcGxhbnVuZy96ZWxsZW4tYnVsaycgLWFuZCAkTWV0aG9kIC1lcSAnUFVU Jykgew0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAg ICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBn cm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEEgPSAkQm9keSB8IENvbnZl cnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkQS56ZWxsZW4gLW9yIEAoJEEu emVsbGVuKS5Db3VudCAtZXEgMCkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRS ZXMgJ3plbGxlbi1BcnJheSBmZWhsdCBvZGVyIGxlZXInIDQwMDsgY29udGludWUNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKEAoJEEuemVsbGVuKS5Db3VudCAtZ3QgNTAw KSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnTWF4aW1hbCA1MDAgWmVs bGVuIHBybyBCdWxrLVJlcXVlc3QnIDQxMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAg ICRSb2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICAkRGFyZlVlYmVyID0gVGVz dC1EYXJmVWViZXJzY2hyZWliZW4gJFJvbGxlDQoNCiAgICAgICAgICAgICAgICAjIFByZS1DaGVj ayBDZWxsLUxvY2tzDQogICAgICAgICAgICAgICAgJEdlc3BlcnJ0ID0gTmV3LU9iamVjdCBTeXN0 ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHogaW4g JEEuemVsbGVuKSB7DQogICAgICAgICAgICAgICAgICAgICRkID0gW3N0cmluZ10kei5kYXR1bTsg JHAgPSBbc3RyaW5nXSR6LnBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRk IC1vciAtbm90ICRwKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgJEwgPSBSZWFk LUNlbGxMb2NrICRkICRwDQogICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEwpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICRvd24gPSAoJEwudXNlcm5hbWUgLWllcSAkVXNlcm5h bWUpDQogICAgICAgICAgICAgICAgICAgICAgICAkdG9rT2sgPSAkei5QU09iamVjdC5Qcm9wZXJ0 aWVzWydsb2NrVG9rZW4nXSAtYW5kICRMLnRva2VuIC1lcSBbc3RyaW5nXSR6LmxvY2tUb2tlbg0K ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJG93biAtYW5kIC1ub3QgJHRva09rIC1h bmQgLW5vdCAkRGFyZlVlYmVyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRd JEdlc3BlcnJ0LkFkZChAeyBkYXR1bSA9ICRkOyBwZXJzb25JZCA9ICRwOyBzcGVycmVyID0gJEwu dXNlcm5hbWUgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRFcmZvbGdyZWljaCA9 IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAg ICRLb25mbGlrdGUgICA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0K ICAgICAgICAgICAgICAgICRWZXJib3RlbiAgICA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rp b25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICRGZWhsZXIgICAgICA9IE5ldy1PYmplY3Qg U3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KDQogICAgICAgICAgICAgICAgJExvY2tSZXN1 bHQgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRM b2NrUmVzdWx0ID0gSW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7DQogICAgICAg ICAgICAgICAgICAgICAgICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicN CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcpIHsgcmV0dXJu IEB7IHR5cCA9ICdlcnJvcic7IGNvZGUgPSA0MDQ7IG1zZyA9ICdwbGFudW5nLmpzb24gbmljaHQg Z2VmdW5kZW4nIH0gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcu UFNPYmplY3QuUHJvcGVydGllc1snZWludHJhZWdlJ10pIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1O YW1lICdlaW50cmFlZ2UnIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICRBZG1pbkZ1ZXJWRiA9IFJl YWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICAkUHJ1ZWZl VmVyYiA9ICgkUm9sbGUgLWVxICd1c2VyJykNCiAgICAgICAgICAgICAgICAgICAgICAgICMgV2hp dGVsaXN0IGdlZ2VuIGFkbWluLnNjaGljaHRjb2RlcyAoTWlycm9yIHNlcnZlci5weTozMTIwLTMx MjIpDQogICAgICAgICAgICAgICAgICAgICAgICAkVmFsaWRDb2RlcyA9IE5ldy1PYmplY3QgU3lz dGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSGFzaFNldFtzdHJpbmddDQogICAgICAgICAgICAgICAg ICAgICAgICBbdm9pZF0kVmFsaWRDb2Rlcy5BZGQoJycpDQogICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJG51bGwgLW5lICRBZG1pbkZ1ZXJWRiAtYW5kICRBZG1pbkZ1ZXJWRi5QU09iamVjdC5Q cm9wZXJ0aWVzWydzY2hpY2h0Y29kZXMnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvcmVhY2ggKCRTYyBpbiAkQWRtaW5GdWVyVkYuc2NoaWNodGNvZGVzKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJFNjIC1hbmQgJFNjLlBTT2JqZWN0 LlByb3BlcnRpZXNbJ2NvZGUnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW3ZvaWRdJFZhbGlkQ29kZXMuQWRkKFtzdHJpbmddJFNjLmNvZGUpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAkQmV0cm9mZmVu ZSA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAg ICAgICAgICAgICAgJEdlc3BlcnJ0U2V0ID0gQHt9DQogICAgICAgICAgICAgICAgICAgICAgICBm b3JlYWNoICgkZyBpbiAkR2VzcGVycnQpIHsgJEdlc3BlcnJ0U2V0WygkZy5kYXR1bSArICd8JyAr ICRnLnBlcnNvbklkKV0gPSAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNo ICgkeiBpbiAkQS56ZWxsZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZCA9IFtz dHJpbmddJHouZGF0dW07ICRwID0gW3N0cmluZ10kei5wZXJzb25JZA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICR3ZXJ0ID0gaWYgKCR6LndlcnQpIHsgW3N0cmluZ10kei53ZXJ0IH0gZWxz ZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJ3YXJ0ZXQgPSBpZiAoJHou UFNPYmplY3QuUHJvcGVydGllc1snZXJ3YXJ0ZXQnXSkgeyBbc3RyaW5nXSR6LmVyd2FydGV0IH0g ZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkZCAt b3IgLW5vdCAkcCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kRmVo bGVyLkFkZChAeyBkYXR1bSA9ICRkOyBwZXJzb25JZCA9ICRwOyBmZWhsZXIgPSAnZGF0dW0vcGVy c29uSWQgZmVobHQnIH0pOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkVmFsaWRDb2Rlcy5Db250YWlu cygkd2VydCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJEZlaGxl ci5BZGQoQHsgZGF0dW0gPSAkZDsgcGVyc29uSWQgPSAkcDsgZmVobGVyID0gIlVuYmVrYW5udGVy IFNjaGljaHRjb2RlOiAnJHdlcnQnIiB9KTsgY29udGludWUNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRHZXNwZXJydFNldFso JGQgKyAnfCcgKyAkcCldKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJFBydWVmZVZlcmIgLWFuZCAoVGVzdC1EYXR1bUluVmVyYmluZGxpY2hrZWl0ICRkICRB ZG1pbkZ1ZXJWRikpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFZl cmJvdGVuLkFkZChAeyBkYXR1bSA9ICRkOyBwZXJzb25JZCA9ICRwOyBncnVuZCA9ICd2ZXJiaW5k bGljaGtlaXRzZmVuc3RlcicgfSk7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLmVpbnRy YWVnZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ cm9wZXJ0eSAtTmFtZSAkZCAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbHQgPSAn Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5laW50cmFlZ2UuJGQu UFNPYmplY3QuUHJvcGVydGllc1skcF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJGFsdCA9IFtzdHJpbmddJFBsYW51bmcuZWludHJhZWdlLiRkLiRwDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAt bmUgJGVyd2FydGV0IC1hbmQgJGVyd2FydGV0IC1uZSAkYWx0KSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFt2b2lkXSRLb25mbGlrdGUuQWRkKEB7IGRhdHVtID0gJGQ7IHBlcnNv bklkID0gJHA7IGFrdHVlbGwgPSAkYWx0IH0pOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0UGYgPSAkZmFsc2UN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcuUFNPYmplY3QuUHJvcGVy dGllc1sncGZsaWNodCddIC1hbmQgJFBsYW51bmcucGZsaWNodC5QU09iamVjdC5Qcm9wZXJ0aWVz WyRkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGZs aWNodC4kZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwXSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJGFsdFBmID0gW2Jvb2xdJFBsYW51bmcucGZsaWNodC4kZC4kcA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYWx0UGYgLWFuZCAtbm90ICRE YXJmVWViZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFZlcmJv dGVuLkFkZChAeyBkYXR1bSA9ICRkOyBwZXJzb25JZCA9ICRwOyBncnVuZCA9ICdwZmxpY2h0JyB9 KTsgY29udGludWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHdlcnQpKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5laW50cmFlZ2Uu JGQuUFNPYmplY3QuUHJvcGVydGllc1skcF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZS4kZC5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92 ZSgkcCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkUGxhbnVuZy5laW50cmFlZ2UuJGQuUFNPYmplY3QuUHJvcGVydGllc1skcF0pIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZS4kZC4kcCA9 ICR3ZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UuJGQgfCBBZGQt TWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkcCAtVmFsdWUgJHdlcnQNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kQmV0cm9mZmVuZS5BZGQo QHsga2luZCA9ICdlaW50cmFlZ2UnOyBkYXR1bSA9ICRkOyBwZXJzb25JZCA9ICRwIH0pDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJEVyZm9sZ3JlaWNoLkFkZChAeyBkYXR1bSA9 ICRkOyBwZXJzb25JZCA9ICRwOyB3ZXJ0ID0gJHdlcnQ7IGFsdGVyV2VydCA9ICRhbHQgfSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAKCRC ZXRyb2ZmZW5lKS5Db3VudCAtZ3QgMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdy aXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyBAKCRCZXRyb2ZmZW5lKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5 cCA9ICdvaycgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRj aCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiJF8iIDUwMzsgY29udGlu dWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRMb2NrUmVzdWx0LnR5 cCAtZXEgJ2Vycm9yJykgeyBTZW5kLUVycm9yICRSZXMgJExvY2tSZXN1bHQubXNnICRMb2NrUmVz dWx0LmNvZGU7IGNvbnRpbnVlIH0NCg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRvayBpbiAk RXJmb2xncmVpY2gpIHsNCiAgICAgICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnemVs bGUuZ2VhZW5kZXJ0JyBAew0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0dW0gPSAkb2suZGF0 dW07IHBlcnNvbklkID0gJG9rLnBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICBhbHRl cldlcnQgPSAkb2suYWx0ZXJXZXJ0OyBuZXVlcldlcnQgPSAkb2sud2VydA0KICAgICAgICAgICAg ICAgICAgICAgICAgcm9sbGUgPSAkUm9sbGU7IG92ZXJyaWRlID0gJGZhbHNlOyBidWxrID0gJHRy dWUNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBBZGQtQ2hhbmdl TG9nRW50cnkgJ3plbGxlJyAkb2suZGF0dW0gJG9rLnBlcnNvbklkICRvay53ZXJ0ICRVc2VybmFt ZSAkUm9sbGUgQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVyV2VydCA9ICRvay5hbHRl cldlcnQ7IGJ1bGsgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICRzdGF0dXNDb2RlID0gaWYgKChAKCRLb25mbGlrdGUpLkNv dW50ICsgQCgkVmVyYm90ZW4pLkNvdW50ICsgQCgkR2VzcGVycnQpLkNvdW50ICsgQCgkRmVobGVy KS5Db3VudCkgLWd0IDApIHsgMjA3IH0gZWxzZSB7IDIwMCB9DQogICAgICAgICAgICAgICAgU2Vu ZC1Kc29uICRSZXMgQHsNCiAgICAgICAgICAgICAgICAgICAgc3RhdHVzICAgICAgPSAndmVyYXJi ZWl0ZXQnDQogICAgICAgICAgICAgICAgICAgIGVyZm9sZ3JlaWNoID0gQCgkRXJmb2xncmVpY2gp DQogICAgICAgICAgICAgICAgICAgIGtvbmZsaWt0ZSAgID0gQCgkS29uZmxpa3RlKQ0KICAgICAg ICAgICAgICAgICAgICBnZXNwZXJydCAgICA9IEAoJEdlc3BlcnJ0KQ0KICAgICAgICAgICAgICAg ICAgICB2ZXJib3RlbiAgICA9IEAoJFZlcmJvdGVuKQ0KICAgICAgICAgICAgICAgICAgICBmZWhs ZXIgICAgICA9IEAoJEZlaGxlcikNCiAgICAgICAgICAgICAgICAgICAgcm9sbGUgICAgICAgPSAk Um9sbGUNCiAgICAgICAgICAgICAgICB9ICRzdGF0dXNDb2RlDQogICAgICAgICAgICAgICAgY29u dGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyBLb21tZW50YXIgc2V0emVuL2xv ZXNjaGVuIChQaGFzZSBBNTogRmlsZS1Mb2NrICsgT3B0aW1pc3RpYy1Db25jdXJyZW5jeSArIENo YW5nZS1Mb2cpDQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcva29tbWVu dGFyJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRCb2R5ID0g UmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNl bmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAg ICAgICAgICAgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAk RGF0dW0gPSBbc3RyaW5nXSRBLmRhdHVtDQogICAgICAgICAgICAgICAgJFBlcnNvbklkID0gW3N0 cmluZ10kQS5wZXJzb25JZA0KICAgICAgICAgICAgICAgICRUZXh0ID0gaWYgKCRBLnRleHQpIHsg KFtzdHJpbmddJEEudGV4dCkuVHJpbSgpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAk SGF0RXJ3YXJ0ZXQgPSAkQS5QU09iamVjdC5Qcm9wZXJ0aWVzWydlcndhcnRldGVyQWx0ZXJUZXh0 J10NCiAgICAgICAgICAgICAgICAkRXJ3YXJ0ZXQgPSBpZiAoJEhhdEVyd2FydGV0KSB7IFtzdHJp bmddJEEuZXJ3YXJ0ZXRlckFsdGVyVGV4dCB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAg ICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAgICRSb2xsZSA9IEdl dC1Vc2VyUm9sbGUNCg0KICAgICAgICAgICAgICAgICRMb2NrUmVzdWx0ID0gJG51bGwNCiAgICAg ICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9IEludm9r ZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcuanNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAg JFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJG51bGwgLWVxICRQbGFudW5nKSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3In OyBjb2RlID0gNDA0OyBtc2cgPSAncGxhbnVuZy5qc29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCg0K ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVy dGllc1sna29tbWVudGFyZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51 bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAna29tbWVudGFy ZScgLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcua29tbWVudGFyZS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUGxhbnVuZy5rb21tZW50YXJlIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVy dHkgLU5hbWUgJERhdHVtIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJEFsdGVyVGV4dCA9ICcn DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcua29tbWVudGFyZS4kRGF0dW0u UFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgJEFsdGVyRWludHJhZyA9ICRQbGFudW5nLmtvbW1lbnRhcmUuJERhdHVtLiRQZXJzb25J ZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQmFja3dhcmQtQ29tcGF0OiBhbHRlciBF aW50cmFnIGthbm4gU3RyaW5nIE9ERVIge3RleHQsIGdlYWVuZGVydEFtLCBnZWFlbmRlcnRWb259 IHNlaW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJEFsdGVyRWludHJhZyAtaXMg W3N0cmluZ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFsdGVyVGV4dCA9 ICRBbHRlckVpbnRyYWcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoJEFs dGVyRWludHJhZy5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0ZXh0J10pIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEFsdGVyVGV4dCA9IFtzdHJpbmddJEFsdGVyRWludHJhZy50ZXh0 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRIYXRFcndhcnRldCAtYW5kICRFcndhcnRl dCAtbmUgJEFsdGVyVGV4dCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBA eyB0eXAgPSAna29uZmxpa3QnOyBha3R1ZWxsID0gJEFsdGVyVGV4dCB9DQogICAgICAgICAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkVGV4dCkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICROZXVPYmogPSBbUFNDdXN0b21PYmplY3RdQHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCAgICAgICAgID0gJFRleHQNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VhZW5kZXJ0QW0gID0gKEdldC1EYXRlIC1Gb3Jt YXQgJ3l5eXktTU0tZGQgSEg6bW06c3MnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnZWFlbmRlcnRWb24gPSAoR2V0LUFrdHVlbGxlckJlbnV0emVyKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcu a29tbWVudGFyZS4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmtvbW1lbnRhcmUuJERhdHVtLiRQ ZXJzb25JZCA9ICROZXVPYmoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5rb21tZW50YXJlLiREYXR1 bSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRQZXJzb25JZCAt VmFsdWUgJE5ldU9iag0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQ bGFudW5nLmtvbW1lbnRhcmUuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJFBlcnNvbklkXSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5rb21tZW50YXJlLiRE YXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkUGVyc29uSWQpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAKCRQbGFu dW5nLmtvbW1lbnRhcmUuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXMpLkNvdW50IC1lcSAwKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmtvbW1lbnRhcmUuUFNP YmplY3QuUHJvcGVydGllcy5SZW1vdmUoJERhdHVtKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg IFdyaXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyBAKA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEB7IGtpbmQgPSAna29tbWVudGFyZSc7IGRhdHVtID0gJERhdHVtOyBwZXJz b25JZCA9ICRQZXJzb25JZCB9DQogICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ29rJzsgYWx0ZXJUZXh0ID0gJEFsdGVyVGV4 dCB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAg ICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICIkXyIgNTAzOyBjb250aW51ZQ0KICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmICgkTG9ja1Jlc3VsdC50eXAgLWVx ICdlcnJvcicpIHsgU2VuZC1FcnJvciAkUmVzICRMb2NrUmVzdWx0Lm1zZyAkTG9ja1Jlc3VsdC5j b2RlOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgaWYgKCRMb2NrUmVzdWx0LnR5cCAtZXEg J2tvbmZsaWt0Jykgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAg ICAgICAgICAgICAgICAgICAgICAgZmVobGVyICAgICAgICAgPSAna29uZmxpa3QnDQogICAgICAg ICAgICAgICAgICAgICAgICBtZWxkdW5nICAgICAgICA9ICdLb21tZW50YXIgd3VyZGUgaW56d2lz Y2hlbiBnZWFlbmRlcnQuJw0KICAgICAgICAgICAgICAgICAgICAgICAgYWt0dWVsbGVyVGV4dCAg PSAkTG9ja1Jlc3VsdC5ha3R1ZWxsDQogICAgICAgICAgICAgICAgICAgIH0gNDA5DQogICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgJEt1cnogPSBpZiAoJFRleHQuTGVuZ3RoIC1ndCAxMDApIHsgJFRleHQuU3Vic3RyaW5nKDAs IDEwMCkgfSBlbHNlIHsgJFRleHQgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcg J2tvbW1lbnRhci5nZWFlbmRlcnQnIEB7DQogICAgICAgICAgICAgICAgICAgIGRhdHVtICAgID0g JERhdHVtDQogICAgICAgICAgICAgICAgICAgIHBlcnNvbklkID0gJFBlcnNvbklkDQogICAgICAg ICAgICAgICAgICAgIHRleHQgICAgID0gJEt1cnoNCiAgICAgICAgICAgICAgICAgICAgcm9sbGUg ICAgPSAkUm9sbGUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgQWRkLUNoYW5n ZUxvZ0VudHJ5ICdrb21tZW50YXInICREYXR1bSAkUGVyc29uSWQgJFRleHQgJFVzZXJuYW1lICRS b2xsZSBAew0KICAgICAgICAgICAgICAgICAgICBhbHRlclRleHQgPSAkTG9ja1Jlc3VsdC5hbHRl clRleHQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMg QHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gQkFDS1VQ UyA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkv cGxhbnVuZy9iYWNrdXBzJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAg ICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVy ZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRWludHJhZWdlID0g TmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAg Zm9yZWFjaCAoJEYgaW4gR2V0LUNoaWxkSXRlbSAtUGF0aCAkRGF0YURpciAtRmlsdGVyICdwbGFu dW5nX2JhY2t1cF8qLmpzb24nIC1GaWxlKSB7DQogICAgICAgICAgICAgICAgICAgICROYW1lID0g JEYuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAkVHlwID0gaWYgKCROYW1lIC1saWtlICcqYmFj a3VwX3Zvcl9kdW1teV8qJykgeyAndm9yIER1bW15ZGF0ZW4nIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVsc2VpZiAoJE5hbWUgLWxpa2UgJypiYWNrdXBfdm9yX3Jlc2V0XyonKSB7ICd2 b3IgUmVzZXQnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAoJE5hbWUgLWxp a2UgJypiYWNrdXBfdm9yX3dpZWRlcmhlcnN0ZWxsdW5nXyonKSB7ICd2b3IgV2llZGVyaGVyc3Rl bGx1bmcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAnbWFudWVsbCcgfQ0K ICAgICAgICAgICAgICAgICAgICBbdm9pZF0kRWludHJhZWdlLkFkZChbb3JkZXJlZF1Aew0KICAg ICAgICAgICAgICAgICAgICAgICAgZGF0ZWluYW1lICA9ICROYW1lDQogICAgICAgICAgICAgICAg ICAgICAgICBncm9lc3NlICAgID0gJEYuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICBl cnN0ZWxsdEFtID0gJEYuTGFzdFdyaXRlVGltZS5Ub1N0cmluZygneXl5eS1NTS1kZFRISDptbTpz cy5mZmZmZmZmJykNCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cCAgICAgICAgPSAkVHlwDQog ICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICRTb3J0aWVydCA9IEAoJEVpbnRyYWVnZSB8IFNvcnQtT2JqZWN0IC1Qcm9wZXJ0eSBlcnN0ZWxs dEFtIC1EZXNjZW5kaW5nKQ0KICAgICAgICAgICAgICAgICRKc29uID0gQ29udmVydFRvLUpzb24g LUlucHV0T2JqZWN0IEAoJFNvcnRpZXJ0KSAtRGVwdGggNSAtQ29tcHJlc3MNCiAgICAgICAgICAg ICAgICBTZW5kLUpzb25SYXcgJFJlcyAkSnNvbg0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQog ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgkUGF0aCAtbGlrZSAnL2FwaS9wbGFudW5n L2JhY2t1cC9kb3dubG9hZC8qJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAg ICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUg QmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkTmFtZSA9IFtT eXN0ZW0uV2ViLkh0dHBVdGlsaXR5XTo6VXJsRGVjb2RlKCRQYXRoLlN1YnN0cmluZygnL2FwaS9w bGFudW5nL2JhY2t1cC9kb3dubG9hZC8nLkxlbmd0aCkpDQogICAgICAgICAgICAgICAgaWYgKC1u b3QgKCROYW1lLlN0YXJ0c1dpdGgoJ3BsYW51bmdfYmFja3VwXycpIC1hbmQgJE5hbWUuRW5kc1dp dGgoJy5qc29uJykpIC1vciAkTmFtZS5Db250YWlucygnLycpIC1vciAkTmFtZS5Db250YWlucygn XCcpIC1vciAkTmFtZS5Db250YWlucygnLi4nKSkgew0KICAgICAgICAgICAgICAgICAgICBTZW5k LUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VyIERhdGVpbmFtZScgNDAwOyBjb250aW51ZQ0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkRlBhdGggPSBKb2luLVBhdGggJERhdGFEaXIg JE5hbWUNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRGUGF0aCkpIHsgU2Vu ZC1FcnJvciAkUmVzICdCYWNrdXAgbmljaHQgZ2VmdW5kZW4nIDQwNDsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgIFNlbmQtRmlsZUF0dGFjaG1lbnQgJFJlcyAkRlBhdGggJE5hbWUNCiAgICAg ICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoJFBh dGggLWVxICcvYXBpL3BsYW51bmcvYmFja3VwJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0K ICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRS ZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAg JFBsYW51bmdQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdwbGFudW5nLmpzb24nDQogICAgICAg ICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkUGxhbnVuZ1BhdGgpKSB7IFNlbmQtRXJyb3Ig JFJlcyAncGxhbnVuZy5qc29uIG5pY2h0IGdlZnVuZGVuJyA0MDQ7IGNvbnRpbnVlIH0NCiAgICAg ICAgICAgICAgICAkVHMgPSBHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5TU1kZF9ISG1tc3MnDQogICAg ICAgICAgICAgICAgJEJhY2t1cE5hbWUgPSAicGxhbnVuZ19iYWNrdXBfJFRzLmpzb24iDQogICAg ICAgICAgICAgICAgQ29weS1JdGVtIC1QYXRoICRQbGFudW5nUGF0aCAtRGVzdGluYXRpb24gKEpv aW4tUGF0aCAkRGF0YURpciAkQmFja3VwTmFtZSkgLUZvcmNlDQogICAgICAgICAgICAgICAgSW52 b2tlLUJhY2t1cFJvdGF0aW9uICdwbGFudW5nX2JhY2t1cF8qLmpzb24nIDIwICAjIFBoYXNlIEQz OiBtYXggMjAgYmVoYWx0ZW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdiYWNr dXAuZXJzdGVsbHQnIEB7IGRhdGVpbmFtZSA9ICRCYWNrdXBOYW1lIH0NCiAgICAgICAgICAgICAg ICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZXJzdGVsbHQnOyBkYXRlaW5hbWUgPSAkQmFj a3VwTmFtZSB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL2JhY2t1cC93aWVkZXJoZXJzdGVs bGVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90 IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycg NDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0K ICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdB bmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4g PSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkTmFtZSA9IFtzdHJp bmddJERhdGVuLmRhdGVpbmFtZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICgkTmFtZS5TdGFy dHNXaXRoKCdwbGFudW5nX2JhY2t1cF8nKSAtYW5kICROYW1lLkVuZHNXaXRoKCcuanNvbicpKSAt b3IgJE5hbWUuQ29udGFpbnMoJy8nKSAtb3IgJE5hbWUuQ29udGFpbnMoJ1wnKSAtb3IgJE5hbWUu Q29udGFpbnMoJy4uJykpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdV bmd1ZWx0aWdlciBEYXRlaW5hbWUnIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgJFF1ZWxsUGF0aCA9IEpvaW4tUGF0aCAkRGF0YURpciAkTmFtZQ0KICAg ICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggJFF1ZWxsUGF0aCkpIHsgU2VuZC1FcnJv ciAkUmVzICdCYWNrdXAgbmljaHQgZ2VmdW5kZW4nIDQwNDsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICRQbGFudW5nUGF0aCA9IEpvaW4tUGF0aCAkRGF0YURpciAncGxhbnVuZy5qc29uJw0K ICAgICAgICAgICAgICAgICRUcyA9IEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXlNTWRkX0hIbW1zcycN CiAgICAgICAgICAgICAgICAkU2ljaGVyTmFtZSA9ICJwbGFudW5nX2JhY2t1cF92b3Jfd2llZGVy aGVyc3RlbGx1bmdfJFRzLmpzb24iDQogICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAkUGxh bnVuZ1BhdGgpIHsNCiAgICAgICAgICAgICAgICAgICAgQ29weS1JdGVtIC1QYXRoICRQbGFudW5n UGF0aCAtRGVzdGluYXRpb24gKEpvaW4tUGF0aCAkRGF0YURpciAkU2ljaGVyTmFtZSkgLUZvcmNl DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIENvcHktSXRlbSAtUGF0aCAkUXVl bGxQYXRoIC1EZXN0aW5hdGlvbiAkUGxhbnVuZ1BhdGggLUZvcmNlDQogICAgICAgICAgICAgICAg SW52b2tlLUJhY2t1cFJvdGF0aW9uICdwbGFudW5nX2JhY2t1cF8qLmpzb24nIDIwDQogICAgICAg ICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnYmFja3VwLndpZWRlcmhlcmdlc3RlbGx0JyBAeyBx dWVsbGUgPSAkTmFtZTsgc2ljaGVydW5nID0gJFNpY2hlck5hbWUgfQ0KICAgICAgICAgICAgICAg IFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICd3aWVkZXJoZXJnZXN0ZWxsdCc7IHNpY2hlcnVu ZyA9ICRTaWNoZXJOYW1lIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvYmFja3VwL2xvZXNj aGVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90 IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycg NDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0K ICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdB bmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4g PSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkTmFtZSA9IFtzdHJp bmddJERhdGVuLmRhdGVpbmFtZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICgkTmFtZS5TdGFy dHNXaXRoKCdwbGFudW5nX2JhY2t1cF8nKSAtYW5kICROYW1lLkVuZHNXaXRoKCcuanNvbicpKSAt b3IgJE5hbWUuQ29udGFpbnMoJy8nKSAtb3IgJE5hbWUuQ29udGFpbnMoJ1wnKSAtb3IgJE5hbWUu Q29udGFpbnMoJy4uJykpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdV bmd1ZWx0aWdlciBEYXRlaW5hbWUnIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgJEZQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICROYW1lDQogICAgICAg ICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkRlBhdGgpKSB7IFNlbmQtRXJyb3IgJFJlcyAn QmFja3VwIG5pY2h0IGdlZnVuZGVuJyA0MDQ7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBS ZW1vdmUtSXRlbSAtUGF0aCAkRlBhdGggLUZvcmNlDQogICAgICAgICAgICAgICAgV3JpdGUtTG9n RWludHJhZyAnYmFja3VwLmdlbG9lc2NodCcgQHsgZGF0ZWluYW1lID0gJE5hbWUgfQ0KICAgICAg ICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZWxvZXNjaHQnIH0NCiAgICAg ICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09 PT09PT09PT09PT09PT09PSBQRVJTT05FTiA9PT09PT09PT09PT09PT09PT09PT0NCg0KICAgICAg ICAgICAgIyBQZXJzb24gYW5sZWdlbg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9w ZXJzb25lbicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAo LW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1 bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRS ZXENCiAgICAgICAgICAgICAgICAkTmV1ID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAg ICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQoNCiAg ICAgICAgICAgICAgICAkQWxsZSA9IEAoR2V0LVBlcnNvbmVuQXJyYXkgJFBsYW51bmcpDQogICAg ICAgICAgICAgICAgJE1heElkID0gMA0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRQIGluICRB bGxlKSB7IGlmIChbaW50XSRQLmlkIC1ndCAkTWF4SWQpIHsgJE1heElkID0gW2ludF0kUC5pZCB9 IH0NCiAgICAgICAgICAgICAgICAkTmV1ZUlkID0gJE1heElkICsgMQ0KDQogICAgICAgICAgICAg ICAgIyBFaW5yZWloZW46IHZvci9uYWNoL3VudGVuDQogICAgICAgICAgICAgICAgJEVpbnJlaWhl biA9IGlmICgkTmV1LmVpbnJlaWhlbikgeyAoW3N0cmluZ10kTmV1LmVpbnJlaWhlbikuVG9Mb3dl cigpIH0gZWxzZSB7ICd1bnRlbicgfQ0KICAgICAgICAgICAgICAgICRSZWZJZCA9ICROZXUucmVm ZXJlbnpJZA0KICAgICAgICAgICAgICAgICRaaWVsUG9zID0gJG51bGwNCg0KICAgICAgICAgICAg ICAgICRBbGxlU29ydGllcnQgPSBAKCRBbGxlIHwgU29ydC1PYmplY3QgLVByb3BlcnR5IEB7RXhw cmVzc2lvbj17W2ludF0oJF8ucG9zaXRpb24pfTsgQXNjZW5kaW5nPSR0cnVlfSkNCg0KICAgICAg ICAgICAgICAgIGlmICgoJEVpbnJlaWhlbiAtZXEgJ3ZvcicgLW9yICRFaW5yZWloZW4gLWVxICdu YWNoJykgLWFuZCAkbnVsbCAtbmUgJFJlZklkKSB7DQogICAgICAgICAgICAgICAgICAgICRSZWZQ b3MgPSAkbnVsbA0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUCBpbiAkQWxsZVNvcnRp ZXJ0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoW2ludF0kUC5pZCAtZXEgW2ludF0k UmVmSWQpIHsgJFJlZlBvcyA9IFtpbnRdJFAucG9zaXRpb247IGJyZWFrIH0NCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRSZWZQb3MpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICRaaWVsUG9zID0gaWYgKCRFaW5yZWloZW4gLWVxICd2 b3InKSB7ICRSZWZQb3MgfSBlbHNlIHsgJFJlZlBvcyArIDEgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgZm9yZWFjaCAoJFAgaW4gJEFsbGVTb3J0aWVydCkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChbaW50XSRQLnBvc2l0aW9uIC1nZSAkWmllbFBvcykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkUC5wb3NpdGlvbiA9IFtpbnRdJFAucG9zaXRpb24gKyAx DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIGlmICgkbnVsbCAtZXEgJFppZWxQb3MpIHsNCiAgICAgICAgICAgICAgICAgICAgJE1heFBv cyA9IDANCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJFAgaW4gJEFsbGUpIHsgaWYgKFtp bnRdJFAucG9zaXRpb24gLWd0ICRNYXhQb3MpIHsgJE1heFBvcyA9IFtpbnRdJFAucG9zaXRpb24g fSB9DQogICAgICAgICAgICAgICAgICAgICRaaWVsUG9zID0gJE1heFBvcyArIDENCiAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjIEF1ZGl0LUl0ZXItQjogbmFjaG5hbWUgaXN0 IFNvdXJjZS1vZi1UcnV0aCwgbmFtZSBudXIgQmFja3dhcmQtQ29tcGF0LUZhbGxiYWNrLg0KICAg ICAgICAgICAgICAgICROYWNobmFtZU5ldSA9IGlmICgkTmV1LlBTT2JqZWN0LlByb3BlcnRpZXNb J25hY2huYW1lJ10gLWFuZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmlu Z10kTmV1Lm5hY2huYW1lKSkgew0KICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXSROZXUubmFj aG5hbWUNCiAgICAgICAgICAgICAgICB9IGVsc2VpZiAoJE5ldS5QU09iamVjdC5Qcm9wZXJ0aWVz WyduYW1lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10kTmV1Lm5hbWUNCiAgICAg ICAgICAgICAgICB9IGVsc2UgeyAnJyB9DQoNCiAgICAgICAgICAgICAgICAkUGVyc29uID0gW1BT Q3VzdG9tT2JqZWN0XUB7DQogICAgICAgICAgICAgICAgICAgIGlkICAgICAgICAgICA9ICROZXVl SWQNCiAgICAgICAgICAgICAgICAgICAgYWt0aXYgICAgICAgID0gaWYgKCRudWxsIC1uZSAkTmV1 LmFrdGl2KSB7IFtib29sXSROZXUuYWt0aXYgfSBlbHNlIHsgJHRydWUgfQ0KICAgICAgICAgICAg ICAgICAgICBuYWNobmFtZSAgICAgPSAkTmFjaG5hbWVOZXUNCiAgICAgICAgICAgICAgICAgICAg dm9ybmFtZSAgICAgID0gaWYgKCROZXUudm9ybmFtZSkgeyBbc3RyaW5nXSROZXUudm9ybmFtZSB9 IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgIGRpZW5zdGdyYWQgICA9IGlmICgkTmV1 LmRpZW5zdGdyYWQpIHsgW3N0cmluZ10kTmV1LmRpZW5zdGdyYWQgfSBlbHNlIHsgJycgfQ0KICAg ICAgICAgICAgICAgICAgICBmdW5rdGlvbiAgICAgPSBpZiAoJE5ldS5mdW5rdGlvbikgeyBbc3Ry aW5nXSROZXUuZnVua3Rpb24gfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICBvZSAg ICAgICAgICAgPSBpZiAoJE5ldS5vZSkgeyBbc3RyaW5nXSROZXUub2UgfSBlbHNlIHsgJycgfQ0K ICAgICAgICAgICAgICAgICAgICBkaWVuc3RudW1tZXIgPSBpZiAoJE5ldS5kaWVuc3RudW1tZXIp IHsgW3N0cmluZ10kTmV1LmRpZW5zdG51bW1lciB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAg ICAgICAgIHRlbGVmb24gICAgICA9IGlmICgkTmV1LnRlbGVmb24pIHsgW3N0cmluZ10kTmV1LnRl bGVmb24gfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiAgICAgPSAk WmllbFBvcw0KICAgICAgICAgICAgICAgICAgICBlbWFpbCAgICAgICAgPSBpZiAoJE5ldS5lbWFp bCkgeyBbc3RyaW5nXSROZXUuZW1haWwgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAg ICBud0tlbm51bmcgICAgPSBpZiAoJE5ldS5ud0tlbm51bmcpIHsgW3N0cmluZ10kTmV1Lm53S2Vu bnVuZyB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgICMgQXVkaXQtRmluZGluZyBE MTogb3B0aW9uYWxlIEZlbGRlciBtaXQgbnVsbC1EZWZhdWx0DQogICAgICAgICAgICAgICAgICAg ICMgc3RhdHQgIiIgKE1pcnJvciBzZXJ2ZXIucHk6MzQwMS0zNDA1KS4NCiAgICAgICAgICAgICAg ICAgICAgZ2VidXJ0c2RhdHVtID0gaWYgKCROZXUuZ2VidXJ0c2RhdHVtKSB7IFtzdHJpbmddJE5l dS5nZWJ1cnRzZGF0dW0gfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgICRQbGFudW5nLnBlcnNvbmVuID0gQCgkQWxsZSArICRQZXJzb24pDQogICAg ICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicgJFBsYW51bmcNCiAgICAg ICAgICAgICAgICAjIEF1dG8tUm9sbGVuLVN5bmMgKERHTC8xLkVCIC0+IHN1cGVyVXNlciwgMS5F QiBWLiAtPiBmYWNoYXVmc2ljaHRlbikNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgICAgICAg ICAgICAgICAgICBpZiAoU3luYy1Sb2xsZW5BdXNQZXJzb25lbiAkUGxhbnVuZyAkQWRtaW4pIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5qc29uJyAkQWRt aW4NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggeyBXcml0 ZS1XYXJuaW5nICJSb2xsZW4tU3luYyBuYWNoIFBlcnNvbi1BbmxhZ2UgZmVobGdlc2NobGFnZW46 ICRfIiB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAncGVyc29uLmFuZ2VsZWd0 JyBAeyBwZXJzb25JZCA9ICROZXVlSWQ7IG5hY2huYW1lID0gIiQoJE5ldS52b3JuYW1lKSAkTmFj aG5hbWVOZXUiLlRyaW0oKSB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3Rh dHVzID0gJ2FuZ2VsZWd0JzsgaWQgPSAkTmV1ZUlkOyBwb3NpdGlvbiA9ICRaaWVsUG9zIH0NCiAg ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIFBl cnNvbiBha3R1YWxpc2llcmVuDQogICAgICAgICAgICAkUGVyc29uTWF0Y2ggPSBbcmVnZXhdOjpN YXRjaCgkUGF0aCwgJ14vYXBpL3BlcnNvbmVuLyhcZCspJCcpDQogICAgICAgICAgICBpZiAoJFBl cnNvbk1hdGNoLlN1Y2Nlc3MgLWFuZCAkTWV0aG9kIC1lcSAnUFVUJykgew0KICAgICAgICAgICAg ICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJl cmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJElkID0gW2ludF0k UGVyc29uTWF0Y2guR3JvdXBzWzFdLlZhbHVlDQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFk LUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgICRVcGRhdGUgPSAkQm9keSB8IENvbnZlcnRGcm9t LUpzb24NCiAgICAgICAgICAgICAgICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcu anNvbicNCg0KICAgICAgICAgICAgICAgICMgQXVkaXQtSXRlci1COiBMZWdhY3ktbmFtZSAtPiBu YWNobmFtZSBtYXBwZW4sIGRhbm4gbmFtZSBhdXMgVXBkYXRlIGVudGZlcm5lbg0KICAgICAgICAg ICAgICAgIGlmICgkVXBkYXRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hbWUnXSAtYW5kIC1ub3Qg JFVwZGF0ZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyduYWNobmFtZSddKSB7DQogICAgICAgICAgICAg ICAgICAgICRVcGRhdGUgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFt ZSAnbmFjaG5hbWUnIC1WYWx1ZSAoW3N0cmluZ10kVXBkYXRlLm5hbWUpDQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkVXBkYXRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25h bWUnXSkgew0KICAgICAgICAgICAgICAgICAgICAkVXBkYXRlLlBTT2JqZWN0LlByb3BlcnRpZXMu UmVtb3ZlKCduYW1lJykNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjIEF1 ZGl0LUZpbmRpbmcgRDE6IG9wdGlvbmFsZSBEYXR1bXMtL05vdGl6LUZlbGRlciBhdWYgbnVsbA0K ICAgICAgICAgICAgICAgICMgbm9ybWFsaXNpZXJlbiAoTWlycm9yIHNlcnZlci5weTozNDM1LTM0 MzgpLg0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRPcHRGZWxkIGluIEAoJ2dlYnVydHNkYXR1 bScsJ2VuZERhdHVtJywnZXJpbm5lcnVuZ3NOb3RpeicpKSB7DQogICAgICAgICAgICAgICAgICAg IGlmICgkVXBkYXRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJE9wdEZlbGRdKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAkViA9ICRVcGRhdGUuKCRPcHRGZWxkKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRWIC1pcyBbc3RyaW5nXSAtYW5kIFtzdHJpbmddOjpJc051bGxPcldoaXRlU3Bh Y2UoJFYpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFVwZGF0ZS4oJE9wdEZlbGQp ID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRHZWZ1bmRlbiA9ICRmYWxz ZQ0KICAgICAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSAtbHQgJFBsYW51bmcucGVyc29uZW4u Q291bnQ7ICRpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKFtpbnRdJFBsYW51bmcucGVy c29uZW5bJGldLmlkIC1lcSAkSWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2gg KCRQcm9wIGluICRVcGRhdGUuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkUHJvcC5OYW1lIC1uZSAnaWQnKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5wZXJzb25lblskaV0uUFNPYmplY3QuUHJvcGVy dGllc1skUHJvcC5OYW1lXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JFBsYW51bmcucGVyc29uZW5bJGldLigkUHJvcC5OYW1lKSA9ICRQcm9wLlZhbHVlDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkUGxhbnVuZy5wZXJzb25lblskaV0gfCBBZGQtTWVtYmVyIC1NZW1iZXJU eXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkUHJvcC5OYW1lIC1WYWx1ZSAkUHJvcC5WYWx1ZQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg IyBMZWdhY3ktbmFtZS1GZWxkIGVuZGd1ZWx0aWcgYXVzIFBlcnNvbiBlbnRmZXJuZW4sIGZhbGxz IG5vY2ggdm9yaGFuZGVuDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGVy c29uZW5bJGldLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hbWUnXSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRMZWdhY3lOYW1lID0gW3N0cmluZ10kUGxhbnVuZy5wZXJzb25lblskaV0u bmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051 bGxPcldoaXRlU3BhY2UoJExlZ2FjeU5hbWUpIC1hbmQgYA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRQbGFudW5n LnBlcnNvbmVuWyRpXS5uYWNobmFtZSkpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkUGxhbnVuZy5wZXJzb25lblskaV0uUFNPYmplY3QuUHJvcGVydGllc1snbmFjaG5h bWUnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGVy c29uZW5bJGldLm5hY2huYW1lID0gJExlZ2FjeU5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQ bGFudW5nLnBlcnNvbmVuWyRpXSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5 IC1OYW1lICduYWNobmFtZScgLVZhbHVlICRMZWdhY3lOYW1lDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGVyc29uZW5bJGldLlBTT2JqZWN0LlByb3BlcnRp ZXMuUmVtb3ZlKCduYW1lJykNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICRHZWZ1bmRlbiA9ICR0cnVlOyBicmVhaw0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRHZWZ1bmRl bikgeyBTZW5kLUVycm9yICRSZXMgIlBlcnNvbiAkSWQgbmljaHQgZ2VmdW5kZW4iIDQwNDsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdwbGFudW5nLmpzb24nICRQ bGFudW5nDQogICAgICAgICAgICAgICAgIyBBdXRvLVJvbGxlbi1TeW5jIG5hY2ggRWRpdCAoRnVu a3Rpb24ga2FubiBzaWNoIGdlYWVuZGVydCBoYWJlbikNCiAgICAgICAgICAgICAgICB0cnkgew0K ICAgICAgICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0K ICAgICAgICAgICAgICAgICAgICBpZiAoU3luYy1Sb2xsZW5BdXNQZXJzb25lbiAkUGxhbnVuZyAk QWRtaW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5q c29uJyAkQWRtaW4NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0 Y2ggeyBXcml0ZS1XYXJuaW5nICJSb2xsZW4tU3luYyBuYWNoIFBlcnNvbi1FZGl0IGZlaGxnZXNj aGxhZ2VuOiAkXyIgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3BlcnNvbi5n ZWFlbmRlcnQnIEB7IHBlcnNvbklkID0gJElkIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24g JFJlcyBAeyBzdGF0dXMgPSAnYWt0dWFsaXNpZXJ0JyB9DQogICAgICAgICAgICAgICAgY29udGlu dWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyBSZWloZW5mb2xnZSBhZW5kZXJuDQog ICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BlcnNvbmVuL3JlaWhlbmZvbGdlJyAtYW5k ICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0 QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAg ICAgICAgJFJlaWhlbmZvbGdlID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAg ICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAg ICAgICAgZm9yZWFjaCAoJFIgaW4gJFJlaWhlbmZvbGdlKSB7DQogICAgICAgICAgICAgICAgICAg IGZvciAoJGkgPSAwOyAkaSAtbHQgJFBsYW51bmcucGVyc29uZW4uQ291bnQ7ICRpKyspIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChbaW50XSRQbGFudW5nLnBlcnNvbmVuWyRpXS5pZCAt ZXEgW2ludF0kUi5pZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBl cnNvbmVuWyRpXS5wb3NpdGlvbiA9IFtpbnRdJFIucG9zaXRpb24NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25G aWxlICdwbGFudW5nLmpzb24nICRQbGFudW5nDQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWlu dHJhZyAncGVyc29uZW4ucmVpaGVuZm9sZ2UuZ2VhZW5kZXJ0JyBAe30NCiAgICAgICAgICAgICAg ICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnYWt0dWFsaXNpZXJ0JyB9DQogICAgICAgICAg ICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09 PT09PT09PT09PT0gU1RBVElTVElLID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAg aWYgKCRQYXRoIC1lcSAnL2FwaS9zdGF0aXN0aWsnIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsN CiAgICAgICAgICAgICAgICBIYW5kbGUtU3RhdGlzdGlrICRSZXMNCiAgICAgICAgICAgICAgICBj b250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09 PT09PSBEVU1NWURBVEVOIC8gUkVTRVQgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAg ICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvZHVtbXlkYXRlbicgLWFuZCAkTWV0aG9kIC1l cSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsg U2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgIEhhbmRsZS1EdW1teWRhdGVuICRSZXMNCiAgICAgICAgICAgICAgICBjb250 aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFu dW5nL3Jlc2V0JyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlm ICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRp Z3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgSGFuZGxlLVJlc2V0ICRSZXMN CiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAj ID09PT09PT09PT09PT09PT09PT09PSBGTEQ6IFNDSElDSFQtSU1QT1JUIChQYXN0ZS1iYXNpZXJ0 KSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgICMgU3BpZWdlbCB6dSBzZXJ2ZXIu cHkgUE9TVCAvYXBpL2ltcG9ydC9zY2hpY2h0ZW4vdWViZXJuZWhtZW4uDQogICAgICAgICAgICAj IENsaWVudCBwYXJzdCBkaWUgZ2VwYXN0ZXRlbiBFeGNlbC1EYXRlbiBjbGllbnRzZWl0aWcgdW5k IHNjaGlja3QNCiAgICAgICAgICAgICMgZWludHJhZWdlICsgcGZsaWNodC1GbGFncyB6dW0gU2No cmVpYmVuLg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9pbXBvcnQvc2NoaWNodGVu L3VlYmVybmVobWVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAg IGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIgU3Vw ZXJVc2VyIGR1ZXJmZW4gaW1wb3J0aWVyZW4nIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAg ICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx ICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51 ZSB9DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJFBhcmFtID0g JEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAg ICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXMgSlNPTicgNDAwOyBj b250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRMb2NrUmVzdWx0 ID0gJG51bGwNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAkTG9j a1Jlc3VsdCA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcuanNvbicgew0KICAgICAgICAg ICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQog ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRQbGFudW5nKSB7IHJldHVybiBA eyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBtc2cgPSAncGxhbnVuZy5qc29uIG5pY2h0IGdl ZnVuZGVuJyB9IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcu UFNPYmplY3QuUHJvcGVydGllc1snZWludHJhZWdlJ10pIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1O YW1lICdlaW50cmFlZ2UnIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5n LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQnXSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5h bWUgJ3BmbGljaHQnIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBBdWRpdC1JSS0xIEYxOiBT Y2hpY2h0Y29kZS1XaGl0ZWxpc3QgYXVjaCBpbSBJbXBvcnQtUGZhZC4NCiAgICAgICAgICAgICAg ICAgICAgICAgICMgTWlycm9yIHp1IHNlcnZlci5weTozNTY0LTM1NjguDQogICAgICAgICAgICAg ICAgICAgICAgICAkQWRtaW5GdWVySW1wb3J0ID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicN CiAgICAgICAgICAgICAgICAgICAgICAgICRWYWxpZENvZGVzID0gTmV3LU9iamVjdCBTeXN0ZW0u Q29sbGVjdGlvbnMuR2VuZXJpYy5IYXNoU2V0W3N0cmluZ10NCiAgICAgICAgICAgICAgICAgICAg ICAgIFt2b2lkXSRWYWxpZENvZGVzLkFkZCgnJykNCiAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkbnVsbCAtbmUgJEFkbWluRnVlckltcG9ydCAtYW5kICRBZG1pbkZ1ZXJJbXBvcnQuUFNPYmpl Y3QuUHJvcGVydGllc1snc2NoaWNodGNvZGVzJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3JlYWNoICgkU2MgaW4gJEFkbWluRnVlckltcG9ydC5zY2hpY2h0Y29kZXMpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkU2MgLWFuZCAkU2Mu UFNPYmplY3QuUHJvcGVydGllc1snY29kZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbdm9pZF0kVmFsaWRDb2Rlcy5BZGQoW3N0cmluZ10kU2MuY29kZSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAg JEFueiA9IDA7ICROT3JwaGFuID0gMA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQYXJh bS5QU09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2UnXSAtYW5kICRudWxsIC1uZSAkUGFyYW0u ZWludHJhZWdlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJERhdHVt UHJvcCBpbiAkUGFyYW0uZWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJERhdHVtID0gJERhdHVtUHJvcC5OYW1lDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRQaWRNYXAgPSAkRGF0dW1Qcm9wLlZhbHVlDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLmVpbnRyYWVnZS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90 ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9yZWFjaCAoJFBpZFByb3AgaW4gJFBpZE1hcC5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGVyc29uSWQgPSBbc3RyaW5n XSRQaWRQcm9wLk5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRXZXJ0 ID0gW3N0cmluZ10kUGlkUHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKC1ub3QgJFZhbGlkQ29kZXMuQ29udGFpbnMoJFdlcnQpKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5PcnBoYW4rKw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo JFBsYW51bmcuZWludHJhZWdlLiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJzb25JZF0p IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50 cmFlZ2UuJERhdHVtLiRQZXJzb25JZCA9ICRXZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRQbGFudW5nLmVpbnRyYWVnZS4kRGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5v dGVQcm9wZXJ0eSAtTmFtZSAkUGVyc29uSWQgLVZhbHVlICRXZXJ0DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQW56KysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRQYXJhbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmxpY2h0J10g LWFuZCAkbnVsbCAtbmUgJFBhcmFtLnBmbGljaHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3JlYWNoICgkRGF0dW1Qcm9wIGluICRQYXJhbS5wZmxpY2h0LlBTT2JqZWN0LlByb3Bl cnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJERhdHVtID0gJERhdHVt UHJvcC5OYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQaWRNYXAgPSAkRGF0 dW1Qcm9wLlZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQ bGFudW5nLnBmbGljaHQuUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZmxpY2h0IHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1WYWx1ZSAoTmV3LU9iamVjdCBQ U09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUGlkUHJvcCBpbiAkUGlkTWFwLlBTT2JqZWN0 LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQZXJz b25JZCA9IFtzdHJpbmddJFBpZFByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJEZsYWcgPSAkUGlkUHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCRGbGFnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRQbGFudW5nLnBmbGljaHQuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNb JFBlcnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS4kUGVyc29uSWQgPSAkdHJ1ZQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQuJERhdHVtIHwgQWRkLU1l bWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJFBlcnNvbklkIC1WYWx1ZSAkdHJ1 ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLnBmbGljaHQuJERhdHVtLlBTT2JqZWN0LlBy b3BlcnRpZXNbJFBlcnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJl bW92ZSgkUGVyc29uSWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1QbGFu dW5nTWl0SW50ZWdyaXRhZXQgJFBsYW51bmcgICAjIEJ1bGstT3A6IGFsbGUgSE1BQ3MgbmV1DQog ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ29rJzsgZWludHJhZWdlID0g JEFuejsgdW5iZWthbm50ZUNvZGVzID0gJE5PcnBoYW4gfQ0KICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJy b3IgJFJlcyAiVWViZXJuYWhtZS1GZWhsZXI6ICRfIiA1MDA7IGNvbnRpbnVlDQogICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCRMb2NrUmVzdWx0LnR5cCAtZXEgJ2Vycm9y JykgeyBTZW5kLUVycm9yICRSZXMgJExvY2tSZXN1bHQubXNnICRMb2NrUmVzdWx0LmNvZGU7IGNv bnRpbnVlIH0NCg0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3NjaGljaHRlbi5p bXBvcnRpZXJ0JyBAeyBlaW50cmFlZ2UgPSAkTG9ja1Jlc3VsdC5laW50cmFlZ2U7IHVuYmVrYW5u dGVDb2RlcyA9ICRMb2NrUmVzdWx0LnVuYmVrYW5udGVDb2RlcyB9DQogICAgICAgICAgICAgICAg U2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ3VlYmVybm9tbWVuJzsgZWludHJhZWdlID0gJExv Y2tSZXN1bHQuZWludHJhZWdlOyB1bmJla2FubnRlQ29kZXMgPSAkTG9ja1Jlc3VsdC51bmJla2Fu bnRlQ29kZXMgfQ0KICAgICAgICAgICAgICAgIERlYnVnLUxvZyAnQVBJJyAiUE9TVCAvYXBpL2lt cG9ydC9zY2hpY2h0ZW4vdWViZXJuZWhtZW4gLT4gJCgkTG9ja1Jlc3VsdC5laW50cmFlZ2UpIEVp bnRyYWVnZSBnZXNjaHJpZWJlbiwgJCgkTG9ja1Jlc3VsdC51bmJla2FubnRlQ29kZXMpIHVuYmVr YW5udGUgQ29kZXMgdmVyd29yZmVuIg0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IEZMRDogRVhDRUwt SU1QT1JUIChWb3JzY2hhdSkgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICAjIFNw aWVnZWwgenUgc2VydmVyLnB5IFBPU1QgL2FwaS9pbXBvcnQvZXhjZWwvdm9yc2NoYXUuDQogICAg ICAgICAgICAjIENsaWVudCAoQnJvd3NlciwgbWl0IHhsc3guZnVsbC5taW4uanMgLyBTaGVldEpT KSBwYXJzdCBkaWUNCiAgICAgICAgICAgICMgRXhjZWwtVm9ybGFnZSB1bmQgc2NoaWNrdCBkYXMg ZmVydGlnLWdlcGFyc3RlIFNjaGVtYS4NCiAgICAgICAgICAgICMgU2VydmVyIGxpZWZlcnQgbnVy IGRlbiBQZXJzb25lbi1EaWZmIHp1ciBha3R1ZWxsZW4gcGxhbnVuZy5qc29uLg0KICAgICAgICAg ICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9pbXBvcnQvZXhjZWwvdm9yc2NoYXUnIC1hbmQgJE1ldGhv ZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJV c2VyKSkgeyBTZW5kLUVycm9yICRSZXMgJ051ciBTdXBlclVzZXIgZHVlcmZlbiBpbXBvcnRpZXJl bicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJl cQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVz ICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICB0cnkg ew0KICAgICAgICAgICAgICAgICAgICAkUGFyYW0gPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24N CiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJv ciAkUmVzICdVbmd1ZWx0aWdlcyBKU09OJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRQYXJhbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydw ZXJzb25lbkV4Y2VsJ10gLW9yICRudWxsIC1lcSAkUGFyYW0ucGVyc29uZW5FeGNlbCkgew0KICAg ICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ3BlcnNvbmVuRXhjZWwgKEFycmF5KSBm ZWhsdCcgNDAwOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAk UGVyc29uZW5FeGNlbCA9IEAoJFBhcmFtLnBlcnNvbmVuRXhjZWwpDQoNCiAgICAgICAgICAgICAg ICAkUGxhbnVuZyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAg ICAkUGVyc29uZW5QbGFudW5nID0gQCgpDQogICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nIC1h bmQgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sncGVyc29uZW4nXSkgew0KICAgICAgICAg ICAgICAgICAgICAkUGVyc29uZW5QbGFudW5nID0gQCgkUGxhbnVuZy5wZXJzb25lbikNCiAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjIE1hdGNoLUhldXJpc3RpazogTmFjaG5h bWUgenVlcnN0LCBkYW5uIFZvcm5hbWUsIG1pdCBEaWVuc3RncmFkIGFscw0KICAgICAgICAgICAg ICAgICMgVGllYnJlYWtlci4gSGFyZC1GYWlsIHdlbm4gYmVpZGUgTmFjaG5hbWVuIGdlc2V0enQg YWJlciB1bnRlcnNjaGllZGxpY2guDQogICAgICAgICAgICAgICAgIyBHcmVlZHktMToxLVp1b3Jk bnVuZyAodmVyaGluZGVydCBkYXNzIHp3ZWkgRXhjZWwtJ0xlbmEnIGJlaWRlIGF1Zg0KICAgICAg ICAgICAgICAgICMgZGllIGdsZWljaGUgcGxhbnVuZy1MZW5hIGxhbmRlbikuDQogICAgICAgICAg ICAgICAgIyBJbmFrdGl2ZSBQZXJzb25lbiB3ZXJkZW4gZWJlbmZhbGxzIGJlcnVlY2tzaWNodGln dCwgc29uc3Qgd3VlcmRlbg0KICAgICAgICAgICAgICAgICMgenV2b3IgZGVha3RpdmllcnRlIFBl cnNvbmVuIGJlaSBSZS1JbXBvcnQgYWxzICduZXUnIGFuZ2VsZWd0IHN0YXR0DQogICAgICAgICAg ICAgICAgIyByZWFrdGl2aWVydC4gQWt0aXZlIGJla29tbWVuICswLjUgU2NvcmUtQm9udXMuDQog ICAgICAgICAgICAgICAgJEFsbGVQbGFudW5nID0gQCgkUGVyc29uZW5QbGFudW5nKQ0KDQogICAg ICAgICAgICAgICAgZnVuY3Rpb24gR2V0LU5hbWVUb2tlbnMoJE5hbWUpIHsNCiAgICAgICAgICAg ICAgICAgICAgIyBTcGxpdCBiZWkgQmluZGVzdHJpY2ggKyBXaGl0ZXNwYWNlLCBsb3dlcmNhc2Us IGxlZXJlIHJhdXMuDQogICAgICAgICAgICAgICAgICAgICMgJ1JlbXVzLUFydGh1cicgLT4gQCgn cmVtdXMnLCAnYXJ0aHVyJykNCiAgICAgICAgICAgICAgICAgICAgIyBVbWxhdXRlICsgc3MtTm9y bTogJ011ZWxsZXInIG1hdGNoZWQgJ03DvGxsZXInLCAnTWFyaXNzJyAnTWFyacOfJy4NCiAgICAg ICAgICAgICAgICAgICAgaWYgKC1ub3QgJE5hbWUpIHsgcmV0dXJuIEAoKSB9DQogICAgICAgICAg ICAgICAgICAgICRzID0gKFtzdHJpbmddJE5hbWUpLlRyaW0oKS5Ub0xvd2VyKCkNCiAgICAgICAg ICAgICAgICAgICAgJHMgPSAkcyAtcmVwbGFjZSAnw6QnLCdhZScgLXJlcGxhY2UgJ8O2Jywnb2Un IC1yZXBsYWNlICfDvCcsJ3VlJyAtcmVwbGFjZSAnw58nLCdzcycNCiAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIEAoJHMgLXNwbGl0ICdbLVxzXSsnIHwgV2hlcmUtT2JqZWN0IHsgJF8gfSkNCiAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBUZXN0LU5hbWVzTWF0 Y2goJEEsICRCKSB7DQogICAgICAgICAgICAgICAgICAgICMgVHJ1ZSB3ZW5uIGRpZSBUb2tlbi1T ZXRzIHNpY2ggdWViZXJsYXBwZW4uDQogICAgICAgICAgICAgICAgICAgICR0YSA9IEdldC1OYW1l VG9rZW5zICRBDQogICAgICAgICAgICAgICAgICAgICR0YiA9IEdldC1OYW1lVG9rZW5zICRCDQog ICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICR0YSAtb3IgLW5vdCAkdGIpIHsgcmV0dXJuICRm YWxzZSB9DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0IGluICR0YSkgeyBpZiAoJHRi IC1jb250YWlucyAkdCkgeyByZXR1cm4gJHRydWUgfSB9DQogICAgICAgICAgICAgICAgICAgIHJl dHVybiAkZmFsc2UNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmdW5jdGlv biBHZXQtUGVyc29uU2NvcmUoJEV4Y2VsLCAkUGxhbnVuZykgew0KICAgICAgICAgICAgICAgICAg ICAkZU4gPSAoW3N0cmluZ10kRXhjZWwubmFjaG5hbWUpLlRyaW0oKQ0KICAgICAgICAgICAgICAg ICAgICAkZVYgPSAoW3N0cmluZ10kRXhjZWwudm9ybmFtZSkuVHJpbSgpDQogICAgICAgICAgICAg ICAgICAgICRlRCA9IChbc3RyaW5nXSRFeGNlbC5kaWVuc3RncmFkKS5UcmltKCkuVG9Mb3dlcigp DQogICAgICAgICAgICAgICAgICAgICRwTiA9IGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0 aWVzWyduYWNobmFtZSddKSB7IChbc3RyaW5nXSRQbGFudW5nLm5hY2huYW1lKS5UcmltKCkgfSBl bHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAkcFYgPSBpZiAoJFBsYW51bmcuUFNPYmpl Y3QuUHJvcGVydGllc1sndm9ybmFtZSddKSB7IChbc3RyaW5nXSRQbGFudW5nLnZvcm5hbWUpLlRy aW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgICRwRCA9IGlmICgkUGxhbnVu Zy5QU09iamVjdC5Qcm9wZXJ0aWVzWydkaWVuc3RncmFkJ10pIHsgKFtzdHJpbmddJFBsYW51bmcu ZGllbnN0Z3JhZCkuVHJpbSgpLlRvTG93ZXIoKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAg ICAgICAgICMgSGFyZC1GYWlsOiBiZWlkZSBOYWNobmFtZW4gZ2VzZXR6dCwgYWJlciBrZWluZSBU b2tlbi1VZWJlcmxhcHB1bmcNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRlTiAtYW5kICRwTiAt YW5kIC1ub3QgKFRlc3QtTmFtZXNNYXRjaCAkZU4gJHBOKSkgeyByZXR1cm4gMCB9DQogICAgICAg ICAgICAgICAgICAgICRuTSA9IChUZXN0LU5hbWVzTWF0Y2ggJGVOICRwTikNCiAgICAgICAgICAg ICAgICAgICAgJHZNID0gKFRlc3QtTmFtZXNNYXRjaCAkZVYgJHBWKQ0KICAgICAgICAgICAgICAg ICAgICAkZE0gPSAoJGVEIC1hbmQgJHBEIC1hbmQgJGVEIC1lcSAkcEQpDQogICAgICAgICAgICAg ICAgICAgIGlmICgkbk0gLWFuZCAkdk0gLWFuZCAkZE0pIHsgcmV0dXJuIDUgfSAgICMgcGVyZmVr dA0KICAgICAgICAgICAgICAgICAgICBpZiAoJG5NIC1hbmQgJHZNKSB7IHJldHVybiA0IH0gICAg ICAgICAgICAjIHNlaHIgc3RhcmsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRuTSAtYW5kICRk TSkgeyByZXR1cm4gMyB9DQogICAgICAgICAgICAgICAgICAgIGlmICgkbk0pIHsgcmV0dXJuIDMg fQ0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkcE4gLWFuZCAkdk0gLWFuZCAkZE0pIHsg cmV0dXJuIDMgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkcE4gLWFuZCAkdk0pIHsg cmV0dXJuIDIgfQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMA0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIEdldC1QZXJzb25Lb21wYWt0KCRQKSB7DQog ICAgICAgICAgICAgICAgICAgIHJldHVybiBAew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQg PSAkUC5pZA0KICAgICAgICAgICAgICAgICAgICAgICAgdm9ybmFtZSA9IGlmICgkUC5QU09iamVj dC5Qcm9wZXJ0aWVzWyd2b3JuYW1lJ10pIHsgJFAudm9ybmFtZSB9IGVsc2UgeyAnJyB9DQogICAg ICAgICAgICAgICAgICAgICAgICBuYWNobmFtZSA9IGlmICgkUC5QU09iamVjdC5Qcm9wZXJ0aWVz WyduYWNobmFtZSddKSB7ICRQLm5hY2huYW1lIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIGRpZW5zdGdyYWQgPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1snZGllbnN0 Z3JhZCddKSB7ICRQLmRpZW5zdGdyYWQgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgZnVua3Rpb24gPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1snZnVua3Rpb24nXSkg eyAkUC5mdW5rdGlvbiB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgICAgICBha3Rp diA9IGlmICgkUC5QU09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddKSB7ICRQLmFrdGl2IH0gZWxz ZSB7ICR0cnVlIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICMgUGhhc2UgMTogYWxsZSAoc2NvcmUsIGVpLCBwaSktUGFhcmUuIEFr dGl2ZSArMC41IEJvbnVzLg0KICAgICAgICAgICAgICAgICRQYWFyZSA9IE5ldy1PYmplY3QgU3lz dGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgIGZvciAoJGVpID0gMDsg JGVpIC1sdCAkUGVyc29uZW5FeGNlbC5Db3VudDsgJGVpKyspIHsNCiAgICAgICAgICAgICAgICAg ICAgZm9yICgkcGkgPSAwOyAkcGkgLWx0ICRBbGxlUGxhbnVuZy5Db3VudDsgJHBpKyspIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICRzID0gR2V0LVBlcnNvblNjb3JlICRQZXJzb25lbkV4Y2Vs WyRlaV0gJEFsbGVQbGFudW5nWyRwaV0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcyAt Z3QgMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc3RBa3RpdiA9IC1ub3QgJEFs bGVQbGFudW5nWyRwaV0uUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSAtb3IgJEFsbGVQbGFu dW5nWyRwaV0uYWt0aXYgLWVxICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCRpc3RBa3RpdikgeyAkcyArPSAwLjUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2 b2lkXSRQYWFyZS5BZGQoQHsgcz0kczsgZWk9JGVpOyBwaT0kcGkgfSkNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAjIFBoYXNlIDI6IGdyZWVkeSBuYWNoIFNjb3JlIGFic3RlaWdlbmQNCiAg ICAgICAgICAgICAgICAkU29ydGVkID0gQCgkUGFhcmUgfCBTb3J0LU9iamVjdCAtUHJvcGVydHkg QHtFeHByZXNzaW9uPXsgLSRfLnMgfX0pDQogICAgICAgICAgICAgICAgJEV4Y2VsWnVQbGFudW5n ID0gQHt9DQogICAgICAgICAgICAgICAgJFBsYW51bmdVc2VkID0gQHt9DQogICAgICAgICAgICAg ICAgZm9yZWFjaCAoJHBwIGluICRTb3J0ZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRF eGNlbFp1UGxhbnVuZy5Db250YWluc0tleSgkcHAuZWkpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAgICAgaWYgKCRQbGFudW5nVXNlZC5Db250YWluc0tleSgkcHAucGkpKSB7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAgICAgJEV4Y2VsWnVQbGFudW5nWyRwcC5laV0gPSBAeyBw aSA9ICRwcC5waTsgcyA9ICRwcC5zIH0NCiAgICAgICAgICAgICAgICAgICAgJFBsYW51bmdVc2Vk WyRwcC5waV0gPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRN YXRjaCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAg ICAgICAgICROZXUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QNCiAg ICAgICAgICAgICAgICAkVW5zaWNoZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5B cnJheUxpc3QNCiAgICAgICAgICAgICAgICAkRW50ZmVybnQgPSBOZXctT2JqZWN0IFN5c3RlbS5D b2xsZWN0aW9ucy5BcnJheUxpc3QNCg0KICAgICAgICAgICAgICAgICMgUGhhc2UgMzogTWVocmRl dXRpZ2tlaXRzLUNoZWNrDQogICAgICAgICAgICAgICAgZm9yICgkZWkgPSAwOyAkZWkgLWx0ICRQ ZXJzb25lbkV4Y2VsLkNvdW50OyAkZWkrKykgew0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5v dCAkRXhjZWxadVBsYW51bmcuQ29udGFpbnNLZXkoJGVpKSkgeyBjb250aW51ZSB9DQogICAgICAg ICAgICAgICAgICAgICRnID0gJEV4Y2VsWnVQbGFudW5nWyRlaV0NCiAgICAgICAgICAgICAgICAg ICAgaWYgKCRnLnMgLWxlIDMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRBbmRlcmUgPSBA KCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoJHBpID0gMDsgJHBpIC1sdCAkQWxsZVBs YW51bmcuQ291bnQ7ICRwaSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRw aSAtZXEgJGcucGkpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkUGxhbnVuZ1VzZWQuQ29udGFpbnNLZXkoJHBpKSkgeyBjb250aW51ZSB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJHNrID0gR2V0LVBlcnNvblNjb3JlICRQZXJzb25lbkV4Y2VsWyRl aV0gJEFsbGVQbGFudW5nWyRwaV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXN0QSA9 IC1ub3QgJEFsbGVQbGFudW5nWyRwaV0uUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSAtb3Ig JEFsbGVQbGFudW5nWyRwaV0uYWt0aXYgLWVxICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRzayAtZ3QgMCAtYW5kICRpc3RBKSB7ICRzayArPSAwLjUgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgkc2sgLWVxICRnLnMpIHsgJEFuZGVyZSArPSAkcGkgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRB bmRlcmUuQ291bnQgLWd0IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkS2FuZElk eCA9IEAoJGcucGkpICsgJEFuZGVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRLYW5k T2JqID0gQCgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHBpIGluICRL YW5kSWR4KSB7ICRLYW5kT2JqICs9IChHZXQtUGVyc29uS29tcGFrdCAkQWxsZVBsYW51bmdbJHBp XSkgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRVbnNpY2hlci5BZGQoQHsg ZXhjZWwgPSAkUGVyc29uZW5FeGNlbFskZWldOyBrYW5kaWRhdGVuID0gJEthbmRPYmogfSkNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhjZWxadVBsYW51bmcuUmVtb3ZlKCRlaSkgfCBP dXQtTnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgIyBQaGFzZSA0OiBtYXRjaCAr IG5ldSBrbGFzc2lmaXppZXJlbg0KICAgICAgICAgICAgICAgIGZvciAoJGVpID0gMDsgJGVpIC1s dCAkUGVyc29uZW5FeGNlbC5Db3VudDsgJGVpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgaWYg KCRFeGNlbFp1UGxhbnVuZy5Db250YWluc0tleSgkZWkpKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAkZyA9ICRFeGNlbFp1UGxhbnVuZ1skZWldDQogICAgICAgICAgICAgICAgICAgICAgICAk Y29uZmlkZW5jZSA9IGlmICgkZy5zIC1nZSA0KSB7ICdob2NoJyB9IGVsc2UgeyAnbWl0dGVsJyB9 DQogICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kTWF0Y2guQWRkKEB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXhjZWwgPSAkUGVyc29uZW5FeGNlbFskZWldDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGxhbnVuZyA9IChHZXQtUGVyc29uS29tcGFrdCAkQWxsZVBsYW51 bmdbJGcucGldKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAkY29u ZmlkZW5jZQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAg fSBlbHNlaWYgKC1ub3QgKCRVbnNpY2hlciB8IFdoZXJlLU9iamVjdCB7ICRfLmV4Y2VsIC1lcSAk UGVyc29uZW5FeGNlbFskZWldIH0pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0k TmV1LkFkZChAeyBleGNlbCA9ICRQZXJzb25lbkV4Y2VsWyRlaV0gfSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICMgUGhhc2UgNTog ZW50ZmVybnQgPSBBS1RJVkUgcGxhbnVuZyBvaG5lIE1hdGNoIChpbmFrdGl2ZSBibGVpYmVuIGVp bmZhY2ggaW5ha3RpdikNCiAgICAgICAgICAgICAgICBmb3IgKCRwaSA9IDA7ICRwaSAtbHQgJEFs bGVQbGFudW5nLkNvdW50OyAkcGkrKykgew0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAk UGxhbnVuZ1VzZWQuQ29udGFpbnNLZXkoJHBpKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAg JGlzdEFrdGl2ID0gLW5vdCAkQWxsZVBsYW51bmdbJHBpXS5QU09iamVjdC5Qcm9wZXJ0aWVzWydh a3RpdiddIC1vciAkQWxsZVBsYW51bmdbJHBpXS5ha3RpdiAtZXEgJHRydWUNCiAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkaXN0QWt0aXYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbdm9pZF0kRW50ZmVybnQuQWRkKEB7IHBsYW51bmcgPSAoR2V0LVBlcnNvbktvbXBha3QgJEFs bGVQbGFudW5nWyRwaV0pIH0pDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBTZW5kLUpz b24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICBqYWhyID0gaWYgKCRQYXJhbS5QU09iamVj dC5Qcm9wZXJ0aWVzWydqYWhyJ10pIHsgJFBhcmFtLmphaHIgfSBlbHNlIHsgJG51bGwgfQ0KICAg ICAgICAgICAgICAgICAgICBwZXJzb25lbiA9IEB7DQogICAgICAgICAgICAgICAgICAgICAgICBt YXRjaCA9IEAoJE1hdGNoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV1ID0gQCgkTmV1KQ0K ICAgICAgICAgICAgICAgICAgICAgICAgZW50ZmVybnQgPSBAKCRFbnRmZXJudCkNCiAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2ljaGVyID0gQCgkVW5zaWNoZXIpDQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYW56YWhsID0gQHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIHBlcnNvbmVuRXhjZWwgPSAkUGVyc29uZW5FeGNlbC5Db3VudA0KICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIERlYnVnLUxvZyAn QVBJJyAiUE9TVCAvYXBpL2ltcG9ydC9leGNlbC92b3JzY2hhdSAtPiAkKCRQZXJzb25lbkV4Y2Vs LkNvdW50KSBQZXJzb25lbiwgbWF0Y2g9JCgkTWF0Y2guQ291bnQpIG5ldT0kKCROZXUuQ291bnQp IGVudGZlcm50PSQoJEVudGZlcm50LkNvdW50KSB1bnNpY2hlcj0kKCRVbnNpY2hlci5Db3VudCki DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg IyA9PT09PT09PT09PT09PT09PT09PT0gRkxEOiBFWENFTC1JTVBPUlQgKFVlYmVybmFobWUpID09 PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgIyBTcGllZ2VsIHp1IHNlcnZlci5weSBQ T1NUIC9hcGkvaW1wb3J0L2V4Y2VsL3VlYmVybmVobWVuLg0KICAgICAgICAgICAgIyBCb2R5IGVu dGhhZWx0IGdlcGFyc3RlIEV4Y2VsLURhdGVuICsgVXNlci1Ba3Rpb25lbiBhdXMgZGVtIFdpemFy ZC4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvaW1wb3J0L2V4Y2VsL3VlYmVybmVo bWVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90 IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIgU3VwZXJVc2VyIGR1 ZXJmZW4gaW1wb3J0aWVyZW4nIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5 ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7 IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAg ICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJFBhcmFtID0gJEJvZHkgfCBD b252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAg ICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXMgSlNPTicgNDAwOyBjb250aW51ZQ0K ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRQYXJzZWQgPSAkUGFyYW0ucGFy c2VkRGF0ZW4NCiAgICAgICAgICAgICAgICAkQWt0aW9uZW4gPSBAKCRQYXJhbS5wZXJzb25lbkFr dGlvbmVuKQ0KICAgICAgICAgICAgICAgICRPcHRzID0gJFBhcmFtLnVlYmVybmVobWVuDQogICAg ICAgICAgICAgICAgJE9wdFNjaGljaHRlbiA9IGlmICgkT3B0cy5QU09iamVjdC5Qcm9wZXJ0aWVz WydzY2hpY2h0ZW4nXSkgeyBbYm9vbF0kT3B0cy5zY2hpY2h0ZW4gfSBlbHNlIHsgJHRydWUgfQ0K ICAgICAgICAgICAgICAgICRPcHRLb21tZW50YXJlID0gaWYgKCRPcHRzLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ2tvbW1lbnRhcmUnXSkgeyBbYm9vbF0kT3B0cy5rb21tZW50YXJlIH0gZWxzZSB7ICR0 cnVlIH0NCiAgICAgICAgICAgICAgICAkT3B0U29uZGVydGVybWluZSA9IGlmICgkT3B0cy5QU09i amVjdC5Qcm9wZXJ0aWVzWydzb25kZXJ0ZXJtaW5lJ10pIHsgW2Jvb2xdJE9wdHMuc29uZGVydGVy bWluZSB9IGVsc2UgeyAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgJE9wdFRhZ2VzZGF0ZW4gPSBp ZiAoJE9wdHMuUFNPYmplY3QuUHJvcGVydGllc1sndGFnZXNkYXRlbiddKSB7IFtib29sXSRPcHRz LnRhZ2VzZGF0ZW4gfSBlbHNlIHsgJHRydWUgfQ0KICAgICAgICAgICAgICAgICRPcHRSZWloZW5m b2xnZSA9IGlmICgkT3B0cy5QU09iamVjdC5Qcm9wZXJ0aWVzWydyZWloZW5mb2xnZSddKSB7IFti b29sXSRPcHRzLnJlaWhlbmZvbGdlIH0gZWxzZSB7ICR0cnVlIH0NCg0KICAgICAgICAgICAgICAg ICRFeGNlbFBlcnNvbmVuID0gaWYgKCRQYXJzZWQuUFNPYmplY3QuUHJvcGVydGllc1sncGVyc29u ZW4nXSkgeyBAKCRQYXJzZWQucGVyc29uZW4pIH0gZWxzZSB7IEAoKSB9DQogICAgICAgICAgICAg ICAgJEV4Y2VsRWludHJhZWdlID0gaWYgKCRQYXJzZWQuUFNPYmplY3QuUHJvcGVydGllc1snZWlu dHJhZWdlJ10pIHsgJFBhcnNlZC5laW50cmFlZ2UgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAg ICAgICAgICRFeGNlbFBmbGljaHQgPSBpZiAoJFBhcnNlZC5QU09iamVjdC5Qcm9wZXJ0aWVzWydw ZmxpY2h0J10pIHsgJFBhcnNlZC5wZmxpY2h0IH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAg ICAgICAkRXhjZWxLb21tZW50YXJlID0gaWYgKCRQYXJzZWQuUFNPYmplY3QuUHJvcGVydGllc1sn a29tbWVudGFyZSddKSB7ICRQYXJzZWQua29tbWVudGFyZSB9IGVsc2UgeyAkbnVsbCB9DQogICAg ICAgICAgICAgICAgJEV4Y2VsVGVybWluZSA9IGlmICgkUGFyc2VkLlBTT2JqZWN0LlByb3BlcnRp ZXNbJ3Rlcm1pbmUnXSkgeyAkUGFyc2VkLnRlcm1pbmUgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAg ICAgICAgICAgICRFeGNlbFRhZ2VzZGF0ZW4gPSBpZiAoJFBhcnNlZC5QU09iamVjdC5Qcm9wZXJ0 aWVzWyd0YWdlc2RhdGVuJ10pIHsgJFBhcnNlZC50YWdlc2RhdGVuIH0gZWxzZSB7ICRudWxsIH0N Cg0KICAgICAgICAgICAgICAgICMgRXhjZWwtUm93IC0+IEV4Y2VsLVBlcnNvbiBIYXNobWFwDQog ICAgICAgICAgICAgICAgJEV4Y2VsQnlSb3cgPSBAe30NCiAgICAgICAgICAgICAgICBmb3JlYWNo ICgkcCBpbiAkRXhjZWxQZXJzb25lbikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJHAuUFNP YmplY3QuUHJvcGVydGllc1snZXhjZWxSb3cnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAg JEV4Y2VsQnlSb3dbW2ludF0kcC5leGNlbFJvd10gPSAkcA0KICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgJEpldHp0ID0gR2V0LURhdGUg LUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycNCiAgICAgICAgICAgICAgICAkVHMgPSBHZXQt RGF0ZSAtRm9ybWF0ICd5eXl5TU1kZF9ISG1tc3MnDQogICAgICAgICAgICAgICAgJEJhY2t1cE5h bWUgPSAicGxhbnVuZ19iYWNrdXBfdm9yX2V4Y2VsX2ltcG9ydF8kVHMuanNvbiINCg0KICAgICAg ICAgICAgICAgICRMb2NrUmVzdWx0ID0gJG51bGwNCiAgICAgICAgICAgICAgICB0cnkgew0KICAg ICAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51 bmcuanNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25G aWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx ICRQbGFudW5nKSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBtc2cgPSAn cGxhbnVuZy5qc29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICMgQmFja3VwIHVudGVyIGRlbSBMb2NrDQogICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVu Z1BhdGggPSBKb2luLVBhdGggJERhdGFEaXIgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAg ICAgICAgICAgIENvcHktSXRlbSAtUGF0aCAkUGxhbnVuZ1BhdGggLURlc3RpbmF0aW9uIChKb2lu LVBhdGggJERhdGFEaXIgJEJhY2t1cE5hbWUpIC1Gb3JjZQ0KICAgICAgICAgICAgICAgICAgICAg ICAgSW52b2tlLUJhY2t1cFJvdGF0aW9uICdwbGFudW5nX2JhY2t1cF8qLmpzb24nIDIwDQoNCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRp ZXNbJ3BlcnNvbmVuJ10pIHsgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ cm9wZXJ0eSAtTmFtZSAncGVyc29uZW4nIC1WYWx1ZSBAKCkgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1snZWludHJhZWdlJ10p IHsgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAn ZWludHJhZWdlJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQn XSkgeyAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1l ICdwZmxpY2h0JyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRh cmUnXSkgeyAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1O YW1lICdrb21tZW50YXJlJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpIH0NCg0KICAgICAg ICAgICAgICAgICAgICAgICAgIyBQZXJzb25lbi1MaXN0ZSBtdXRpZXJlbg0KICAgICAgICAgICAg ICAgICAgICAgICAgJFBlcnNvbmVuTGlzdGUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9u cy5BcnJheUxpc3QNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluIEAoJFBs YW51bmcucGVyc29uZW4pKSB7IFt2b2lkXSRQZXJzb25lbkxpc3RlLkFkZCgkcCkgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgJE5leHRJZCA9IDENCiAgICAgICAgICAgICAgICAgICAgICAgIGZv cmVhY2ggKCRwIGluICRQZXJzb25lbkxpc3RlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2lkJ10pIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJGkgPSBbaW50XSRwLmlkDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICgkaSAtZ2UgJE5leHRJZCkgeyAkTmV4dElkID0gJGkgKyAxIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICRFeGNlbFJvd1RvUGlkID0gQHt9DQogICAgICAgICAgICAgICAg ICAgICAgICAkTlBlcnNvbmVuTmV1ID0gMDsgJE5QZXJzb25lbkRlYWt0ID0gMDsgJE5QZXJzb25l bkFrdHVhbGlzaWVydCA9IDANCiAgICAgICAgICAgICAgICAgICAgICAgICMgcGxhbnVuZy1QZXJz b25lbi1Mb29rdXAgbmFjaCBpZCAoZnVlciBtYXRjaC1VcGRhdGVzKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgJFBsYW51bmdCeUlkID0gQHt9DQogICAgICAgICAgICAgICAgICAgICAgICBmb3Jl YWNoICgkcCBpbiAkUGVyc29uZW5MaXN0ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydpZCddKSB7ICRQbGFudW5nQnlJZFtbaW50XSRw LmlkXSA9ICRwIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgIGZvcmVhY2ggKCRhIGluICRBa3Rpb25lbikgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRha3QgPSBbc3RyaW5nXSRhLmFrdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkYWt0IC1lcSAnbWF0Y2gnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRlciA9IFtpbnRdJGEuZXhjZWxSb3cNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJG1hdGNoUGlkID0gW2ludF0kYS5wbGFudW5nc0lkDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgU2NoaWNodGVuICsgS29tbWVudGFyZSB3ZXJkZW4gSU1NRVIgaW1wb3J0aWVy dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChhdWNoIGZ1ZXIgaW5ha3RpdmUg UGVyc29uZW4gLSBEYXRlbiB2ZXJmdWVnYmFyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgZmFsbHMgZGllIFBlcnNvbiBzcGFldGVyIHJlYWt0aXZpZXJ0IHdpcmQpLg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVha3QgPSAkZmFsc2UNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3JlYWt0aXZpZXJl biddKSB7ICRyZWFrdCA9IFtib29sXSRhLnJlYWt0aXZpZXJlbiB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRFeGNlbFJvd1RvUGlkWyRlcl0gPSAkbWF0Y2hQaWQNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBFeGNlbC1GZWxkZXIgc3BpZWdlbG4sIGFiZXIgTlVS IGxlZXJlIEZlbGRlciB1ZWJlcnNjaHJlaWJlbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoJEV4Y2VsQnlSb3cuQ29udGFpbnNLZXkoJGVyKSAtYW5kICRQbGFudW5nQnlJZC5D b250YWluc0tleSgkbWF0Y2hQaWQpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkZXAgPSAkRXhjZWxCeVJvd1skZXJdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkdGFyZ2V0ID0gJFBsYW51bmdCeUlkWyRtYXRjaFBpZF0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRnZWFlbmRlcnQgPSAkZmFsc2UNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgUmVha3RpdmllcmVuIE5VUiB3ZW5uIFVzZXIgZXhwbGl6 aXQgYW5nZWZvcmRlcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc3RB a3RpdiA9IC1ub3QgJHRhcmdldC5QU09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddIC1vciAkdGFy Z2V0LmFrdGl2IC1lcSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKC1ub3QgJGlzdEFrdGl2IC1hbmQgJHJlYWt0KSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCR0YXJnZXQuUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYn XSkgeyAkdGFyZ2V0LmFrdGl2ID0gJHRydWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVsc2UgeyAkdGFyZ2V0IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl UHJvcGVydHkgLU5hbWUgJ2FrdGl2JyAtVmFsdWUgJHRydWUgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRnZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yZWFjaCAoJGZlbGQgaW4gQCgnbmFjaG5hbWUnLCAnZGllbnN0Z3JhZCcsICdmdW5rdGlv bicpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ldSA9IGlm ICgkZXAuUFNPYmplY3QuUHJvcGVydGllc1skZmVsZF0pIHsgKFtzdHJpbmddJGVwLiRmZWxkKS5U cmltKCkgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRhbHQgPSBpZiAoJHRhcmdldC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRmZWxkXSkgeyAoW3N0 cmluZ10kdGFyZ2V0LiRmZWxkKS5UcmltKCkgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbmV1IC1hbmQgLW5vdCAkYWx0KSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdGFyZ2V0LlBTT2Jq ZWN0LlByb3BlcnRpZXNbJGZlbGRdKSB7ICR0YXJnZXQuJGZlbGQgPSAkbmV1IH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICR0YXJnZXQgfCBBZGQt TWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkZmVsZCAtVmFsdWUgJG5ldSB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnZWFlbmRlcnQg PSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgTGVnYWN5LUZlbGQgJ25hbWUnIGF1cyBhbHRlbiBEYXRlbnN0YWVuZGVu IGVudGZlcm5lbiAoQXVkaXQtSXRlci1CKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCR0YXJnZXQuUFNPYmplY3QuUHJvcGVydGllc1snbmFtZSddKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmdldC5QU09iamVjdC5Qcm9wZXJ0 aWVzLlJlbW92ZSgnbmFtZScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJGdlYWVuZGVydCA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGdlYWVuZGVydCkg eyAkTlBlcnNvbmVuQWt0dWFsaXNpZXJ0KysgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCRha3QgLWVxICdu ZXUnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlciA9IFtpbnRdJGEuZXhj ZWxSb3cNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJEV4Y2VsQnlS b3cuQ29udGFpbnNLZXkoJGVyKSkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRlcCA9ICRFeGNlbEJ5Um93WyRlcl0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGV4TmFjaCA9IGlmICgkZXAuUFNPYmplY3QuUHJvcGVydGllc1snbmFjaG5hbWUn XSkgeyAkZXAubmFjaG5hbWUgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIFdpemFyZC1SYWRpbyAiaW5ha3RpdiBpbXBvcnRpZXJlbiIgcmVzcGVrdGllcmVu IChBdWRpdC1JdGVyLUIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBa3RpdkZs YWcgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGEuUFNPYmpl Y3QuUHJvcGVydGllc1snYWt0aXYnXSAtYW5kICRudWxsIC1uZSAkYS5ha3Rpdikgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFrdGl2RmxhZyA9IFtib29sXSRhLmFrdGl2 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJE5ldVBlcnNvbiA9IFtQU0N1c3RvbU9iamVjdF1Aew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAkTmV4dElkDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBha3RpdiA9ICRBa3RpdkZsYWcNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvcm5hbWUgPSBpZiAoJGVwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Zv cm5hbWUnXSkgeyAkZXAudm9ybmFtZSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYWNobmFtZSA9ICRleE5hY2gNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRpZW5zdGdyYWQgPSBpZiAoJGVwLlBTT2JqZWN0LlByb3BlcnRpZXNb J2RpZW5zdGdyYWQnXSkgeyAkZXAuZGllbnN0Z3JhZCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5rdGlvbiA9IGlmICgkZXAuUFNPYmplY3QuUHJv cGVydGllc1snZnVua3Rpb24nXSkgeyAkZXAuZnVua3Rpb24gfSBlbHNlIHsgJycgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFt2b2lkXSRQZXJzb25lbkxpc3RlLkFkZCgkTmV1UGVyc29uKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkUGxhbnVuZ0J5SWRbJE5leHRJZF0gPSAkTmV1UGVyc29uDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRFeGNlbFJvd1RvUGlkWyRlcl0gPSAkTmV4dElk DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXh0SWQrKw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkTlBlcnNvbmVuTmV1KysNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2VpZiAoJGFrdCAtZXEgJ2RlYWt0aXZpZXJlbicpIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGRlYWt0SWQgPSBbaW50XSRhLnBsYW51bmdzSWQNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJFBlcnNvbmVuTGlzdGUp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcC5QU09iamVjdC5Q cm9wZXJ0aWVzWydpZCddIC1hbmQgW2ludF0kcC5pZCAtZXEgJGRlYWt0SWQpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGll c1snYWt0aXYnXSkgeyAkcC5ha3RpdiA9ICRmYWxzZSB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWxzZSB7ICRwIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl UHJvcGVydHkgLU5hbWUgJ2FrdGl2JyAtVmFsdWUgJGZhbHNlIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkTlBlcnNvbmVuRGVha3QrKw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICMgU2NoaWNodGVuICsgUGZsaWNodA0KICAgICAgICAgICAgICAg ICAgICAgICAgJE5FaW50cmFlZ2UgPSAwOyAkTlBmbGljaHQgPSAwOyAkTk9ycGhhbiA9IDANCiAg ICAgICAgICAgICAgICAgICAgICAgICMgQXVkaXQtSUktMSBGMTogU2NoaWNodGNvZGUtV2hpdGVs aXN0IGF1Y2ggaW0gRXhjZWwtSW1wb3J0Lg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBNaXJy b3IgenUgc2VydmVyLnB5OjM3NjYtMzc3MC4NCiAgICAgICAgICAgICAgICAgICAgICAgICRFeGNl bFZhbGlkQ29kZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkhhc2hT ZXRbc3RyaW5nXQ0KICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJEV4Y2VsVmFsaWRDb2Rl cy5BZGQoJycpDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRBZG1pbiAt YW5kICRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydzY2hpY2h0Y29kZXMnXSkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRTYyBpbiAkQWRtaW4uc2NoaWNodGNvZGVz KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJFNjIC1h bmQgJFNjLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2NvZGUnXSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW3ZvaWRdJEV4Y2VsVmFsaWRDb2Rlcy5BZGQoW3N0cmluZ10kU2Mu Y29kZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkT3B0U2NoaWNodGVuIC1hbmQgJG51bGwgLW5lICRFeGNlbEVpbnRyYWVn ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCREYXR1bVByb3AgaW4g JEV4Y2VsRWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJERhdHVtID0gJERhdHVtUHJvcC5OYW1lDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLmVpbnRyYWVnZS5QU09iamVjdC5Qcm9w ZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQ bGFudW5nLmVpbnRyYWVnZSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1O YW1lICREYXR1bSAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFj aCAoJFBpZFByb3AgaW4gJERhdHVtUHJvcC5WYWx1ZS5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXIgPSBbaW50XSRQaWRQcm9wLk5h bWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRFeGNlbFJv d1RvUGlkLkNvbnRhaW5zS2V5KCRlcikpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJHBpZFN0ciA9IFtzdHJpbmddJEV4Y2VsUm93VG9QaWRbJGVyXQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdlcnQgPSBbc3RyaW5nXSRQaWRQ cm9wLlZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAk RXhjZWxWYWxpZENvZGVzLkNvbnRhaW5zKCR3ZXJ0KSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICROT3JwaGFuKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmVp bnRyYWVnZS4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skcGlkU3RyXSkgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZS4kRGF0dW0u JHBpZFN0ciA9ICR3ZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmVp bnRyYWVnZS4kRGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFt ZSAkcGlkU3RyIC1WYWx1ZSAkd2VydA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5FaW50cmFlZ2UrKw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEV4Y2Vs UGZsaWNodCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkRGF0 dW1Qcm9wIGluICRFeGNlbFBmbGljaHQuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJERhdHVtID0gJERhdHVtUHJvcC5OYW1lDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5wZmxpY2h0 LlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRQbGFudW5nLnBmbGljaHQgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBl IE5vdGVQcm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJFBpZFByb3AgaW4gJERhdHVtUHJvcC5WYWx1ZS5Q U09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGVyID0gW2ludF0kUGlkUHJvcC5OYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKC1ub3QgJEV4Y2VsUm93VG9QaWQuQ29udGFpbnNLZXkoJGVyKSkg eyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBp ZFN0ciA9IFtzdHJpbmddJEV4Y2VsUm93VG9QaWRbJGVyXQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgkUGlkUHJvcC5WYWx1ZSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGZsaWNodC4kRGF0dW0u UFNPYmplY3QuUHJvcGVydGllc1skcGlkU3RyXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNodC4kRGF0dW0uJHBpZFN0ciA9 ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxh bnVuZy5wZmxpY2h0LiREYXR1bSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5 IC1OYW1lICRwaWRTdHIgLVZhbHVlICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJE5QZmxpY2h0KysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICMgS29tbWVu dGFyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgJE5Lb21tZW50YXJlID0gMA0KICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRPcHRLb21tZW50YXJlIC1hbmQgJG51bGwgLW5lICRFeGNlbEtv bW1lbnRhcmUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkRGF0dW1Q cm9wIGluICRFeGNlbEtvbW1lbnRhcmUuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkRGF0dW0gPSAkRGF0dW1Qcm9wLk5hbWUNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcua29tbWVudGFyZS5QU09i amVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRQbGFudW5nLmtvbW1lbnRhcmUgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ cm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvcmVhY2ggKCRQaWRQcm9wIGluICREYXR1bVByb3AuVmFsdWUuUFNPYmplY3QuUHJvcGVy dGllcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVyID0gW2ludF0k UGlkUHJvcC5OYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5v dCAkRXhjZWxSb3dUb1BpZC5Db250YWluc0tleSgkZXIpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaWRTdHIgPSBbc3RyaW5nXSRFeGNlbFJvd1Rv UGlkWyRlcl0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRLb21PYmogPSBb UFNDdXN0b21PYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXh0ID0gW3N0cmluZ10kUGlkUHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdlYWVuZGVydEFtID0gJEpldHp0DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2VhZW5kZXJ0Vm9uID0gKEdldC1Ba3R1ZWxsZXJCZW51dHpl cikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5rb21tZW50YXJlLiREYXR1bS5QU09i amVjdC5Qcm9wZXJ0aWVzWyRwaWRTdHJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJFBsYW51bmcua29tbWVudGFyZS4kRGF0dW0uJHBpZFN0ciA9ICRLb21PYmoN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcua29tbWVudGFyZS4kRGF0dW0g fCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkcGlkU3RyIC1WYWx1 ZSAkS29tT2JqDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTktvbW1lbnRhcmUrKw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAjIFJlaWhl bmZvbGdlDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJE9wdFJlaWhlbmZvbGdlKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEV4Y2VsT3JkZXJSb3dzID0gQCgkQWt0aW9uZW4g fCBXaGVyZS1PYmplY3QgeyBAKCdtYXRjaCcsJ25ldScpIC1jb250YWlucyAkXy5ha3Rpb24gLWFu ZCAkXy5QU09iamVjdC5Qcm9wZXJ0aWVzWydleGNlbFJvdyddIH0gfCBTb3J0LU9iamVjdCB7IFtp bnRdJF8uZXhjZWxSb3cgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU29ydFBpZHMg PSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3JlYWNoICgkYSBpbiAkRXhjZWxPcmRlclJvd3MpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJGVyID0gW2ludF0kYS5leGNlbFJvdw0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJEV4Y2VsUm93VG9QaWQuQ29udGFpbnNLZXkoJGVy KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNvcnRJZCA9ICRFeGNl bFJvd1RvUGlkWyRlcl0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgt bm90ICRTb3J0UGlkcy5Db250YWlucygkc29ydElkKSkgeyBbdm9pZF0kU29ydFBpZHMuQWRkKCRz b3J0SWQpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQnlJZCA9IEB7 fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRQZXJzb25lbkxp c3RlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcC5QU09iamVjdC5Q cm9wZXJ0aWVzWydpZCddKSB7ICRCeUlkW1tpbnRdJHAuaWRdID0gJHAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV1ZUxpc3Rl ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9yZWFjaCAoJHBlcnNJZCBpbiAkU29ydFBpZHMpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRCeUlkLkNvbnRhaW5zS2V5KCRwZXJzSWQpKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kTmV1ZUxpc3RlLkFk ZCgkQnlJZFskcGVyc0lkXSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC eUlkLlJlbW92ZSgkcGVyc0lkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgUmVzdGxpY2hlIFBlcnNvbmVuOiBha3RpdmUgenVlcnN0DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgJFJlc3RBa3RpdmUgPSBAKCRCeUlkLlZhbHVlcyB8IFdoZXJlLU9iamVjdCB7IC1u b3QgJF8uUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSAtb3IgJF8uYWt0aXYgLWVxICR0cnVl IH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJlc3RJbmFrdGl2ZSA9IEAoJEJ5SWQu VmFsdWVzIHwgV2hlcmUtT2JqZWN0IHsgJF8uUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSAt YW5kICRfLmFrdGl2IC1lcSAkZmFsc2UgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b3JlYWNoICgkcCBpbiAkUmVzdEFrdGl2ZSkgeyBbdm9pZF0kTmV1ZUxpc3RlLkFkZCgkcCkgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRSZXN0SW5ha3RpdmUp IHsgW3ZvaWRdJE5ldWVMaXN0ZS5BZGQoJHApIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjICdwb3NpdGlvbicgZm9ydGxhdWZlbmQgbmV1IHZlcmdlYmVuIChGcm9udGVuZCBzb3J0aWVy dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmFjaCBwLnBvc2l0aW9uLCBOSUNIVCBu YWNoIEFycmF5LVJlaWhlbmZvbGdlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwb3ND b3VudGVyID0gMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRO ZXVlTGlzdGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ3Bvc2l0aW9uJ10pIHsgJHAucG9zaXRpb24gPSAkcG9zQ291bnRlciB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkcCB8IEFkZC1NZW1iZXIg LU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdwb3NpdGlvbicgLVZhbHVlICRwb3NDb3Vu dGVyIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBvc0NvdW50ZXIrKw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAk UGxhbnVuZy5wZXJzb25lbiA9IEAoJE5ldWVMaXN0ZSkNCiAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBdWNoIG9obmUgUmVpaGVu Zm9sZ2UtVXBkYXRlOiBuZXVlIFBlcnNvbmVuIGJyYXVjaGVuICdwb3NpdGlvbicNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkbWF4UG9zID0gMA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvcmVhY2ggKCRwIGluICRQZXJzb25lbkxpc3RlKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydwb3NpdGlvbiddKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHAgPSBbaW50XSgkcC5wb3NpdGlv biB8IEZvckVhY2gtT2JqZWN0IHsgaWYgKCRfKSB7ICRfIH0gZWxzZSB7IDAgfSB9KQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwcCAtZ3QgJG1heFBvcykgeyAkbWF4 UG9zID0gJHBwIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNo ICgkcCBpbiAkUGVyc29uZW5MaXN0ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkaGF0UG9zID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk cC5QU09iamVjdC5Qcm9wZXJ0aWVzWydwb3NpdGlvbiddIC1hbmQgJHAucG9zaXRpb24pIHsgJGhh dFBvcyA9ICR0cnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3Qg JGhhdFBvcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1heFBvcysr DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJv cGVydGllc1sncG9zaXRpb24nXSkgeyAkcC5wb3NpdGlvbiA9ICRtYXhQb3MgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRwIHwgQWRkLU1lbWJlciAtTWVtYmVy VHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3Bvc2l0aW9uJyAtVmFsdWUgJG1heFBvcyB9DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGVyc29uZW4gPSBAKCRQ ZXJzb25lbkxpc3RlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgICAgICAgICAjIC0tLS0gVGFnZXNkYXRlbiAvIFNjaGljaHRyb3RhdGlvbiBhdXMgRXhjZWwt UjQtUjkgLS0tLQ0KICAgICAgICAgICAgICAgICAgICAgICAgJE5Sb3RhdGlvblNsb3RzID0gMA0K ICAgICAgICAgICAgICAgICAgICAgICAgJE5UYWdlc2RhdGVuT3ZlcnJpZGVzID0gMA0KICAgICAg ICAgICAgICAgICAgICAgICAgJEFkbWluTXV0YXRlZCA9ICRudWxsDQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJE9wdFRhZ2VzZGF0ZW4gLWFuZCAkbnVsbCAtbmUgJEV4Y2VsVGFnZXNkYXRl bikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0ZFByb3BzID0gQCgkRXhjZWxUYWdl c2RhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCR0ZFByb3BzLkNvdW50IC1ndCAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRzb3J0ZWREYXRlcyA9IEAoJHRkUHJvcHMgfCBGb3JFYWNoLU9iamVjdCB7ICRfLk5hbWUg fSB8IFNvcnQtT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJzdGVz RCA9IFtkYXRldGltZV06OlBhcnNlRXhhY3QoJHNvcnRlZERhdGVzWzBdLCAneXl5eS1NTS1kZCcs ICRudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZG93ID0gW2ludF0kZXJz dGVzRC5EYXlPZldlZWsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRkb3cg LWVxIDApIHsgJG9mZnNldE1vID0gMSB9IGVsc2UgeyAkb2Zmc2V0TW8gPSAoOCAtICRkb3cpICUg NyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb0lkeCA9ICRvZmZzZXRNbw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd29jaGVuQW56YWhsID0gMw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkc2xvdENvdW50ID0gJHdvY2hlbkFuemFobCAqIDcN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRtb0lkeCArICRzbG90Q291bnQg LWxlICRzb3J0ZWREYXRlcy5Db3VudCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJHJvdGF0aW9uc1RhZ2UgPSBAKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvciAoJGkgPSAwOyAkaSAtbHQgJHNsb3RDb3VudDsgJGkrKykgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyb3RhdGlvbnNUYWdlICs9ICRFeGNlbFRh Z2VzZGF0ZW4uKCRzb3J0ZWREYXRlc1skbW9JZHggKyAkaV0pDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk QWRtaW5NdXRhdGVkID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEFkbWluTXV0YXRlZCkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRBZG1pbk11dGF0 ZWQuUFNPYmplY3QuUHJvcGVydGllc1sndGFnZXNkYXRlblJvdGF0aW9uJ10pIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFkbWluTXV0YXRlZCB8IEFkZC1N ZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICd0YWdlc2RhdGVuUm90YXRpb24n IC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JHJvdCA9ICRBZG1pbk11dGF0ZWQudGFnZXNkYXRlblJvdGF0aW9uDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJHJvdFN0YXJ0SXNvID0gJHNvcnRlZERhdGVzWyRtb0lk eF0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJvdC5QU09i amVjdC5Qcm9wZXJ0aWVzWyd3b2NoZW5BbnphaGwnXSkgeyAkcm90LndvY2hlbkFuemFobCA9ICR3 b2NoZW5BbnphaGwgfSBlbHNlIHsgJHJvdCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICd3b2NoZW5BbnphaGwnIC1WYWx1ZSAkd29jaGVuQW56YWhsIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJvdC5QU09iamVjdC5Qcm9w ZXJ0aWVzWydzdGFydERhdHVtJ10pIHsgJHJvdC5zdGFydERhdHVtID0gJHJvdFN0YXJ0SXNvIH0g ZWxzZSB7ICRyb3QgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAn c3RhcnREYXR1bScgLVZhbHVlICRyb3RTdGFydElzbyB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCRyb3QuUFNPYmplY3QuUHJvcGVydGllc1sndGFnZSddKSB7 ICRyb3QudGFnZSA9IEAoJHJvdGF0aW9uc1RhZ2UpIH0gZWxzZSB7ICRyb3QgfCBBZGQtTWVtYmVy IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAndGFnZScgLVZhbHVlIEAoJHJvdGF0aW9u c1RhZ2UpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTlJvdGF0 aW9uU2xvdHMgPSAkc2xvdENvdW50DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIE92ZXJyaWRlLVBydWVmdW5nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sndGFnZXNk YXRlbiddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQ bGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3RhZ2Vz ZGF0ZW4nIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGFsdGVQcm9wcyA9IEAoJFBsYW51bmcudGFnZXNkYXRlbi5QU09iamVjdC5Qcm9wZXJ0 aWVzIHwgV2hlcmUtT2JqZWN0IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJF8uVmFsdWUuUFNPYmplY3QuUHJvcGVydGllc1snX3NyYyddIC1hbmQgJF8uVmFs dWUuX3NyYyAtZXEgJ2V4Y2VsJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAo JHByIGluICRhbHRlUHJvcHMpIHsgJFBsYW51bmcudGFnZXNkYXRlbi5QU09iamVjdC5Qcm9wZXJ0 aWVzLlJlbW92ZSgkcHIuTmFtZSkgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHJvdFN0YXJ0RCA9IFtkYXRldGltZV06OlBhcnNlRXhhY3QoJHJvdFN0YXJ0SXNv LCAneXl5eS1NTS1kZCcsICRudWxsKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvcmVhY2ggKCRwcm9wIGluICR0ZFByb3BzKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRkYXR1bUlzbyA9ICRwcm9wLk5hbWUNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRkID0gJHByb3AuVmFsdWUNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhdHVtRCA9IFtkYXRl dGltZV06OlBhcnNlRXhhY3QoJGRhdHVtSXNvLCAneXl5eS1NTS1kZCcsICRudWxsKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGlmZkRheXMgPSAoJGRhdHVt RCAtICRyb3RTdGFydEQpLkRheXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGlzdE92ZXJyaWRlID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgkZGlmZkRheXMgLWx0IDApIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc3RPdmVycmlkZSA9ICR0cnVlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2xvdElkeCA9ICRk aWZmRGF5cyAlICRzbG90Q291bnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRzbG90VGQgPSAkcm90YXRpb25zVGFnZVskc2xvdElkeF0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqc29uVGQgPSAkdGQgfCBD b252ZXJ0VG8tSnNvbiAtQ29tcHJlc3MgLURlcHRoIDYNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRqc29uU2xvdCA9ICRzbG90VGQgfCBDb252ZXJ0VG8t SnNvbiAtQ29tcHJlc3MgLURlcHRoIDYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICgkanNvblRkIC1uZSAkanNvblNsb3QpIHsgJGlzdE92ZXJyaWRl ID0gJHRydWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaXN0T3Zl cnJpZGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICR0ZE1hcmtlZCA9ICR0ZCB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA2IHwgQ29udmVydEZyb20t SnNvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRk TWFya2VkIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ19zcmMn IC1WYWx1ZSAnZXhjZWwnIC1Gb3JjZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLnRhZ2VzZGF0ZW4uUFNPYmplY3QuUHJvcGVydGll c1skZGF0dW1Jc29dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJFBsYW51bmcudGFnZXNkYXRlbi4kZGF0dW1Jc28gPSAkdGRNYXJrZWQNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51 bmcudGFnZXNkYXRlbiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1l ICRkYXR1bUlzbyAtVmFsdWUgJHRkTWFya2VkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkTlRhZ2VzZGF0ZW5PdmVycmlkZXMrKw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAg ICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQgJFBsYW51bmcgICAjIEJ1bGstT3A6IGFsbGUg SE1BQ3MgbmV1DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBAew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHR5cCA9ICdvaycNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiYWNrdXAgPSAkQmFja3VwTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNv bmVuTmV1ID0gJE5QZXJzb25lbk5ldQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNv bmVuQWt0dWFsaXNpZXJ0ID0gJE5QZXJzb25lbkFrdHVhbGlzaWVydA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBlcnNvbmVuRGVha3RpdmllcnQgPSAkTlBlcnNvbmVuRGVha3QNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlaW50cmFlZ2UgPSAkTkVpbnRyYWVnZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBmbGljaHQgPSAkTlBmbGljaHQNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrb21tZW50YXJlID0gJE5Lb21tZW50YXJlDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5iZWthbm50ZUNvZGVzID0gJE5PcnBoYW4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICByb3RhdGlvblNsb3RzID0gJE5Sb3RhdGlvblNsb3RzDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGFnZXNkYXRlbk92ZXJyaWRlcyA9ICROVGFnZXNkYXRlbk92ZXJyaWRlcw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkbWluTXV0YXRlZCA9ICRBZG1pbk11dGF0ZWQN CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMg IlVlYmVybmFobWUtRmVobGVyOiAkXyIgNTAwOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgIGlmICgkTG9ja1Jlc3VsdC50eXAgLWVxICdlcnJvcicpIHsgU2Vu ZC1FcnJvciAkUmVzICRMb2NrUmVzdWx0Lm1zZyAkTG9ja1Jlc3VsdC5jb2RlOyBjb250aW51ZSB9 DQoNCiAgICAgICAgICAgICAgICAjIFNvbmRlcnRlcm1pbmUgc2VwYXJhdCBpbiBhZG1pbi5qc29u IHNjaHJlaWJlbiAoa2VpbiBITUFDKS4NCiAgICAgICAgICAgICAgICAjIEVyc3QgYWxsZSB2b3Jo YW5kZW5lbiAnc3RfZXhjZWxfJy1FaW50cmFlZ2UgbG9lc2NoZW4sIGRhbm4gbmV1ZQ0KICAgICAg ICAgICAgICAgICMgYW5sZWdlbiAtIHNvZGFzcyBSZS1JbXBvcnQgaWRlbXBvdGVudCBpc3QgdW5k IG5pY2h0IGRvcHBlbHQuDQogICAgICAgICAgICAgICAgIyBVc2VyLVZvcmdhYmUgKEF1ZGl0LUl0 ZXItRCwgc3luYyBtaXQgc2VydmVyLnB5OjM4MjcpOiBFeGNlbC1aZWlsZQ0KICAgICAgICAgICAg ICAgICMgKDI1LTI5KSB3aXJkIE5JQ0hUIG1laHIgYWxzIEthdGVnb3JpZSBhdXNnZXdlcnRldCAt IGFsbGUgVGVybWluZQ0KICAgICAgICAgICAgICAgICMgc2luZCAnaGlud2VpcycgbWl0IEljb24g J2luZm8nLCBVc2VyIGtsYXNzaWZpemllcnQgc3BhZXRlciBtYW51ZWxsDQogICAgICAgICAgICAg ICAgIyBpbSBUZXJtaW5lLVRhYi4gUmUtSW1wb3J0IGJsZWlidCBkYW1pdCBzdHJ1a3R1ci1zdGFi aWwuDQogICAgICAgICAgICAgICAgJE5UZXJtaW5lID0gMA0KICAgICAgICAgICAgICAgIGlmICgk T3B0U29uZGVydGVybWluZSkgew0KICAgICAgICAgICAgICAgICAgICAkQWRtaW4gPSBpZiAoJG51 bGwgLW5lICRMb2NrUmVzdWx0LmFkbWluTXV0YXRlZCkgeyAkTG9ja1Jlc3VsdC5hZG1pbk11dGF0 ZWQgfSBlbHNlIHsgUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicgfQ0KICAgICAgICAgICAgICAg ICAgICBpZiAoJG51bGwgLW5lICRBZG1pbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYg KC1ub3QgJEFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NvbmRlcnRlcm1pbmUnXSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRBZG1pbiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUg Tm90ZVByb3BlcnR5IC1OYW1lICdzb25kZXJ0ZXJtaW5lJyAtVmFsdWUgQCgpDQogICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAjIEFsdGUgRXhjZWwtSW1w b3J0ZSBmaWx0ZXJuDQogICAgICAgICAgICAgICAgICAgICAgICAkU3RMaXN0ZSA9IE5ldy1PYmpl Y3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICAgICAgICAg Zm9yZWFjaCAoJHMgaW4gQCgkQWRtaW4uc29uZGVydGVybWluZSkpIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkc2lkID0gaWYgKCRzLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2lkJ10pIHsg W3N0cmluZ10kcy5pZCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKC1ub3QgJHNpZC5TdGFydHNXaXRoKCdzdF9leGNlbF8nKSkgeyBbdm9pZF0kU3RMaXN0ZS5B ZGQoJHMpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkbnVsbCAtbmUgJEV4Y2VsVGVybWluZSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvcmVhY2ggKCREYXR1bVByb3AgaW4gJEV4Y2VsVGVybWluZS5QU09iamVjdC5Qcm9w ZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXR1bSA9ICREYXR1 bVByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkdCBp biBAKCREYXR1bVByb3AuVmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkaXN0U2tpcCA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCR0LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NraXAnXSkgeyAkaXN0U2tpcCA9IFtib29s XSR0LnNraXAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpc3RT a2lwKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0 aXRlbCA9IGlmICgkdC5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0aXRlbCddKSB7IChbc3RyaW5nXSR0 LnRpdGVsKS5UcmltKCkgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHRleHQgPSBpZiAoJHQuUFNPYmplY3QuUHJvcGVydGllc1sndGV4dCddKSB7IChb c3RyaW5nXSR0LnRleHQpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkdGl0ZWwgLWFuZCAtbm90ICR0ZXh0KSB7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICR0aXRl bCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnN0ZSA9ICgk dGV4dCAtc3BsaXQgImBuIiwgMilbMF0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkdGl0ZWwgPSBpZiAoJGVyc3RlLkxlbmd0aCAtZ3QgNjApIHsgJGVyc3RlLlN1YnN0 cmluZygwLCA2MCkgfSBlbHNlIHsgJGVyc3RlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgUmFuZG9t LUhleC1JRCBhbmFsb2cgenUgUHl0aG9uIHNlY3JldHMudG9rZW5faGV4KDYpIC0gMTIgSGV4LVpl aWNoZW4uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmFuZEhleCA9IFtn dWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCdOJykuU3Vic3RyaW5nKDAsIDEyKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ldSA9IFtQU0N1c3RvbU9iamVjdF1Aew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJ3N0X2V4Y2VsXycgKyAk UmFuZEhleA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdHVtID0g JERhdHVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0ZWwgPSAk dGl0ZWwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gJHRl eHQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gJ2luZm8n ICAgICAgICAjIGdlbmVyaXNjaGVzIEhpbndlaXMtSWNvbiwgS0VJTiBFbW9qaQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cCA9ICdoaW53ZWlzJw0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgS0VJTiAna2F0ZWdvcmllJy1GZWxkIC0g RXhjZWwtWmVpbGVuLU1hcHBpbmcgd2lyZCBpZ25vcmllcnQNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2 b2lkXSRTdExpc3RlLkFkZCgkTmV1KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJE5UZXJtaW5lKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICRBZG1pbi5zb25kZXJ0ZXJtaW5lID0gQCgkU3RMaXN0ZSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5qc29uJyAkQWRtaW4N CiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkbnVsbCAt bmUgJExvY2tSZXN1bHQuYWRtaW5NdXRhdGVkIC1hbmQgJExvY2tSZXN1bHQucm90YXRpb25TbG90 cyAtZ3QgMCkgew0KICAgICAgICAgICAgICAgICAgICAjIFRhZ2VzZGF0ZW4gaGF0IEFkbWluIG11 dGllcnQsIGFiZXIga2VpbiBTb25kZXJ0ZXJtaW5lLUJsb2NrIGhhdCBnZXNjaHJpZWJlbi4NCiAg ICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24nICRMb2NrUmVzdWx0 LmFkbWluTXV0YXRlZA0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICMgQXV0 by1Sb2xsZW4tU3luYyBuYWNoIEV4Y2VsLUltcG9ydCAobmV1ZSBQZXJzb25lbiBtaXQgREdMLzEu RUIvMS5FQiBWLiAtPiBMaXN0ZW4pDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAg ICAgICAgICAgJFBsYW51bmdGdWVyU3luYyA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicN CiAgICAgICAgICAgICAgICAgICAgJEFkbWluRnVlclN5bmMgPSBSZWFkLUpzb25GaWxlICdhZG1p bi5qc29uJw0KICAgICAgICAgICAgICAgICAgICBpZiAoU3luYy1Sb2xsZW5BdXNQZXJzb25lbiAk UGxhbnVuZ0Z1ZXJTeW5jICRBZG1pbkZ1ZXJTeW5jKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluRnVlclN5bmMNCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggeyBXcml0ZS1XYXJuaW5nICJSb2xs ZW4tU3luYyBuYWNoIEV4Y2VsLUltcG9ydCBmZWhsZ2VzY2hsYWdlbjogJF8iIH0NCg0KICAgICAg ICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2V4Y2VsLmltcG9ydGllcnQnIEB7DQogICAgICAg ICAgICAgICAgICAgIGJhY2t1cCA9ICRMb2NrUmVzdWx0LmJhY2t1cA0KICAgICAgICAgICAgICAg ICAgICBwZXJzb25lbk5ldSA9ICRMb2NrUmVzdWx0LnBlcnNvbmVuTmV1DQogICAgICAgICAgICAg ICAgICAgIHBlcnNvbmVuQWt0dWFsaXNpZXJ0ID0gJExvY2tSZXN1bHQucGVyc29uZW5Ba3R1YWxp c2llcnQNCiAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5EZWFrdGl2aWVydCA9ICRMb2NrUmVz dWx0LnBlcnNvbmVuRGVha3RpdmllcnQNCiAgICAgICAgICAgICAgICAgICAgZWludHJhZWdlID0g JExvY2tSZXN1bHQuZWludHJhZWdlDQogICAgICAgICAgICAgICAgICAgIHBmbGljaHQgPSAkTG9j a1Jlc3VsdC5wZmxpY2h0DQogICAgICAgICAgICAgICAgICAgIGtvbW1lbnRhcmUgPSAkTG9ja1Jl c3VsdC5rb21tZW50YXJlDQogICAgICAgICAgICAgICAgICAgIHVuYmVrYW5udGVDb2RlcyA9ICRM b2NrUmVzdWx0LnVuYmVrYW5udGVDb2Rlcw0KICAgICAgICAgICAgICAgICAgICBzb25kZXJ0ZXJt aW5lID0gJE5UZXJtaW5lDQogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uU2xvdHMgPSAkTG9j a1Jlc3VsdC5yb3RhdGlvblNsb3RzDQogICAgICAgICAgICAgICAgICAgIHRhZ2VzZGF0ZW5PdmVy cmlkZXMgPSAkTG9ja1Jlc3VsdC50YWdlc2RhdGVuT3ZlcnJpZGVzDQogICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAgICAgICAgICAgICAg ICAgc3RhdHVzID0gJ29rJw0KICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSAkTG9ja1Jlc3Vs dC5iYWNrdXANCiAgICAgICAgICAgICAgICAgICAgYW56YWhsID0gQHsNCiAgICAgICAgICAgICAg ICAgICAgICAgIHBlcnNvbmVuTmV1ID0gJExvY2tSZXN1bHQucGVyc29uZW5OZXUNCiAgICAgICAg ICAgICAgICAgICAgICAgIHBlcnNvbmVuQWt0dWFsaXNpZXJ0ID0gJExvY2tSZXN1bHQucGVyc29u ZW5Ba3R1YWxpc2llcnQNCiAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNvbmVuRGVha3Rpdmll cnQgPSAkTG9ja1Jlc3VsdC5wZXJzb25lbkRlYWt0aXZpZXJ0DQogICAgICAgICAgICAgICAgICAg ICAgICBlaW50cmFlZ2UgPSAkTG9ja1Jlc3VsdC5laW50cmFlZ2UNCiAgICAgICAgICAgICAgICAg ICAgICAgIHBmbGljaHQgPSAkTG9ja1Jlc3VsdC5wZmxpY2h0DQogICAgICAgICAgICAgICAgICAg ICAgICBrb21tZW50YXJlID0gJExvY2tSZXN1bHQua29tbWVudGFyZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgdW5iZWthbm50ZUNvZGVzID0gJExvY2tSZXN1bHQudW5iZWthbm50ZUNvZGVzDQog ICAgICAgICAgICAgICAgICAgICAgICBzb25kZXJ0ZXJtaW5lID0gJE5UZXJtaW5lDQogICAgICAg ICAgICAgICAgICAgICAgICByb3RhdGlvblNsb3RzID0gJExvY2tSZXN1bHQucm90YXRpb25TbG90 cw0KICAgICAgICAgICAgICAgICAgICAgICAgdGFnZXNkYXRlbk92ZXJyaWRlcyA9ICRMb2NrUmVz dWx0LnRhZ2VzZGF0ZW5PdmVycmlkZXMNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICBEZWJ1Zy1Mb2cgJ0FQSScgIlBPU1QgL2FwaS9pbXBv cnQvZXhjZWwvdWViZXJuZWhtZW4gLT4gJCgkTG9ja1Jlc3VsdC5laW50cmFlZ2UpIEVpbnRyYWVn ZSwgJCgkTG9ja1Jlc3VsdC5rb21tZW50YXJlKSBLb21tZW50YXJlLCAkTlRlcm1pbmUgVGVybWlu ZSwgQmFja3VwOiAkKCRMb2NrUmVzdWx0LmJhY2t1cCkiDQogICAgICAgICAgICAgICAgY29udGlu dWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0g TE9HQlVDSCA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEg Jy9hcGkvbG9nYnVjaCcgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAg ICMgQWRtaW4tR3VhcmQ6IExvZ2J1Y2ggZW50aGFlbHQgcGVyc29uZW5iZXpvZ2VuZSBEYXRlbg0K ICAgICAgICAgICAgICAgICMgKFNjaGljaHRhZW5kZXJ1bmdlbiBwcm8gVXNlciBtaXQgYWx0ZW0v bmV1ZW0gV2VydCkuIEltDQogICAgICAgICAgICAgICAgIyBGcm9udGVuZCBudXIgZnVlciBTdXBl clVzZXIgb2RlciBBZG1pbiBzaWNodGJhcg0KICAgICAgICAgICAgICAgICMgKGRhcmZMb2didWNo VGFiKCkgaW4ganMvY29yZS9wZXJtaXNzaW9ucy5qczoyNTMpLiBNaXJyb3INCiAgICAgICAgICAg ICAgICAjIHp1IHNlcnZlci5weToyMTM0LTIxMzkuDQogICAgICAgICAgICAgICAgaWYgKC1ub3Qg KFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0 MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkTG9nUGF0aCA9IEpvaW4tUGF0aCAkRGF0 YURpciAnbG9nYnVjaC5qc29uJw0KICAgICAgICAgICAgICAgICRFaW50cmFlZ2UgPSBAKCkNCiAg ICAgICAgICAgICAgICBpZiAoVGVzdC1QYXRoICRMb2dQYXRoKSB7DQogICAgICAgICAgICAgICAg ICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkTG9nQ29udGVudCA9IFtTeXN0ZW0u SU8uRmlsZV06OlJlYWRBbGxUZXh0KCRMb2dQYXRoLCBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpV VEY4KS5UcmltKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkTG9nQ29udGVudC5MZW5n dGggLWd0IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGFyc2VkID0gJExvZ0Nv bnRlbnQgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCRudWxsIC1uZSAkUGFyc2VkKSB7ICRFaW50cmFlZ2UgPSBAKCRQYXJzZWQpIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAg ICAgICAgICAgICAgICAgICBXcml0ZS1TdGFydHVwTG9nICJMb2didWNoLVJlYWQtRmVobGVyOiAk XyAtLSBsaWVmZXJlIGxlZXJlIExpc3RlIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICMgUFMgNS4xIHVud3JhcHBlZCBAKCkgdW5kIFNp bmdsZS1FbGVtZW50LUFycmF5cyBpbiBDb252ZXJ0VG8tSnNvbiAtLQ0KICAgICAgICAgICAgICAg ICMgZGFoZXIgU29uZGVycGZhZGUuIEZyb250ZW5kIGVyd2FydGV0IGltbWVyIGVpbiBKU09OLUFy cmF5Lg0KICAgICAgICAgICAgICAgIGlmICgkRWludHJhZWdlLkNvdW50IC1lcSAwKSB7DQogICAg ICAgICAgICAgICAgICAgIFNlbmQtSnNvblJhdyAkUmVzICdbXScNCiAgICAgICAgICAgICAgICB9 IGVsc2VpZiAoJEVpbnRyYWVnZS5Db3VudCAtZXEgMSkgew0KICAgICAgICAgICAgICAgICAgICBT ZW5kLUpzb25SYXcgJFJlcyAoJ1snICsgKENvbnZlcnRUby1Kc29uIC1JbnB1dE9iamVjdCAkRWlu dHJhZWdlWzBdIC1EZXB0aCAyNSAtQ29tcHJlc3MpICsgJ10nKQ0KICAgICAgICAgICAgICAgIH0g ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvblJhdyAkUmVzIChDb252ZXJ0VG8t SnNvbiAtSW5wdXRPYmplY3QgJEVpbnRyYWVnZSAtRGVwdGggMjUgLUNvbXByZXNzKQ0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBNRURJRU46IExpc3RlID09PT09PT09 PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9tZWRpZW4nIC1h bmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICAjIEJlaW0gZXJzdGVuIEF1 ZnJ1ZiBTeXN0ZW0tTWVkaWVuIGF1cyAvaW1hZ2VzLyBlaW5tYWxpZyBpbXBvcnRpZXJlbi4NCiAg ICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICBJbnZva2UtV2l0aEZpbGVM b2NrICdtZWRpZW4uanNvbicgeyBJbnZva2UtTWVkaWVuU3lzdGVtSW1wb3J0RmFsbHNOb2V0aWcg fCBPdXQtTnVsbCB9IHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAg ICAgICAgICAgICAgICAgRGVidWctTG9nICdBUEknICJzeXN0ZW0taW1wb3J0IHNraXBwZWQ6ICRf Ig0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkTWV0YSA9IFJlYWQtTWVkaWVu TWV0YQ0KICAgICAgICAgICAgICAgICRNZWRpZW5MaXN0ZSA9IGlmICgkTWV0YS5tZWRpZW4pIHsg QCgkTWV0YS5tZWRpZW4pIH0gZWxzZSB7IEAoKSB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29u ICRSZXMgQHsgbWVkaWVuID0gJE1lZGllbkxpc3RlOyBrYXRlZ29yaWVuID0gKEdldC1NZWRpZW5L YXRlZ29yaWVLZXlzKSB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gTUVESUVOOiBEYXRlaSBhdXNs aWVmZXJuID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoLlN0YXJ0 c1dpdGgoJy9hcGkvbWVkaWVuL2RhdGVpLycpIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAg ICAgICAgICAgICAgICAkTWlkID0gJFBhdGguU3Vic3RyaW5nKCRQYXRoLkxhc3RJbmRleE9mKCcv JykgKyAxKQ0KICAgICAgICAgICAgICAgICRNZXRhID0gUmVhZC1NZWRpZW5NZXRhDQogICAgICAg ICAgICAgICAgJEVpbnRyYWcgPSAkbnVsbA0KICAgICAgICAgICAgICAgIGlmICgkTWV0YS5tZWRp ZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJG0gaW4gQCgkTWV0YS5tZWRpZW4p KSB7IGlmICgkbS5pZCAtZXEgJE1pZCkgeyAkRWludHJhZyA9ICRtOyBicmVhayB9IH0NCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkRWludHJhZykgeyBT ZW5kLUVycm9yICRSZXMgJ05pY2h0IGdlZnVuZGVuJyA0MDQ7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAkRGF0ZWkgPSBHZXQtTWVkaWVuUGZhZCAkRWludHJhZw0KICAgICAgICAgICAgICAg IGlmICgtbm90IChUZXN0LVBhdGggJERhdGVpKSkgeyBTZW5kLUVycm9yICRSZXMgJ0RhdGVpIG5p Y2h0IHZvcmhhbmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgU2VuZC1GaWxl ICRSZXMgJERhdGVpDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gTUVESUVOOiBVcGxvYWQgKEJhc2U2 NC1KU09OKSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEg Jy9hcGkvbWVkaWVuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAg IGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIgU3Vw ZXJVc2VyIGRhcmYgTWVkaWVuIGhvY2hsYWRlbicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAg ICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAt ZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICB0cnkgeyAkQSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNv biB9IGNhdGNoIHsgU2VuZC1FcnJvciAkUmVzICdVbmd1ZWx0aWdlcyBKU09OJyA0MDA7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAkS2F0ZWdvcmllID0gKFtzdHJpbmddJEEua2F0ZWdvcmll KS5Ub0xvd2VyKCkuVHJpbSgpDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKChHZXQtTWVkaWVu S2F0ZWdvcmllS2V5cykgLWNvbnRhaW5zICRLYXRlZ29yaWUpKSB7IFNlbmQtRXJyb3IgJFJlcyAn VW5ndWVsdGlnZSBLYXRlZ29yaWUnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRN aW1lID0gKFtzdHJpbmddJEEubWltZVR5cGUpLlRvTG93ZXIoKS5UcmltKCkNCiAgICAgICAgICAg ICAgICBpZiAoLW5vdCAkc2NyaXB0Ok1lZGllbkVybGF1YnRlTWltZXMuQ29udGFpbnNLZXkoJE1p bWUpKSB7IFNlbmQtRXJyb3IgJFJlcyAnRGF0ZWl0eXAgbmljaHQgZXJsYXVidCcgNDAwOyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgJEJlemVpY2hudW5nID0gKFtzdHJpbmddJEEuYmV6ZWlj aG51bmcpLlRyaW0oKQ0KICAgICAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0 ZVNwYWNlKCRCZXplaWNobnVuZykpIHsgU2VuZC1FcnJvciAkUmVzICdCZXplaWNobnVuZyBmZWhs dCcgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJERhdGFCNjQgPSBpZiAoJEEuZGF0 YSkgeyBbc3RyaW5nXSRBLmRhdGEgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgIGlmICgk RGF0YUI2NC5TdGFydHNXaXRoKCdkYXRhOicpKSB7DQogICAgICAgICAgICAgICAgICAgICRpZHgg PSAkRGF0YUI2NC5JbmRleE9mKCcsJykNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRpZHggLWdl IDApIHsgJERhdGFCNjQgPSAkRGF0YUI2NC5TdWJzdHJpbmcoJGlkeCArIDEpIH0NCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgdHJ5IHsgJFJvaEJ5dGVzID0gW1N5c3RlbS5Db252 ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygkRGF0YUI2NCkgfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJl cyAnQmFzZTY0IHVuZ3VlbHRpZycgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgaWYg KCRSb2hCeXRlcy5MZW5ndGggLWd0ICRzY3JpcHQ6TWVkaWVuTWF4Qnl0ZXMpIHsNCiAgICAgICAg ICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICJEYXRlaSB6dSBncm9zcyAobWF4ICQoW01hdGhd OjpGbG9vcigkc2NyaXB0Ok1lZGllbk1heEJ5dGVzIC8gMU1CKSkgTUIpIiA0MTM7IGNvbnRpbnVl DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRFeHQgPSAkc2NyaXB0Ok1lZGll bkVybGF1YnRlTWltZXNbJE1pbWVdDQogICAgICAgICAgICAgICAgJE1pZCA9IE5ldy1NZWRpZW5J ZA0KICAgICAgICAgICAgICAgICMgUm91dGluZzogV2VubiBJbWFnZXMvPGthdD4vIGFscyBEaXNr LU9yZG5lciBleGlzdGllcnQgLT4gZG9ydCBoaW5zY2hyZWliZW4NCiAgICAgICAgICAgICAgICAj IG1pdCBzYW5pdGlzaWVydGVtIE9yaWdpbmFsLURhdGVpbmFtZW4gKyBgcGZhZGAgaW0gRWludHJh ZyBzZXR6ZW4uDQogICAgICAgICAgICAgICAgIyBTb25zdCBGYWxsYmFjayBhdWYgZGF0YS9tZWRp ZW4vPGthdD4vPGlkPi48ZXh0Pi4NCiAgICAgICAgICAgICAgICAkSW1hZ2VzRGlyID0gR2V0LU1l ZGllbkltYWdlc09yZG5lciAkS2F0ZWdvcmllDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1u ZSAkSW1hZ2VzRGlyKSB7DQogICAgICAgICAgICAgICAgICAgICRVcGxvYWROYW1lID0gaWYgKCRB LmRhdGVpbmFtZSkgeyBbc3RyaW5nXSRBLmRhdGVpbmFtZSB9IGVsc2UgeyAkQmV6ZWljaG51bmcg fQ0KICAgICAgICAgICAgICAgICAgICAkQmFzZSA9IEdldC1NZWRpZW5CYXNlbmFtZUF1c1VwbG9h ZCAkVXBsb2FkTmFtZQ0KICAgICAgICAgICAgICAgICAgICAkWmllbCA9IEdldC1NZWRpZW5GcmVp ZXJEYXRlaW5hbWUgJEltYWdlc0RpciAkQmFzZSAkRXh0DQogICAgICAgICAgICAgICAgICAgIFtT eXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJFppZWwsICRSb2hCeXRlcykNCiAgICAgICAg ICAgICAgICAgICAgJFppZWxOYW1lID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RmlsZU5hbWUoJFpp ZWwpDQogICAgICAgICAgICAgICAgICAgICRFaW50cmFnID0gW29yZGVyZWRdQHsNCiAgICAgICAg ICAgICAgICAgICAgICAgIGlkID0gJE1pZA0KICAgICAgICAgICAgICAgICAgICAgICAga2F0ZWdv cmllID0gJEthdGVnb3JpZQ0KICAgICAgICAgICAgICAgICAgICAgICAgYmV6ZWljaG51bmcgPSAk QmV6ZWljaG51bmcNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVpbmFtZSA9ICRaaWVsTmFt ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgbWltZVR5cGUgPSAkTWltZQ0KICAgICAgICAgICAg ICAgICAgICAgICAgZ3JvZXNzZSA9ICRSb2hCeXRlcy5MZW5ndGgNCiAgICAgICAgICAgICAgICAg ICAgICAgIHBmYWQgPSAnL2ltYWdlcy8nICsgJEthdGVnb3JpZSArICcvJyArICRaaWVsTmFtZQ0K ICAgICAgICAgICAgICAgICAgICAgICAgaG9jaGdlbGFkZW5BbSA9IChHZXQtRGF0ZSAtRm9ybWF0 ICd5eXl5LU1NLWRkIEhIOm1tOnNzJykNCiAgICAgICAgICAgICAgICAgICAgICAgIGhvY2hnZWxh ZGVuVm9uID0gKEdldC1Ba3R1ZWxsZXJCZW51dHplcikNCiAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRLYXREaXIgPSBK b2luLVBhdGggKEdldC1NZWRpZW5EaXIpICRLYXRlZ29yaWUNCiAgICAgICAgICAgICAgICAgICAg aWYgKC1ub3QgKFRlc3QtUGF0aCAkS2F0RGlyKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0 b3J5IC1QYXRoICRLYXREaXIgLUZvcmNlIHwgT3V0LU51bGwgfQ0KICAgICAgICAgICAgICAgICAg ICAkWmllbCA9IEpvaW4tUGF0aCAkS2F0RGlyICgkTWlkICsgJEV4dCkNCiAgICAgICAgICAgICAg ICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxCeXRlcygkWmllbCwgJFJvaEJ5dGVzKQ0K ICAgICAgICAgICAgICAgICAgICAkRWludHJhZyA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICAg ICAgICAgICAgICBpZCA9ICRNaWQNCiAgICAgICAgICAgICAgICAgICAgICAgIGthdGVnb3JpZSA9 ICRLYXRlZ29yaWUNCiAgICAgICAgICAgICAgICAgICAgICAgIGJlemVpY2hudW5nID0gJEJlemVp Y2hudW5nDQogICAgICAgICAgICAgICAgICAgICAgICBkYXRlaW5hbWUgPSBpZiAoJEEuZGF0ZWlu YW1lKSB7IChbc3RyaW5nXSRBLmRhdGVpbmFtZSkuVHJpbSgpLlN1YnN0cmluZygwLCBbTWF0aF06 Ok1pbigoW3N0cmluZ10kQS5kYXRlaW5hbWUpLkxlbmd0aCwgMjAwKSkgfSBlbHNlIHsgKCRNaWQg KyAkRXh0KSB9DQogICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZSA9ICRNaW1lDQogICAg ICAgICAgICAgICAgICAgICAgICBncm9lc3NlID0gJFJvaEJ5dGVzLkxlbmd0aA0KICAgICAgICAg ICAgICAgICAgICAgICAgaG9jaGdlbGFkZW5BbSA9IChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1N LWRkIEhIOm1tOnNzJykNCiAgICAgICAgICAgICAgICAgICAgICAgIGhvY2hnZWxhZGVuVm9uID0g KEdldC1Ba3R1ZWxsZXJCZW51dHplcikNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICBJbnZv a2UtV2l0aEZpbGVMb2NrICdtZWRpZW4uanNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAg JE1ldGEgPSBSZWFkLU1lZGllbk1ldGENCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90 ICRNZXRhLm1lZGllbikgeyAkTWV0YSA9IFtQU0N1c3RvbU9iamVjdF1AeyBtZWRpZW4gPSBAKCkg fSB9DQogICAgICAgICAgICAgICAgICAgICAgICAkTGlzdGUgPSBAKCRNZXRhLm1lZGllbikgKyBb UFNDdXN0b21PYmplY3RdJEVpbnRyYWcNCiAgICAgICAgICAgICAgICAgICAgICAgICRNZXRhID0g W1BTQ3VzdG9tT2JqZWN0XUB7IG1lZGllbiA9ICRMaXN0ZSB9DQogICAgICAgICAgICAgICAgICAg ICAgICBXcml0ZS1NZWRpZW5NZXRhICRNZXRhDQogICAgICAgICAgICAgICAgICAgIH0gfCBPdXQt TnVsbA0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBpZiAo VGVzdC1QYXRoICRaaWVsKSB7IFJlbW92ZS1JdGVtICRaaWVsIC1FcnJvckFjdGlvbiBTaWxlbnRs eUNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICIkXyIgNTAz OyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dF aW50cmFnICdtZWRpZW4uaG9jaGdlbGFkZW4nIEB7IGlkID0gJE1pZDsga2F0ZWdvcmllID0gJEth dGVnb3JpZTsgYmV6ZWljaG51bmcgPSAkQmV6ZWljaG51bmc7IGdyb2Vzc2UgPSAkUm9oQnl0ZXMu TGVuZ3RoOyBtaW1lVHlwZSA9ICRNaW1lIH0NCiAgICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAk ZW52OlVTRVJOQU1FDQogICAgICAgICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAg ICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dFbnRyeSAnbWVkaWVuJyAkbnVsbCAkbnVsbCAkbnVs bCAkVXNlcm5hbWUgJFJvbGxlIEB7IGFrdGlvbiA9ICdob2NoZ2VsYWRlbic7IGlkID0gJE1pZDsg a2F0ZWdvcmllID0gJEthdGVnb3JpZTsgYmV6ZWljaG51bmcgPSAkQmV6ZWljaG51bmcgfQ0KICAg ICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCc7IG1l ZGl1bSA9ICRFaW50cmFnIH0gMjAxDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gTUVESUVOOiBVbWJl bmVubmVuIC8gVmVyc2NoaWViZW4gLyBEYXRlaSBlcnNldHplbiA9PT09PT09PT09PT09PT09PT09 PT0NCiAgICAgICAgICAgIGlmICgkUGF0aC5TdGFydHNXaXRoKCcvYXBpL21lZGllbi8nKSAtYW5k ICRNZXRob2QgLWVxICdQQVRDSCcgLWFuZCAtbm90ICRQYXRoLlN0YXJ0c1dpdGgoJy9hcGkvbWVk aWVuL2RhdGVpLycpKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJV c2VyKSkgeyBTZW5kLUVycm9yICRSZXMgJ051ciBTdXBlclVzZXIgZGFyZiBNZWRpZW4gYWVuZGVy bicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJE1pZCA9ICRQYXRoLlN1YnN0cmlu ZygkUGF0aC5MYXN0SW5kZXhPZignLycpICsgMSkNCiAgICAgICAgICAgICAgICAkQm9keSA9IFJl YWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5k LUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgIHRyeSB7ICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uIH0gY2F0Y2ggeyBTZW5k LUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICROZXVlQmV6ID0gaWYgKCRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2JlemVpY2hudW5n J10pIHsgW3N0cmluZ10kQS5iZXplaWNobnVuZyB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAg ICAgICAgJE5ldWVLYXQgPSBpZiAoJEEuUFNPYmplY3QuUHJvcGVydGllc1sna2F0ZWdvcmllJ10p IHsgKFtzdHJpbmddJEEua2F0ZWdvcmllKS5Ub0xvd2VyKCkuVHJpbSgpIH0gZWxzZSB7ICRudWxs IH0NCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICROZXVlS2F0IC1hbmQgLW5vdCAoKEdl dC1NZWRpZW5LYXRlZ29yaWVLZXlzKSAtY29udGFpbnMgJE5ldWVLYXQpKSB7DQogICAgICAgICAg ICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZSBLYXRlZ29yaWUnIDQwMDsgY29u dGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBPcHRpb25hbDogRGF0 ZWktSW5oYWx0IGF1c3RhdXNjaGVuICgiRGF0ZWkgZXJzZXR6ZW4iLUFrdGlvbikNCiAgICAgICAg ICAgICAgICAkTmV1ZURhdGFCNjQgPSBpZiAoJEEuUFNPYmplY3QuUHJvcGVydGllc1snZGF0YSdd KSB7IFtzdHJpbmddJEEuZGF0YSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgJE5l dWVNaW1lICAgID0gaWYgKCRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ21pbWVUeXBlJ10pIHsgKFtz dHJpbmddJEEubWltZVR5cGUpLlRvTG93ZXIoKS5UcmltKCkgfSBlbHNlIHsgJG51bGwgfQ0KICAg ICAgICAgICAgICAgICROZXVlckRhdGVpbmFtZSA9IGlmICgkQS5QU09iamVjdC5Qcm9wZXJ0aWVz WydkYXRlaW5hbWUnXSkgeyAoW3N0cmluZ10kQS5kYXRlaW5hbWUpLlRyaW0oKSB9IGVsc2UgeyAk bnVsbCB9DQogICAgICAgICAgICAgICAgJE5ldWVCeXRlcyA9ICRudWxsDQogICAgICAgICAgICAg ICAgaWYgKC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkTmV1ZURhdGFCNjQpKSB7 DQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICROZXVlTWltZSkgeyBTZW5kLUVycm9yICRS ZXMgJ21pbWVUeXBlIGZlaGx0IHp1bSBEYXRlaS1FcnNldHplbicgNDAwOyBjb250aW51ZSB9DQog ICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRzY3JpcHQ6TWVkaWVuRXJsYXVidGVNaW1lcy5D b250YWluc0tleSgkTmV1ZU1pbWUpKSB7IFNlbmQtRXJyb3IgJFJlcyAnRGF0ZWl0eXAgbmljaHQg ZXJsYXVidCcgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgIGlmICgkTmV1ZURh dGFCNjQuU3RhcnRzV2l0aCgnZGF0YTonKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGlk eCA9ICROZXVlRGF0YUI2NC5JbmRleE9mKCcsJykNCiAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkaWR4IC1nZSAwKSB7ICROZXVlRGF0YUI2NCA9ICROZXVlRGF0YUI2NC5TdWJzdHJpbmcoJGlk eCArIDEpIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0cnkg eyAkTmV1ZUJ5dGVzID0gW1N5c3RlbS5Db252ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygkTmV1ZURh dGFCNjQpIH0gY2F0Y2ggeyBTZW5kLUVycm9yICRSZXMgJ0Jhc2U2NCB1bmd1ZWx0aWcnIDQwMDsg Y29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJE5ldWVCeXRlcy5MZW5ndGggLWd0 ICRzY3JpcHQ6TWVkaWVuTWF4Qnl0ZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQt RXJyb3IgJFJlcyAiRGF0ZWkgenUgZ3Jvc3MgKG1heCAkKFtNYXRoXTo6Rmxvb3IoJHNjcmlwdDpN ZWRpZW5NYXhCeXRlcyAvIDFNQikpIE1CKSIgNDEzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRzY3JpcHQ6VXBkYXRl ZEVpbnRyYWcgPSAkbnVsbDsgJHNjcmlwdDpGb3VuZCA9ICRmYWxzZTsgJHNjcmlwdDpBZW5kZXJ1 bmdlbiA9IEB7fQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIElu dm9rZS1XaXRoRmlsZUxvY2sgJ21lZGllbi5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICAg ICAkTWV0YSA9IFJlYWQtTWVkaWVuTWV0YQ0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ldWVM aXN0ZSA9IEAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJG0gaW4gQCgkTWV0 YS5tZWRpZW4pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRtLmlkIC1lcSAk TWlkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6Rm91bmQgPSAk dHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0S2F0ID0gJG0ua2F0ZWdv cmllDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJE5ldWVC ZXogLWFuZCAkTmV1ZUJlei5UcmltKCkgLW5lICRtLmJlemVpY2hudW5nKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkYmV6ID0gJE5ldWVCZXouVHJpbSgpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGJlei5MZW5ndGggLWd0IDIwMCkgeyAk YmV6ID0gJGJlei5TdWJzdHJpbmcoMCwgMjAwKSB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkbS5iZXplaWNobnVuZyA9ICRiZXoNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRzY3JpcHQ6QWVuZGVydW5nZW5bJ2JlemVpY2hudW5nJ10gPSAkYmV6DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRudWxsIC1uZSAkTmV1ZUthdCAtYW5kICROZXVlS2F0IC1uZSAkQWx0S2F0 KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSXN0U3lzdGVtID0gJG0u UFNPYmplY3QuUHJvcGVydGllc1sncGZhZCddIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JX aGl0ZVNwYWNlKFtzdHJpbmddJG0ucGZhZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICgkSXN0U3lzdGVtKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBTeXN0ZW0tTWVkaXVtOiBudXIgTWV0YS1LYXRlZ29yaWUgd2VjaHNlbG4sIERh dGVpIGJsZWlidCBpbSAvaW1hZ2VzLy1PcmRuZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkbS5rYXRlZ29yaWUgPSAkTmV1ZUthdA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQWx0ID0gR2V0LU1lZGllblBmYWQgJG0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkbS5rYXRlZ29yaWUgPSAkTmV1ZUthdA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXUgPSBHZXQtTWVkaWVuUGZhZCAkbQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXVEaXIgPSBTcGxpdC1QYXRo IC1QYXJlbnQgJE5ldQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICROZXVEaXIpKSB7IE5ldy1JdGVtIC1JdGVt VHlwZSBEaXJlY3RvcnkgLVBhdGggJE5ldURpciAtRm9yY2UgfCBPdXQtTnVsbCB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBh dGggJEFsdCkgeyBNb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRBbHQgLURlc3RpbmF0aW9uICROZXUg LUZvcmNlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6QWVuZGVydW5nZW5bJ2thdGVnb3Jp ZSddID0gIiRBbHRLYXQgLT4gJE5ldWVLYXQiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEYXRlaS1SZXBsYWNlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJE5ldWVCeXRlcykg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ldWVyRXh0ID0gJHNjcmlw dDpNZWRpZW5FcmxhdWJ0ZU1pbWVzWyROZXVlTWltZV0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRLYXQgPSBpZiAoJG0ua2F0ZWdvcmllKSB7IFtzdHJpbmddJG0ua2F0ZWdv cmllIH0gZWxzZSB7ICdzb25zdGlnZXMnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRJbWFnZXNEaXIyID0gR2V0LU1lZGllbkltYWdlc09yZG5lciAkS2F0DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSGF0UGZhZCA9ICRtLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ3BmYWQnXSAtYW5kIC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3Ry aW5nXSRtLnBmYWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkWmllbElu SW1hZ2VzID0gJEhhdFBmYWQgLW9yICgkbnVsbCAtbmUgJEltYWdlc0RpcjIpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFppZWxJbkltYWdlcyAtYW5kICRudWxsIC1u ZSAkSW1hZ2VzRGlyMikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgQWx0ZSBEYXRlaSBiZXNlaXRpZ2VuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRIYXRQZmFkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRBbHREID0gSm9pbi1QYXRoICRzY3JpcHQ6Um9vdCAoKFtzdHJpbmddJG0u cGZhZCkuVHJpbVN0YXJ0KCcvJykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEFsdEQgPSBHZXQtTWVkaWVuUGZhZCAkbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVGVz dC1QYXRoIC1MaXRlcmFsUGF0aCAkQWx0RCAtUGF0aFR5cGUgTGVhZikgeyBSZW1vdmUtSXRlbSAt TGl0ZXJhbFBhdGggJEFsdEQgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBOZXVlbiBaaWVsbmFtZW4gd8Ok aGxlbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkSGF0UGZh ZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU3RlbSA9 IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lV2l0aG91dEV4dGVuc2lvbihbc3RyaW5nXSRt LnBmYWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRaaWVs RCA9IEpvaW4tUGF0aCAkSW1hZ2VzRGlyMiAoJFN0ZW0gKyAkTmV1ZXJFeHQpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJFVwbG9hZE5hbWUyID0gaWYgKCROZXVlckRhdGVp bmFtZSkgeyAkTmV1ZXJEYXRlaW5hbWUgfSBlbHNlIHsgW3N0cmluZ10kbS5iZXplaWNobnVuZyB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCYXNlMiA9IEdl dC1NZWRpZW5CYXNlbmFtZUF1c1VwbG9hZCAkVXBsb2FkTmFtZTINCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJFppZWxEID0gR2V0LU1lZGllbkZyZWllckRhdGVp bmFtZSAkSW1hZ2VzRGlyMiAkQmFzZTIgJE5ldWVyRXh0DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJFppZWxELCAkTmV1ZUJ5dGVzKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRaaWVsTmFtZTIgPSBbU3lz dGVtLklPLlBhdGhdOjpHZXRGaWxlTmFtZSgkWmllbEQpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCRtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmYWQnXSkgeyAk bS5wZmFkID0gJy9pbWFnZXMvJyArICRLYXQgKyAnLycgKyAkWmllbE5hbWUyIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJG0gfCBBZGQtTWVtYmVyIC1N ZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAncGZhZCcgLVZhbHVlICgnL2ltYWdlcy8nICsg JEthdCArICcvJyArICRaaWVsTmFtZTIpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkbS5kYXRlaW5hbWUgPSBpZiAoJE5ldWVyRGF0ZWluYW1lKSB7ICROZXVlckRh dGVpbmFtZS5TdWJzdHJpbmcoMCwgW01hdGhdOjpNaW4oJE5ldWVyRGF0ZWluYW1lLkxlbmd0aCwg MjAwKSkgfSBlbHNlIHsgJFppZWxOYW1lMiB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJG0ubWltZVR5cGUgPSAkTmV1ZU1pbWUNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkbS5ncm9lc3NlID0gJE5ldWVCeXRlcy5MZW5ndGgNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG0uUFNPYmplY3QuUHJvcGVy dGllc1snc3lzdGVtJ10pIHsgJG0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJ3N5c3RlbScp IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbS5ob2NoZ2VsYWRl bkFtID0gKEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXktTU0tZGQgSEg6bW06c3MnKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmhvY2hnZWxhZGVuVm9uID0gKEdldC1B a3R1ZWxsZXJCZW51dHplcikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkc2NyaXB0OkFlbmRlcnVuZ2VuWydkYXRlaSddID0gIiROZXVlTWltZSAkKCROZXVlQnl0ZXMu TGVuZ3RoKSBCIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRhdGEvbWVkaWVuLVBm YWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkSGF0 UGZhZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0 RCA9IEdldC1NZWRpZW5QZmFkICRtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkQWx0RCAtUGF0aFR5cGUgTGVhZikg eyBSZW1vdmUtSXRlbSAtTGl0ZXJhbFBhdGggJEFsdEQgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxl bnRseUNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSBjYXRjaCB7fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG0uUFNPYmplY3Qu UHJvcGVydGllc1sncGZhZCddKSB7ICRtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCdwZmFk JykgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbS5QU09i amVjdC5Qcm9wZXJ0aWVzWydzeXN0ZW0nXSkgeyAkbS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92 ZSgnc3lzdGVtJykgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRt Lm1pbWVUeXBlID0gJE5ldWVNaW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCROZXVlckRhdGVpbmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkbS5kYXRlaW5hbWUgPSAkTmV1ZXJEYXRlaW5hbWUuU3Vic3RyaW5n KDAsIFtNYXRoXTo6TWluKCROZXVlckRhdGVpbmFtZS5MZW5ndGgsIDIwMCkpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRtLmdyb2Vzc2UgPSAkTmV1ZUJ5dGVzLkxlbmd0aA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmhvY2hnZWxhZGVuQW0gPSAoR2V0LURh dGUgLUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJG0uaG9jaGdlbGFkZW5Wb24gPSAoR2V0LUFrdHVlbGxlckJlbnV0 emVyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRaaWVsRCA9IEdl dC1NZWRpZW5QZmFkICRtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JFppZWxEaXIgPSBTcGxpdC1QYXRoIC1QYXJlbnQgJFppZWxEDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJFpp ZWxEaXIpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJFppZWxEaXIgLUZv cmNlIHwgT3V0LU51bGwgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJFppZWxELCAkTmV1ZUJ5dGVzKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6QWVuZGVydW5nZW5b J2RhdGVpJ10gPSAiJE5ldWVNaW1lICQoJE5ldWVCeXRlcy5MZW5ndGgpIEIiDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNjcmlwdDpVcGRhdGVkRWlu dHJhZyA9ICRtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICROZXVlTGlzdGUgKz0gJG0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc2NyaXB0OkZvdW5kKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgV3JpdGUtTWVkaWVuTWV0YSAoW1BTQ3VzdG9tT2JqZWN0XUB7IG1l ZGllbiA9ICROZXVlTGlzdGUgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgfSB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAg ICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiJF8iIDUwMzsgY29udGludWUNCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJHNjcmlwdDpGb3VuZCkgeyBT ZW5kLUVycm9yICRSZXMgJ05pY2h0IGdlZnVuZGVuJyA0MDQ7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdtZWRpZW4uZ2VhZW5kZXJ0JyBAeyBpZCA9ICRNaWQ7 IGJlemVpY2hudW5nID0gJHNjcmlwdDpVcGRhdGVkRWludHJhZy5iZXplaWNobnVuZzsga2F0ZWdv cmllID0gJHNjcmlwdDpVcGRhdGVkRWludHJhZy5rYXRlZ29yaWUgfQ0KICAgICAgICAgICAgICAg ICRVc2VybmFtZSA9ICRlbnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQt VXNlclJvbGxlDQogICAgICAgICAgICAgICAgQWRkLUNoYW5nZUxvZ0VudHJ5ICdtZWRpZW4nICRu dWxsICRudWxsICRudWxsICRVc2VybmFtZSAkUm9sbGUgQHsgYWt0aW9uID0gJ2dlYWVuZGVydCc7 IGlkID0gJE1pZDsgYmV6ZWljaG51bmcgPSAkc2NyaXB0OlVwZGF0ZWRFaW50cmFnLmJlemVpY2hu dW5nOyBrYXRlZ29yaWUgPSAkc2NyaXB0OlVwZGF0ZWRFaW50cmFnLmthdGVnb3JpZSB9DQogICAg ICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JzsgbWVk aXVtID0gJHNjcmlwdDpVcGRhdGVkRWludHJhZyB9DQogICAgICAgICAgICAgICAgJHNjcmlwdDpG b3VuZCA9ICRmYWxzZTsgJHNjcmlwdDpVcGRhdGVkRWludHJhZyA9ICRudWxsDQogICAgICAgICAg ICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09 PT09PT09PT09PT0gTUVESUVOOiBMb2VzY2hlbiA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAg ICAgICAgIGlmICgkUGF0aC5TdGFydHNXaXRoKCcvYXBpL21lZGllbi8nKSAtYW5kICRNZXRob2Qg LWVxICdERUxFVEUnIC1hbmQgLW5vdCAkUGF0aC5TdGFydHNXaXRoKCcvYXBpL21lZGllbi9kYXRl aS8nKSkgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsg U2VuZC1FcnJvciAkUmVzICdOdXIgU3VwZXJVc2VyIGRhcmYgTWVkaWVuIGxvZXNjaGVuJyA0MDM7 IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkTWlkID0gJFBhdGguU3Vic3RyaW5nKCRQYXRo Lkxhc3RJbmRleE9mKCcvJykgKyAxKQ0KICAgICAgICAgICAgICAgICRzY3JpcHQ6Rm91bmQgPSAk ZmFsc2U7ICRzY3JpcHQ6R2Vsb2VzY2h0ZXJFaW50cmFnID0gJG51bGwNCiAgICAgICAgICAgICAg ICB0cnkgew0KICAgICAgICAgICAgICAgICAgICBJbnZva2UtV2l0aEZpbGVMb2NrICdtZWRpZW4u anNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJE1ldGEgPSBSZWFkLU1lZGllbk1ldGEN CiAgICAgICAgICAgICAgICAgICAgICAgICROZXVlTGlzdGUgPSBAKCkNCiAgICAgICAgICAgICAg ICAgICAgICAgIGZvcmVhY2ggKCRtIGluIEAoJE1ldGEubWVkaWVuKSkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICgkbS5pZCAtZXEgJE1pZCkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkc2NyaXB0OkZvdW5kID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJHNjcmlwdDpHZWxvZXNjaHRlckVpbnRyYWcgPSAkbQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIERpc2stRGF0ZWkgbnVyIHNjaG9uZW4sIHdlbm4gT3JpZ2lu YWwtU3lzdGVtLUFzc2V0IChzeXN0ZW09JHRydWUpLg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIFVzZXItVXBsb2FkcyBtaXQgYHBmYWRgIChpbiBJbWFnZXMvPGthdD4vKSB3ZXJk ZW4gbWl0IGdlbG9lc2NodC4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJElzdFN5 c3RlbUFzc2V0ID0gJG0uUFNPYmplY3QuUHJvcGVydGllc1snc3lzdGVtJ10gLWFuZCBbYm9vbF0k bS5zeXN0ZW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJElzdFN5 c3RlbUFzc2V0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0ZWkg PSBHZXQtTWVkaWVuUGZhZCAkbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJERhdGVpIC1QYXRoVHlwZSBMZWFmKSB7IFJlbW92 ZS1JdGVtIC1MaXRlcmFsUGF0aCAkRGF0ZWkgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ldWVM aXN0ZSArPSAkbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc2NyaXB0OkZvdW5kKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtTWVkaWVuTWV0YSAoW1BTQ3VzdG9t T2JqZWN0XUB7IG1lZGllbiA9ICROZXVlTGlzdGUgfSkNCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgfSB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgfSBj YXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiJF8iIDUwMzsgY29u dGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJHNjcmlw dDpGb3VuZCkgeyBTZW5kLUVycm9yICRSZXMgJ05pY2h0IGdlZnVuZGVuJyA0MDQ7IGNvbnRpbnVl IH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdtZWRpZW4uZ2Vsb2VzY2h0JyBA eyBpZCA9ICRNaWQ7IGthdGVnb3JpZSA9ICRzY3JpcHQ6R2Vsb2VzY2h0ZXJFaW50cmFnLmthdGVn b3JpZTsgYmV6ZWljaG51bmcgPSAkc2NyaXB0OkdlbG9lc2NodGVyRWludHJhZy5iZXplaWNobnVu ZyB9DQogICAgICAgICAgICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAg ICAgICAgICRSb2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICBBZGQtQ2hhbmdl TG9nRW50cnkgJ21lZGllbicgJG51bGwgJG51bGwgJG51bGwgJFVzZXJuYW1lICRSb2xsZSBAeyBh a3Rpb24gPSAnZ2Vsb2VzY2h0JzsgaWQgPSAkTWlkOyBrYXRlZ29yaWUgPSAkc2NyaXB0OkdlbG9l c2NodGVyRWludHJhZy5rYXRlZ29yaWU7IGJlemVpY2hudW5nID0gJHNjcmlwdDpHZWxvZXNjaHRl ckVpbnRyYWcuYmV6ZWljaG51bmcgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7 IHN0YXR1cyA9ICdnZWxvZXNjaHQnIH0NCiAgICAgICAgICAgICAgICAkc2NyaXB0OkZvdW5kID0g JGZhbHNlOyAkc2NyaXB0OkdlbG9lc2NodGVyRWludHJhZyA9ICRudWxsDQogICAgICAgICAgICAg ICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09 PT09PT09PT0gU1RBVElTQ0hFIERBVEVJRU4gPT09PT09PT09PT09PT09PT09PT09DQogICAgICAg ICAgICAkUmVsUGF0aCA9ICRQYXRoLlRyaW1TdGFydCgnLycpDQogICAgICAgICAgICBpZiAoW3N0 cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkUmVsUGF0aCkpIHsgJFJlbFBhdGggPSAnaW5kZXgu aHRtbCcgfQ0KICAgICAgICAgICAgJFNhZmVQYXRoID0gUmVzb2x2ZS1TYWZlUGF0aCAkUmVsUGF0 aA0KICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkU2FmZVBhdGgpIHsgU2VuZC1FcnJvciAkUmVz ICdadWdyaWZmIHZlcndlaWdlcnQnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgaWYgKChU ZXN0LVBhdGggJFNhZmVQYXRoKSAtYW5kIC1ub3QgKEdldC1JdGVtICRTYWZlUGF0aCkuUFNJc0Nv bnRhaW5lcikgew0KICAgICAgICAgICAgICAgIFNlbmQtRmlsZSAkUmVzICRTYWZlUGF0aA0KICAg ICAgICAgICAgfSBlbHNlaWYgKCRSZWxQYXRoIC1lcSAnaW5kZXguaHRtbCcpIHsNCiAgICAgICAg ICAgICAgICAjIERpYWdub3NlLVNlaXRlIHN0YXR0IDQwNCAtIHplaWd0IGRpcmVrdCBpbSBCcm93 c2VyLCB3YXMgbG9zIGlzdA0KICAgICAgICAgICAgICAgICRfZGlhZ0luaGFsdCA9ICcnDQogICAg ICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJF9kaWFnRmlsZXMgPSBHZXQt Q2hpbGRJdGVtIC1QYXRoICRSb290IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51 ZSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDMwIHwgRm9yRWFjaC1PYmplY3QgeyAnPGxpPicgKyBb U3lzdGVtLldlYi5IdHRwVXRpbGl0eV06Okh0bWxFbmNvZGUoJF8uTmFtZSkgKyAnPC9saT4nIH0N CiAgICAgICAgICAgICAgICAgICAgJF9kaWFnSW5oYWx0ID0gJF9kaWFnRmlsZXMgLWpvaW4gImBu Ig0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggeyAkX2RpYWdJbmhhbHQgPSAnPGxpPihWZXJ6ZWlj aG5pcyBuaWNodCBsZXNiYXIpPC9saT4nIH0NCiAgICAgICAgICAgICAgICAkX2RpYWdIdG1sID0g QCINCjwhZG9jdHlwZSBodG1sPjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48dGl0 bGU+RkxELVNlcnZlcjogaW5kZXguaHRtbCBuaWNodCBnZWZ1bmRlbjwvdGl0bGU+DQo8c3R5bGU+ Ym9keXtmb250LWZhbWlseTpTZWdvZSBVSSxzYW5zLXNlcmlmO2JhY2tncm91bmQ6I2ZhZmFmYTtj b2xvcjojMjIyO3BhZGRpbmc6MzJweDttYXgtd2lkdGg6NzgwcHg7bWFyZ2luOmF1dG99DQpoMXtj b2xvcjojYjcxYzFjfWNvZGV7YmFja2dyb3VuZDojZWVlO3BhZGRpbmc6MnB4IDZweDtib3JkZXIt cmFkaXVzOjNweH0NCi5ib3h7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2NjYztw YWRkaW5nOjE2cHggMjBweDtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MTRweCAwfQ0KLmxhYmVs e2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojNTU1fXVse2ZvbnQtc2l6ZToxM3B4fTwvc3R5bGU+PC9o ZWFkPjxib2R5Pg0KPGgxPkZMRC1TZXJ2ZXI6IGluZGV4Lmh0bWwgbmljaHQgZ2VmdW5kZW48L2gx Pg0KPHA+RGVyIFNlcnZlciBsYWV1ZnQsIGthbm4gYWJlciB1bnRlciBkZW0ga29uZmlndXJpZXJ0 ZW4gQXBwLVJvb3Qga2VpbmUgPGNvZGU+aW5kZXguaHRtbDwvY29kZT4gZmluZGVuLjwvcD4NCjxk aXYgY2xhc3M9ImJveCI+DQogIDxkaXY+PHNwYW4gY2xhc3M9ImxhYmVsIj5Ba3R1ZWxsIGdlbnV0 enRlciBSb290LVBmYWQ6PC9zcGFuPjxicj48Y29kZT4kUm9vdDwvY29kZT48L2Rpdj4NCiAgPGRp diBzdHlsZT0ibWFyZ2luLXRvcDo4cHgiPjxzcGFuIGNsYXNzPSJsYWJlbCI+UXVlbGxlOjwvc3Bh bj4gJF9yb290U3JjPC9kaXY+DQogIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6OHB4Ij48c3BhbiBj bGFzcz0ibGFiZWwiPlJvb3RQYXRoLVBhcmFtOjwvc3Bhbj4gPGNvZGU+JChbU3lzdGVtLldlYi5I dHRwVXRpbGl0eV06Okh0bWxFbmNvZGUoJFJvb3RQYXRoKSk8L2NvZGU+PC9kaXY+DQogIDxkaXYg c3R5bGU9Im1hcmdpbi10b3A6OHB4Ij48c3BhbiBjbGFzcz0ibGFiZWwiPlBTU2NyaXB0Um9vdDo8 L3NwYW4+IDxjb2RlPiQoW1N5c3RlbS5XZWIuSHR0cFV0aWxpdHldOjpIdG1sRW5jb2RlKCRQU1Nj cmlwdFJvb3QpKTwvY29kZT48L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iYm94Ij4NCiAgPGRp diBjbGFzcz0ibGFiZWwiPkluaGFsdCBkZXMgUm9vdC1QZmFkcyAobWF4IDMwIEVpbnRyYWVnZSk6 PC9kaXY+DQogIDx1bD4kX2RpYWdJbmhhbHQ8L3VsPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJib3gi Pg0KICA8ZGl2IGNsYXNzPSJsYWJlbCI+TmFlY2hzdGUgU2Nocml0dGU6PC9kaXY+DQogIDxvbD4N CiAgICA8bGk+UHJ1ZWZlLCBvYiBpbSBnZW5hbm50ZW4gUm9vdC1QZmFkIGRpZSBEYXRlaSA8Y29k ZT5pbmRleC5odG1sPC9jb2RlPiBsaWVndC48L2xpPg0KICAgIDxsaT5GYWxscyBuaWNodDogQmF0 IGF1cyBkZW0ga29ycmVrdGVuIEFwcC1PcmRuZXIgc3RhcnRlbiAobmljaHQgYXVzIGRlbSBOVy1I b21lKS48L2xpPg0KICAgIDxsaT5GYWxscyBkaWUgQmF0IGltIHJpY2h0aWdlbiBPcmRuZXIgbGll Z3Q6IFNpZGVjYXItRGF0ZWkgPGNvZGU+YXBwX3Jvb3QudHh0PC9jb2RlPiBuZWJlbiBkZW0gbG9r YWxlbiA8Y29kZT5zZXJ2ZXIucHMxPC9jb2RlPiBwcnVlZmVuLjwvbGk+DQogICAgPGxpPlZvbGxz dGFlbmRpZ2VyIFRyYWNlOiA8Y29kZT4lVEVNUCVcRkxEX3NlcnZlci5sb2c8L2NvZGU+IGJ6dy4g PGNvZGU+JVVTRVJQUk9GSUxFJVxEZXNrdG9wXEZMRF9GRUhMRVIubG9nPC9jb2RlPi48L2xpPg0K ICA8L29sPg0KPC9kaXY+DQo8L2JvZHk+PC9odG1sPg0KIkANCiAgICAgICAgICAgICAgICAkX2J5 dGVzID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRCeXRlcygkX2RpYWdIdG1sKQ0K ICAgICAgICAgICAgICAgIEFkZC1TZWN1cml0eUhlYWRlcnMgJFJlcw0KICAgICAgICAgICAgICAg ICRSZXMuQ29udGVudFR5cGUgPSAndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jw0KICAgICAgICAg ICAgICAgICRSZXMuU3RhdHVzQ29kZSA9IDUwMw0KICAgICAgICAgICAgICAgICRSZXMuQ29udGVu dExlbmd0aDY0ID0gJF9ieXRlcy5MZW5ndGgNCiAgICAgICAgICAgICAgICBXcml0ZS1SZXNwb25z ZUJ1ZmZlciAkUmVzICRfYnl0ZXMNCiAgICAgICAgICAgICAgICBXcml0ZS1TdGFydHVwTG9nICJE SUFHLVNlaXRlIGF1c2dlbGllZmVydCAoaW5kZXguaHRtbCB1bnRlciAnJFJvb3QnIGZlaGx0KSIN CiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICJO aWNodCBnZWZ1bmRlbjogJFJlbFBhdGgiIDQwNA0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0g Y2F0Y2ggew0KICAgICAgICAgICAgIyBQaGFzZSBENTogZXJyb3JJZC1VVUlEICsgU3RhY2t0cmFj ZSBpbnMgTG9nLCBOSUNIVCBpbiBSZXNwb25zZQ0KICAgICAgICAgICAgJGVycm9ySWQgPSBOZXct RXJyb3JJZA0KICAgICAgICAgICAgJGRldGFpbCAgPSAiJF8gfCBaZWlsZSAkKCRfLkludm9jYXRp b25JbmZvLlNjcmlwdExpbmVOdW1iZXIpIHwgJCgkXy5JbnZvY2F0aW9uSW5mby5MaW5lLlRyaW0o KSkiDQogICAgICAgICAgICBXcml0ZS1TdGFydHVwTG9nICJSRVFVRVNULUZFSExFUiAkTWV0aG9k ICRQYXRoIGVycm9ySWQ9JGVycm9ySWQgOiAkZGV0YWlsIg0KICAgICAgICAgICAgdHJ5IHsNCiAg ICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAgICAgICAgICAgICAgICBmZWhs ZXIgID0gJ2ludGVybmVyX3NlcnZlcmZlaGxlcicNCiAgICAgICAgICAgICAgICAgICAgbWVsZHVu ZyA9ICdJbnRlcm5lciBTZXJ2ZXJmZWhsZXIgLSBiaXR0ZSBtaXQgZGVyIGVycm9ySWQgYW4gU3Vw ZXJVc2VyIG1lbGRlbi4nDQogICAgICAgICAgICAgICAgICAgIGVycm9ySWQgPSAkZXJyb3JJZA0K ICAgICAgICAgICAgICAgIH0gNTAwDQogICAgICAgICAgICB9IGNhdGNoIHt9DQogICAgICAgIH0N CiAgICB9DQp9IGZpbmFsbHkgew0KICAgIGlmICgkTGlzdGVuZXIgLWFuZCAkTGlzdGVuZXIuSXNM aXN0ZW5pbmcpIHsgJExpc3RlbmVyLlN0b3AoKSB9DQogICAgV3JpdGUtU3RhcnR1cExvZyAnU2Vy dmVyIGJlZW5kZXQuJw0KfQ0K ### 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=