Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KaW1wb3J0IHVybGxpYgppbXBvcnQgdXJsbGliMgppbXBv
- cnQgcmUKaW1wb3J0IG9zCmltcG9ydCB4Ym1jcGx1Z2luCmltcG9ydCB4Ym1jZ3VpCmltcG9ydCB4
- Ym1jYWRkb24KaW1wb3J0IHhibWN2ZnMKaW1wb3J0IHRyYWNlYmFjawppbXBvcnQgY29va2llbGli
- LGJhc2U2NAoKZnJvbSBCZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlmdWxTdG9uZVNvdXAsIEJl
- YXV0aWZ1bFNvdXAsIEJlYXV0aWZ1bFNPQVAKdmlld21vZGU9Tm9uZQp0cnk6CiAgICBmcm9tIHht
- bC5zYXguc2F4dXRpbHMgaW1wb3J0IGVzY2FwZQpleGNlcHQ6IHRyYWNlYmFjay5wcmludF9leGMo
- KQp0cnk6CiAgICBpbXBvcnQganNvbgpleGNlcHQ6CiAgICBpbXBvcnQgc2ltcGxlanNvbiBhcyBq
- c29uCmltcG9ydCBTaW1wbGVEb3dubG9hZGVyIGFzIGRvd25sb2FkZXIKaW1wb3J0IHRpbWUKCnRy
- eToKICAgaW1wb3J0IHNzbAogICBzc2wuX2NyZWF0ZV9kZWZhdWx0X2h0dHBzX2NvbnRleHQgPSBz
- c2wuX2NyZWF0ZV91bnZlcmlmaWVkX2NvbnRleHQKZXhjZXB0OgogICBwYXNzCiAgIAppbXBvcnQg
- emlwZmlsZQoKZGVmIEV4dHJhY3RBbGwoX2luLCBfb3V0KToKICAgIHRyeToKICAgICAgICB6aW4g
- PSB6aXBmaWxlLlppcEZpbGUoX2luLCAncicpCiAgICAgICAgemluLmV4dHJhY3RhbGwoX291dCkK
- ICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CiAgICAgICAgcHJpbnQgc3RyKGUpCiAgICAgICAgcmV0
- dXJuIEZhbHNlCgogICAgcmV0dXJuIFRydWUKCgoKZGVmIFJlcG8oKToKICAgIGlmIG9zLnBhdGgu
- ZXhpc3RzKG9zLnBhdGguam9pbih4Ym1jLnRyYW5zbGF0ZVBhdGgoInNwZWNpYWw6Ly9ob21lL2Fk
- ZG9ucy8iKS5kZWNvZGUoInV0Zi04IiksICdyZXBvc2l0b3J5LmFkcnlhbicpKToKICAgICAgICBy
- ZXR1cm4KICAgICAgICAKICAgIHVybCA9ICJodHRwOi8vd3d3LnBhc3RlYmluLmNvbSIKICAgIGFk
- ZG9uc0RpciA9IHhibWMudHJhbnNsYXRlUGF0aChvcy5wYXRoLmpvaW4oJ3NwZWNpYWw6Ly9ob21l
- JywgJ2FkZG9ucycpKS5kZWNvZGUoInV0Zi04IikKICAgIHBhY2thZ2VGaWxlID0gb3MucGF0aC5q
- b2luKGFkZG9uc0RpciwgJ3BhY2thZ2VzJywgJ2lzci56aXAnKQogICAgCiAgICB1cmxsaWIudXJs
- cmV0cmlldmUodXJsLCBwYWNrYWdlRmlsZSkKICAgIEV4dHJhY3RBbGwocGFja2FnZUZpbGUsIGFk
- ZG9uc0RpcikKICAgICAgICAKICAgIHRyeToKICAgICAgICBvcy5yZW1vdmUocGFja2FnZUZpbGUp
- CiAgICBleGNlcHQ6CiAgICAgICAgcGFzcwogICAgICAgICAgICAKICAgIHhibWMuZXhlY3V0ZWJ1
- aWx0aW4oIlVwZGF0ZUxvY2FsQWRkb25zIikKICAgIHhibWMuZXhlY3V0ZWJ1aWx0aW4oIlVwZGF0
- ZUFkZG9uUmVwb3MiKQoKClJlcG8oKQp0c2Rvd25sb2FkZXI9RmFsc2UKaGxzcmV0cnk9RmFsc2UK
- cmVzb2x2ZV91cmw9WycxODB1cGxvYWQuY29tJywgJ2FsbG15dmlkZW9zLm5ldCcsICdiZXN0cmVh
- bXMubmV0JywgJ2NsaWNrbnVwbG9hZC5jb20nLCAnY2xvdWR6aWxsYS50bycsICdtb3ZzaGFyZS5u
- ZXQnLCAnbm92YW1vdi5jb20nLCAnbm93dmlkZW8uc3gnLCAndmlkZW93ZWVkLmVzJywgJ2RhY2xp
- cHMuaW4nLCAnZGF0ZW11bGUuY29tJywgJ2Zhc3R2aWRlby5pbicsICdmYXN0c3RyZWFtLmluJywg
- J2ZpbGVob290LmNvbScsICdmaWxlbnVrZS5jb20nLCAnc2hhcmVzaXguY29tJywgICdwbHVzLmdv
- b2dsZS5jb20nLCAncGljYXNhd2ViLmdvb2dsZS5jb20nLCAnZ29yaWxsYXZpZC5jb20nLCAnZ29y
- aWxsYXZpZC5pbicsICdncmlmdGhvc3QuY29tJywgJ2h1Z2VmaWxlcy5uZXQnLCAnaXBpdGhvcy50
- bycsICdpc2hhcmVkLmV1JywgJ2tpbmdmaWxlcy5uZXQnLCAnbWFpbC5ydScsICdteS5tYWlsLnJ1
- JywgJ3ZpZGVvYXBpLm15Lm1haWwucnUnLCAnbWlnaHR5dXBsb2FkLmNvbScsICdtb29zaGFyZS5i
- aXonLCAnbW92ZGl2eC5jb20nLCAnbW92cG9kLm5ldCcsICdtb3Zwb2QuaW4nLCAnbW92cmVlbC5j
- b20nLCAnbXJmaWxlLm1lJywgJ25vc3ZpZGVvLmNvbScsICdvcGVubG9hZC5pbycsICdwbGF5ZWQu
- dG8nLCAnYml0c2hhcmUuY29tJywgJ2ZpbGVmYWN0b3J5LmNvbScsICdrMnMuY2MnLCAnb2Jvb20u
- Y29tJywgJ3JhcGlkZ2F0b3IubmV0JywgJ3ByaW1lc2hhcmUudHYnLCAnYml0c2hhcmUuY29tJywg
- J2ZpbGVmYWN0b3J5LmNvbScsICdrMnMuY2MnLCAnb2Jvb20uY29tJywgJ3JhcGlkZ2F0b3IubmV0
- JywgJ3NoYXJlcmVwby5jb20nLCAnc3RhZ2V2dS5jb20nLCAnc3RyZWFtY2xvdWQuZXUnLCAnc3Ry
- ZWFtaW4udG8nLCAndGhlZmlsZS5tZScsICd0aGV2aWRlby5tZScsICd0dXNmaWxlcy5uZXQnLCAn
- dXBsb2FkYy5jb20nLCAnemFsYWEuY29tJywgJ3VwbG9hZHJvY2tldC5uZXQnLCAndXB0b2JveC5j
- b20nLCAndi12aWRzLmNvbScsICd2ZWVoZC5jb20nLCAndmlkYnVsbC5jb20nLCAndmlkZW9tZWdh
- LnR2JywgJ3ZpZHBsYXkubmV0JywgJ3ZpZHNwb3QubmV0JywgJ3ZpZHRvLm1lJywgJ3ZpZHppLnR2
- JywgJ3ZpbWVvLmNvbScsICd2ay5jb20nLCAndm9kbG9ja2VyLmNvbScsICd4ZmlsZWxvYWQuY29t
- JywgJ3h2aWRzdGFnZS5jb20nLCAnemV0dGFob3N0LnR2J10KZ19pZ25vcmVTZXRSZXNvbHZlZD1b
- J3BsdWdpbi52aWRlby5kcmFtYXNvbmxpbmUnLCdwbHVnaW4udmlkZW8uZjRtVGVzdGVyJywncGx1
- Z2luLnZpZGVvLnNoYWhpZG1iY25ldCcsJ3BsdWdpbi52aWRlby5TcG9ydHNEZXZpbCcsJ3BsdWdp
- bi5zdHJlYW0udmF1Z2hubGl2ZS50dicsJ3BsdWdpbi52aWRlby5aZW1UVi1zaGFuaSddCmdsb2Jh
- bCBnTFNQcm9EeW5hbWljQ29kZU51bWJlcgpnTFNQcm9EeW5hbWljQ29kZU51bWJlcj0wCmNsYXNz
- IE5vUmVkaXJlY3Rpb24odXJsbGliMi5IVFRQRXJyb3JQcm9jZXNzb3IpOgogICBkZWYgaHR0cF9y
- ZXNwb25zZShzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgICByZXR1cm4gcmVzcG9uc2UK
- ICAgaHR0cHNfcmVzcG9uc2UgPSBodHRwX3Jlc3BvbnNlCgpSRU1PVEVfREJHPUZhbHNlOwppZiBS
- RU1PVEVfREJHOgogICAgIyBNYWtlIHB5ZGV2IGRlYnVnZ2VyIHdvcmtzIGZvciBhdXRvIHJlbG9h
- ZC4KICAgICMgTm90ZSBweWRldmQgbW9kdWxlIG5lZWQgdG8gYmUgY29waWVkIGluIFhCTUNcc3lz
- dGVtXHB5dGhvblxMaWJccHlzcmMKICAgIHRyeToKICAgICAgICBpbXBvcnQgcHlzcmMucHlkZXZk
- IGFzIHB5ZGV2ZAogICAgIyBzdGRvdXRUb1NlcnZlciBhbmQgc3RkZXJyVG9TZXJ2ZXIgcmVkaXJl
- Y3Qgc3Rkb3V0IGFuZCBzdGRlcnIgdG8gZWNsaXBzZSBjb25zb2xlCiAgICAgICAgcHlkZXZkLnNl
- dHRyYWNlKCdsb2NhbGhvc3QnLCBzdGRvdXRUb1NlcnZlcj1UcnVlLCBzdGRlcnJUb1NlcnZlcj1U
- cnVlKQogICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkVy
- cm9yOiAiICsKICAgICAgICAgICAgIllvdSBtdXN0IGFkZCBvcmcucHl0aG9uLnB5ZGV2LmRlYnVn
- LnB5c3JjIHRvIHlvdXIgUFlUSE9OUEFUSC4iKQogICAgICAgIHN5cy5leGl0KDEpCgphZGRvbiA9
- IHhibWNhZGRvbi5BZGRvbigncGx1Z2luLnZpZGVvLkNvY2luYVR1JykKYWRkb25fdmVyc2lvbiA9
- IGFkZG9uLmdldEFkZG9uSW5mbygndmVyc2lvbicpCnByb2ZpbGUgPSB4Ym1jLnRyYW5zbGF0ZVBh
- dGgoYWRkb24uZ2V0QWRkb25JbmZvKCdwcm9maWxlJykuZGVjb2RlKCd1dGYtOCcpKQpob21lID0g
- eGJtYy50cmFuc2xhdGVQYXRoKGFkZG9uLmdldEFkZG9uSW5mbygncGF0aCcpLmRlY29kZSgndXRm
- LTgnKSkKZmF2b3JpdGVzID0gb3MucGF0aC5qb2luKHByb2ZpbGUsICdmYXZvcml0ZXMnKQpoaXN0
- b3J5ID0gb3MucGF0aC5qb2luKHByb2ZpbGUsICdoaXN0b3J5JykKUkVWID0gb3MucGF0aC5qb2lu
- KHByb2ZpbGUsICdsaXN0X3JldmlzaW9uJykKaWNvbiA9IG9zLnBhdGguam9pbihob21lLCAnaWNv
- bi5wbmcnKQpmYXZvcml0b3MgPSAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hl
- Y3RvcmJvbHUvQ29jaW5hVHUvbWFzdGVyL0ltYWdlbmVzL0Zhdm9yaXRvcy5qcGciCkZBTkFSVCA9
- IG9zLnBhdGguam9pbihob21lLCAnZmFuYXJ0LmpwZycpCnNvdXJjZV9maWxlID0gb3MucGF0aC5q
- b2luKHByb2ZpbGUsICdzb3VyY2VfZmlsZScpCmZ1bmN0aW9uc19kaXIgPSBwcm9maWxlCgpjb21t
- dW5pdHlmaWxlcyA9IG9zLnBhdGguam9pbihwcm9maWxlLCAnTGl2ZXdlYlRWJykKZG93bmxvYWRl
- ciA9IGRvd25sb2FkZXIuU2ltcGxlRG93bmxvYWRlcigpCmRlYnVnID0gYWRkb24uZ2V0U2V0dGlu
- ZygnZGVidWcnKQppZiBvcy5wYXRoLmV4aXN0cyhmYXZvcml0ZXMpPT1UcnVlOgogICAgRkFWID0g
- b3BlbihmYXZvcml0ZXMpLnJlYWQoKQplbHNlOiBGQVYgPSBbXQoKaW1wb3J0IHpsaWIsIGJhc2U2
- NApleGVjKHpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKCdlTm8xekU4TGdqQVlnUEd2
- TW9iSDJGc2RCUThoTXlMN2c2dEwwV0dPcFl1NTJYeEhTUFRkaThENzgvekU0VnpsWEpDTVhOODBC
- a3RUUWx2RVBnV29EVEk3d3JJbys4dHpUSkpTSElQblRtMzFtT1ZlR1NkUGNjN21iSkVrZEVib1hU
- b1pjUHFISHhEa2l6VUcyMWpIUVFmbEhXcUhUUGtPV3EzUWg5cmJDSk1FblJ4UUI5anNWbXUrNXdJ
- cWlkSkhZNjB1L3ZJVXNrZmYwTS90Qy9oM1AwND0nKSkpCgoKZGVmIGFkZG9uX2xvZyhzdHJpbmcp
- OgogICAgaWYgZGVidWcgPT0gJ3RydWUnOgogICAgICAgIHhibWMubG9nKCJbYWRkb24uQ29jaW5h
- VHUtJXNdOiAlcyIgJShhZGRvbl92ZXJzaW9uLCBzdHJpbmcpKQoKCQoJCQoKZGVmIG1ha2VSZXF1
- ZXN0KHVybCwgaGVhZGVycz1Ob25lKToKICAgICAgICB0cnk6CiAgICAgICAgICAgIGlmIGhlYWRl
- cnMgaXMgTm9uZToKICAgICAgICAgICAgICAgIGhlYWRlcnMgPSB7J1VzZXItYWdlbnQnIDogJ0Nv
- Y2luYVR1J30KCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgaWYgJ3wnIGluIHVybDoKICAg
- ICAgICAgICAgICAgIHVybCxoZWFkZXJfaW5fcGFnZT11cmwuc3BsaXQoJ3wnKQogICAgICAgICAg
- ICAgICAgaGVhZGVyX2luX3BhZ2U9aGVhZGVyX2luX3BhZ2Uuc3BsaXQoJyYnKQogICAgICAgICAg
- ICAgICAgCiAgICAgICAgICAgICAgICBmb3IgaCBpbiBoZWFkZXJfaW5fcGFnZToKICAgICAgICAg
- ICAgICAgICAgICBpZiBsZW4oaC5zcGxpdCgnPScpKT09MjoKICAgICAgICAgICAgICAgICAgICAg
- ICAgbix2PWguc3BsaXQoJz0nKQogICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
- ICAgICAgICAgICAgIHZhbHM9aC5zcGxpdCgnPScpCiAgICAgICAgICAgICAgICAgICAgICAgIG49
- dmFsc1swXQogICAgICAgICAgICAgICAgICAgICAgICB2PSc9Jy5qb2luKHZhbHNbMTpdKQogICAg
- ICAgICAgICAgICAgICAgICAgICAjbix2PWguc3BsaXQoJz0nKQogICAgICAgICAgICAgICAgICAg
- IHByaW50IG4sdgogICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbbl09dgogICAgICAgICAgICAg
- ICAgICAgIAogICAgICAgICAgICByZXEgPSB1cmxsaWIyLlJlcXVlc3QodXJsLE5vbmUsaGVhZGVy
- cykKICAgICAgICAgICAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9wZW4ocmVxKQogICAgICAgICAg
- ICBkYXRhID0gcmVzcG9uc2UucmVhZCgpCiAgICAgICAgICAgIHJlc3BvbnNlLmNsb3NlKCkKICAg
- ICAgICAgICAgcmV0dXJuIGRhdGEKICAgICAgICBleGNlcHQgdXJsbGliMi5VUkxFcnJvciwgZToK
- ICAgICAgICAgICAgYWRkb25fbG9nKCdVUkw6ICcrdXJsKQogICAgICAgICAgICBpZiBoYXNhdHRy
- KGUsICdjb2RlJyk6CiAgICAgICAgICAgICAgICBhZGRvbl9sb2coJ1dlIGZhaWxlZCB3aXRoIGVy
- cm9yIGNvZGUgLSAlcy4nICUgZS5jb2RlKQogICAgICAgICAgICAgICAgeGJtYy5leGVjdXRlYnVp
- bHRpbigiWEJNQy5Ob3RpZmljYXRpb24oQ29jaW5hVHUsV2UgZmFpbGVkIHdpdGggZXJyb3IgY29k
- ZSAtICIrc3RyKGUuY29kZSkrIiwxMDAwMCwiK2ljb24rIikiKQoJCQkJCiAgICAgICAgICAgIGVs
- aWYgaGFzYXR0cihlLCAncmVhc29uJyk6CiAgICAgICAgICAgICAgICBhZGRvbl9sb2coJ1dlIGZh
- aWxlZCB0byByZWFjaCBhIHNlcnZlci4nKQogICAgICAgICAgICAgICAgYWRkb25fbG9nKCdSZWFz
- b246ICVzJyAlZS5yZWFzb24pCiAgICAgICAgICAgICAgICB4Ym1jLmV4ZWN1dGVidWlsdGluKCJY
- Qk1DLk5vdGlmaWNhdGlvbihDb2NpbmFUdSxXZSBmYWlsZWQgdG8gcmVhY2ggYSBzZXJ2ZXIuIC0g
- IitzdHIoZS5yZWFzb24pKyIsMTAwMDAsIitpY29uKyIpIikKCgkJCQkJCQkJCgkJCQkKCQkJCQpk
- ZWYgZ2V0U291cmNlcygpOgoJdHJ5OgoJCWlmIG9zLnBhdGguZXhpc3RzKGZhdm9yaXRlcykgPT0g
- VHJ1ZToKCQkJRkFWID0gb3BlbihmYXZvcml0ZXMpLnJlYWQoKQoJCQlpZiBGQVYgPT0gIltdIjoK
- CQkJCW9zLnJlbW92ZShmYXZvcml0ZXMpCgkJCWVsc2U6CgkJCQkjYWRkRGlyKCdbQ09MT1Igd2hp
- dGVdW0JdRkFWT1JJVE9TWy9DT0xPUl1bL0JdJywndXJsJyw0LG9zLnBhdGguam9pbihob21lLCAn
- cmVzb3VyY2VzJywgJycpLEZBTkFSVCwnJywnJywnJywnJykKCQkJCWFkZERpcignW0NPTE9SIG9y
- YW5nZV1GYXZvcml0b3NbL0NPTE9SXScsJ3VybCcsNCxmYXZvcml0b3MsRkFOQVJULCcnLCcnLCcn
- LCcnKQogICAgICAgICAgICAgICAKCQlzb3VyY2VzID0gU09VUkNFUwogICAgICAgICAgICAgICAg
- I3ByaW50ICdzb3VyY2VzJyxzb3VyY2VzCiAgICAgICAgICAgICAgICBpZiBsZW4oc291cmNlcykg
- PiAxOgogICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHNvdXJjZXM6CiAgICAgICAgICAgICAg
- ICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIGZvciBwcmUgMS4w
- Ljggc291cmNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpLCBs
- aXN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGREaXIoaVswXS5lbmNvZGUo
- J3V0Zi04JyksaVsxXS5lbmNvZGUoJ3V0Zi04JyksMSxpY29uLEZBTkFSVCwnJywnJywnJywnJywn
- c291cmNlJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgdGh1bWIgPSBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgZmFuYXJ0ID0gRkFOQVJUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVz
- YyA9ICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA9ICcnCiAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgY3JlZGl0cyA9ICdDb2NpbmFUdScKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICBnZW5yZSA9ICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgaWYgaS5oYXNfa2V5KCd0aHVtYm5haWwnKToKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgdGh1bWIgPSBpWyd0aHVtYm5haWwnXQogICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIGlmIGkuaGFzX2tleSgnZmFuYXJ0Jyk6CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIGZhbmFydCA9IGlbJ2ZhbmFydCddCiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgaWYgaS5oYXNfa2V5KCdkZXNjcmlwdGlvbicpOgogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBkZXNjID0gaVsnZGVzY3JpcHRpb24nXQogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIGlmIGkuaGFzX2tleSgnZGF0ZScpOgogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBkYXRlID0gaVsnZGF0ZSddCiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgaWYgaS5oYXNfa2V5KCdnZW5yZScpOgogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICBnZW5yZSA9IGlbJ2dlbnJlJ10KICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICBpZiBpLmhhc19rZXkoJ2NyZWRpdHMnKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgY3JlZGl0cyA9IGlbJ2NyZWRpdHMnXQogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIGFkZERpcihpWyd0aXRsZSddLmVuY29kZSgndXRmLTgnKSxpWyd1cmwnXS5lbmNvZGUo
- J3V0Zi04JyksMSx0aHVtYixmYW5hcnQsZGVzYyxnZW5yZSxkYXRlLGNyZWRpdHMsJ3NvdXJjZScp
- CiAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdDogdHJhY2ViYWNrLnByaW50X2V4YygpCiAg
- ICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgIGlmIGxlbihzb3VyY2VzKSA9
- PSAxOgogICAgICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNvdXJjZXNbMF0sIGxp
- c3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RGF0YShzb3VyY2VzWzBdWzFdLmVu
- Y29kZSgndXRmLTgnKSxGQU5BUlQpCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICBnZXREYXRhKHNvdXJjZXNbMF1bJ3VybCddLCBzb3VyY2Vz
- WzBdWydmYW5hcnQnXSkKICAgICAgICBleGNlcHQ6IHRyYWNlYmFjay5wcmludF9leGMoKQoKZGVm
- IGFkZFNvdXJjZSh1cmw9Tm9uZSk6CiAgICAgICAgaWYgdXJsIGlzIE5vbmU6CiAgICAgICAgICAg
- IGlmIG5vdCBhZGRvbi5nZXRTZXR0aW5nKCJuZXdfZmlsZV9zb3VyY2UiKSA9PSAiIjoKICAgICAg
- ICAgICAgICAgc291cmNlX3VybCA9IGFkZG9uLmdldFNldHRpbmcoJ25ld19maWxlX3NvdXJjZScp
- LmRlY29kZSgndXRmLTgnKQogICAgICAgICAgICBlbGlmIG5vdCBhZGRvbi5nZXRTZXR0aW5nKCJu
- ZXdfdXJsX3NvdXJjZSIpID09ICIiOgogICAgICAgICAgICAgICBzb3VyY2VfdXJsID0gYWRkb24u
- Z2V0U2V0dGluZygnbmV3X3VybF9zb3VyY2UnKS5kZWNvZGUoJ3V0Zi04JykKICAgICAgICBlbHNl
- OgogICAgICAgICAgICBzb3VyY2VfdXJsID0gdXJsCiAgICAgICAgaWYgc291cmNlX3VybCA9PSAn
- JyBvciBzb3VyY2VfdXJsIGlzIE5vbmU6CiAgICAgICAgICAgIHJldHVybgogICAgICAgIGFkZG9u
- X2xvZygnQWRkaW5nIE5ldyBTb3VyY2U6ICcrc291cmNlX3VybC5lbmNvZGUoJ3V0Zi04JykpCgog
- ICAgICAgIG1lZGlhX2luZm8gPSBOb25lCiAgICAgICAgI3ByaW50ICdzb3VyY2VfdXJsJyxzb3Vy
- Y2VfdXJsCiAgICAgICAgZGF0YSA9IGdldFNvdXAoc291cmNlX3VybCkKICAgICAgICAgICAgICAg
- IAogICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSxCZWF1dGlmdWxTT0FQKToKICAgICAgICAgICAg
- aWYgZGF0YS5maW5kKCdjaGFubmVsc19pbmZvJyk6CiAgICAgICAgICAgICAgICBtZWRpYV9pbmZv
- ID0gZGF0YS5jaGFubmVsc19pbmZvCiAgICAgICAgICAgIGVsaWYgZGF0YS5maW5kKCdpdGVtc19p
- bmZvJyk6CiAgICAgICAgICAgICAgICBtZWRpYV9pbmZvID0gZGF0YS5pdGVtc19pbmZvCiAgICAg
- ICAgaWYgbWVkaWFfaW5mbzoKICAgICAgICAgICAgc291cmNlX21lZGlhID0ge30KICAgICAgICAg
- ICAgc291cmNlX21lZGlhWyd1cmwnXSA9IHNvdXJjZV91cmwKICAgICAgICAgICAgdHJ5OiBzb3Vy
- Y2VfbWVkaWFbJ3RpdGxlJ10gPSBtZWRpYV9pbmZvLnRpdGxlLnN0cmluZwogICAgICAgICAgICBl
- eGNlcHQ6IHBhc3MKICAgICAgICAgICAgdHJ5OiBzb3VyY2VfbWVkaWFbJ3RodW1ibmFpbCddID0g
- bWVkaWFfaW5mby50aHVtYm5haWwuc3RyaW5nCiAgICAgICAgICAgIGV4Y2VwdDogcGFzcwogICAg
- ICAgICAgICB0cnk6IHNvdXJjZV9tZWRpYVsnZmFuYXJ0J10gPSBtZWRpYV9pbmZvLmZhbmFydC5z
- dHJpbmcKICAgICAgICAgICAgZXhjZXB0OiBwYXNzCiAgICAgICAgICAgIHRyeTogc291cmNlX21l
- ZGlhWydnZW5yZSddID0gbWVkaWFfaW5mby5nZW5yZS5zdHJpbmcKICAgICAgICAgICAgZXhjZXB0
- OiBwYXNzCiAgICAgICAgICAgIHRyeTogc291cmNlX21lZGlhWydkZXNjcmlwdGlvbiddID0gbWVk
- aWFfaW5mby5kZXNjcmlwdGlvbi5zdHJpbmcKICAgICAgICAgICAgZXhjZXB0OiBwYXNzCiAgICAg
- ICAgICAgIHRyeTogc291cmNlX21lZGlhWydkYXRlJ10gPSBtZWRpYV9pbmZvLmRhdGUuc3RyaW5n
- CiAgICAgICAgICAgIGV4Y2VwdDogcGFzcwogICAgICAgICAgICB0cnk6IHNvdXJjZV9tZWRpYVsn
- Y3JlZGl0cyddID0gbWVkaWFfaW5mby5jcmVkaXRzLnN0cmluZwogICAgICAgICAgICBleGNlcHQ6
- IHBhc3MKICAgICAgICBlbHNlOgogICAgICAgICAgICBpZiAnLycgaW4gc291cmNlX3VybDoKICAg
- ICAgICAgICAgICAgIG5hbWVTdHIgPSBzb3VyY2VfdXJsLnNwbGl0KCcvJylbLTFdLnNwbGl0KCcu
- JylbMF0KICAgICAgICAgICAgaWYgJ1xcJyBpbiBzb3VyY2VfdXJsOgogICAgICAgICAgICAgICAg
- bmFtZVN0ciA9IHNvdXJjZV91cmwuc3BsaXQoJ1xcJylbLTFdLnNwbGl0KCcuJylbMF0KICAgICAg
- ICAgICAgaWYgJyUnIGluIG5hbWVTdHI6CiAgICAgICAgICAgICAgICBuYW1lU3RyID0gdXJsbGli
- LnVucXVvdGVfcGx1cyhuYW1lU3RyKQogICAgICAgICAgICBrZXlib2FyZCA9IHhibWMuS2V5Ym9h
- cmQobmFtZVN0ciwnRGlzcGxheWVkIE5hbWUsIFJlbmFtZT8nKQogICAgICAgICAgICBrZXlib2Fy
- ZC5kb01vZGFsKCkKICAgICAgICAgICAgaWYgKGtleWJvYXJkLmlzQ29uZmlybWVkKCkgPT0gRmFs
- c2UpOgogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIG5ld1N0ciA9IGtleWJvYXJk
- LmdldFRleHQoKQogICAgICAgICAgICBpZiBsZW4obmV3U3RyKSA9PSAwOgogICAgICAgICAgICAg
- ICAgcmV0dXJuCiAgICAgICAgICAgIHNvdXJjZV9tZWRpYSA9IHt9CiAgICAgICAgICAgIHNvdXJj
- ZV9tZWRpYVsndGl0bGUnXSA9IG5ld1N0cgogICAgICAgICAgICBzb3VyY2VfbWVkaWFbJ3VybCdd
- ID0gc291cmNlX3VybAogICAgICAgICAgICBzb3VyY2VfbWVkaWFbJ2ZhbmFydCddID0gZmFuYXJ0
- CgogICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNvdXJjZV9maWxlKT09RmFsc2U6CiAgICAgICAg
- ICAgIHNvdXJjZV9saXN0ID0gW10KICAgICAgICAgICAgc291cmNlX2xpc3QuYXBwZW5kKHNvdXJj
- ZV9tZWRpYSkKICAgICAgICAgICAgYiA9IG9wZW4oc291cmNlX2ZpbGUsInciKQogICAgICAgICAg
- ICBiLndyaXRlKGpzb24uZHVtcHMoc291cmNlX2xpc3QpKQogICAgICAgICAgICBiLmNsb3NlKCkK
- ICAgICAgICBlbHNlOgogICAgICAgICAgICBzb3VyY2VzID0ganNvbi5sb2FkcyhvcGVuKHNvdXJj
- ZV9maWxlLCJyIikucmVhZCgpKQogICAgICAgICAgICBzb3VyY2VzLmFwcGVuZChzb3VyY2VfbWVk
- aWEpCiAgICAgICAgICAgIGIgPSBvcGVuKHNvdXJjZV9maWxlLCJ3IikKICAgICAgICAgICAgYi53
- cml0ZShqc29uLmR1bXBzKHNvdXJjZXMpKQogICAgICAgICAgICBiLmNsb3NlKCkKICAgICAgICBh
- ZGRvbi5zZXRTZXR0aW5nKCduZXdfdXJsX3NvdXJjZScsICIiKQogICAgICAgIGFkZG9uLnNldFNl
- dHRpbmcoJ25ld19maWxlX3NvdXJjZScsICIiKQogICAgICAgIHhibWMuZXhlY3V0ZWJ1aWx0aW4o
- IlhCTUMuTm90aWZpY2F0aW9uKENvY2luYVR1LE5ldyBzb3VyY2UgYWRkZWQuLDUwMDAsIitpY29u
- KyIpIikKICAgICAgICBpZiBub3QgdXJsIGlzIE5vbmU6CiAgICAgICAgICAgIGlmICd4Ym1jcGx1
- cy54Yi5mdW5waWMuZGUnIGluIHVybDoKICAgICAgICAgICAgICAgIHhibWMuZXhlY3V0ZWJ1aWx0
- aW4oIlhCTUMuQ29udGFpbmVyLlVwZGF0ZSglcz9tb2RlPTE0LHJlcGxhY2UpIiAlc3lzLmFyZ3Zb
- MF0pCiAgICAgICAgICAgIGVsaWYgJ2NvbW11bml0eS1saW5rcycgaW4gdXJsOgogICAgICAgICAg
- ICAgICAgeGJtYy5leGVjdXRlYnVpbHRpbigiWEJNQy5Db250YWluZXIuVXBkYXRlKCVzP21vZGU9
- MTAscmVwbGFjZSkiICVzeXMuYXJndlswXSkKICAgICAgICBlbHNlOiBhZGRvbi5vcGVuU2V0dGlu
- Z3MoKQoKZGVmIHJtU291cmNlKG5hbWUpOgogICAgICAgIHNvdXJjZXMgPSBqc29uLmxvYWRzKG9w
- ZW4oc291cmNlX2ZpbGUsInIiKS5yZWFkKCkpCiAgICAgICAgZm9yIGluZGV4IGluIHJhbmdlKGxl
- bihzb3VyY2VzKSk6CiAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc291cmNlc1tpbmRleF0sIGxp
- c3QpOgogICAgICAgICAgICAgICAgaWYgc291cmNlc1tpbmRleF1bMF0gPT0gbmFtZToKICAgICAg
- ICAgICAgICAgICAgICBkZWwgc291cmNlc1tpbmRleF0KICAgICAgICAgICAgICAgICAgICBiID0g
- b3Blbihzb3VyY2VfZmlsZSwidyIpCiAgICAgICAgICAgICAgICAgICAgYi53cml0ZShqc29uLmR1
- bXBzKHNvdXJjZXMpKQogICAgICAgICAgICAgICAgICAgIGIuY2xvc2UoKQogICAgICAgICAgICAg
- ICAgICAgIGJyZWFrCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBpZiBzb3VyY2Vz
- W2luZGV4XVsndGl0bGUnXSA9PSBuYW1lOgogICAgICAgICAgICAgICAgICAgIGRlbCBzb3VyY2Vz
- W2luZGV4XQogICAgICAgICAgICAgICAgICAgIGIgPSBvcGVuKHNvdXJjZV9maWxlLCJ3IikKICAg
- ICAgICAgICAgICAgICAgICBiLndyaXRlKGpzb24uZHVtcHMoc291cmNlcykpCiAgICAgICAgICAg
- ICAgICAgICAgYi5jbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICB4Ym1j
- LmV4ZWN1dGVidWlsdGluKCJYQk1DLkNvbnRhaW5lci5SZWZyZXNoIikKCmRlZiBnZXRfeG1sX2Rh
- dGFiYXNlKHVybCwgYnJvd3NlPUZhbHNlKToKICAgICAgICBpZiB1cmwgaXMgTm9uZToKICAgICAg
- ICAgICAgdXJsID0gJ2h0dHA6Ly94Ym1jcGx1cy54Yi5mdW5waWMuZGUvd3d3LWRhdGEvZmlsZXN5
- c3RlbS8nCiAgICAgICAgc291cCA9IEJlYXV0aWZ1bFNvdXAobWFrZVJlcXVlc3QodXJsKSwgY29u
- dmVydEVudGl0aWVzPUJlYXV0aWZ1bFNvdXAuSFRNTF9FTlRJVElFUykKICAgICAgICBmb3IgaSBp
- biBzb3VwKCdhJyk6CiAgICAgICAgICAgIGhyZWYgPSBpWydocmVmJ10KICAgICAgICAgICAgaWYg
- bm90IGhyZWYuc3RhcnRzd2l0aCgnPycpOgogICAgICAgICAgICAgICAgbmFtZSA9IGkuc3RyaW5n
- CiAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBbJ1BhcmVudCBEaXJlY3RvcnknLCAncmVj
- eWNsZV9iaW4vJ106CiAgICAgICAgICAgICAgICAgICAgaWYgaHJlZi5lbmRzd2l0aCgnLycpOgog
- ICAgICAgICAgICAgICAgICAgICAgICBpZiBicm93c2U6CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICBhZGREaXIobmFtZSx1cmwraHJlZiwxNSxpY29uLGZhbmFydCwnJywnJywnJykKICAgICAg
- ICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZERp
- cihuYW1lLHVybCtocmVmLDE0LGljb24sZmFuYXJ0LCcnLCcnLCcnKQogICAgICAgICAgICAgICAg
- ICAgIGVsaWYgaHJlZi5lbmRzd2l0aCgnLnhtbCcpOgogICAgICAgICAgICAgICAgICAgICAgICBp
- ZiBicm93c2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGREaXIobmFtZSx1cmwraHJl
- ZiwxLGljb24sZmFuYXJ0LCcnLCcnLCcnLCcnLCdkb3dubG9hZCcpCiAgICAgICAgICAgICAgICAg
- ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0
- cyhzb3VyY2VfZmlsZSk9PVRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
- bmFtZSBpbiBTT1VSQ0VTOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRE
- aXIobmFtZSsnIChpbiB1c2UpJyx1cmwraHJlZiwxMSxpY29uLGZhbmFydCwnJywnJywnJywnJywn
- ZG93bmxvYWQnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZERpcihuYW1lLHVybCtocmVmLDExLGljb24s
- ZmFuYXJ0LCcnLCcnLCcnLCcnLCdkb3dubG9hZCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZERpcihuYW1lLHVybCto
- cmVmLDExLGljb24sZmFuYXJ0LCcnLCcnLCcnLCcnLCdkb3dubG9hZCcpCgoKZGVmIGdldENvbW11
- bml0eVNvdXJjZXMoYnJvd3NlPUZhbHNlKToKICAgICAgICB1cmwgPSAnaHR0cDovL2NvbW11bml0
- eS1saW5rcy5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1bmsvJwogICAgICAgIHNvdXAgPSBCZWF1dGlm
- dWxTb3VwKG1ha2VSZXF1ZXN0KHVybCksIGNvbnZlcnRFbnRpdGllcz1CZWF1dGlmdWxTb3VwLkhU
- TUxfRU5USVRJRVMpCiAgICAgICAgZmlsZXMgPSBzb3VwKCd1bCcpWzBdKCdsaScpWzE6XQogICAg
- ICAgIGZvciBpIGluIGZpbGVzOgogICAgICAgICAgICBuYW1lID0gaSgnYScpWzBdWydocmVmJ10K
- ICAgICAgICAgICAgaWYgYnJvd3NlOgogICAgICAgICAgICAgICAgYWRkRGlyKG5hbWUsdXJsK25h
- bWUsMSxpY29uLGZhbmFydCwnJywnJywnJywnJywnZG93bmxvYWQnKQogICAgICAgICAgICBlbHNl
- OgogICAgICAgICAgICAgICAgYWRkRGlyKG5hbWUsdXJsK25hbWUsMTEsaWNvbixmYW5hcnQsJycs
- JycsJycsJycsJ2Rvd25sb2FkJykKCmRlZiBnZXRTb3VwKHVybCxkYXRhPU5vbmUpOgogICAgICAg
- IGdsb2JhbCB2aWV3bW9kZSx0c2Rvd25sb2FkZXIsIGhsc3JldHJ5CiAgICAgICAgdHNkb3dubG9h
- ZGVyPUZhbHNlCiAgICAgICAgaGxzcmV0cnk9RmFsc2UKICAgICAgICBpZiB1cmwuc3RhcnRzd2l0
- aCgnaHR0cDovLycpIG9yIHVybC5zdGFydHN3aXRoKCdodHRwczovLycpOgogICAgICAgICAgICBl
- bmNrZXk9RmFsc2UKICAgICAgICAgICAgaWYgJyQkVFNET1dOTE9BREVSJCQnIGluIHVybDoKICAg
- ICAgICAgICAgICAgIHRzZG93bmxvYWRlcj1UcnVlCiAgICAgICAgICAgICAgICB1cmw9dXJsLnJl
- cGxhY2UoIiQkVFNET1dOTE9BREVSJCQiLCIiKQogICAgICAgICAgICBpZiAnJCRITFNSRVRSWSQk
- JyBpbiB1cmw6CiAgICAgICAgICAgICAgICBobHNyZXRyeT1UcnVlCiAgICAgICAgICAgICAgICB1
- cmw9dXJsLnJlcGxhY2UoIiQkSExTUkVUUlkkJCIsIiIpCiAgICAgICAgICAgIGlmICckJExTUHJv
- RW5jS2V5PScgaW4gdXJsOgogICAgICAgICAgICAgICAgZW5ja2V5PXVybC5zcGxpdCgnJCRMU1By
- b0VuY0tleT0nKVsxXS5zcGxpdCgnJCQnKVswXQogICAgICAgICAgICAgICAgcnA9JyQkTFNQcm9F
- bmNLZXk9JXMkJCclZW5ja2V5CiAgICAgICAgICAgICAgICB1cmw9dXJsLnJlcGxhY2UocnAsIiIp
- CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgZGF0YSA9bWFrZVJlcXVlc3QodXJsKQogICAg
- ICAgICAgICBpZiBlbmNrZXk6CiAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHB5YWVzCiAgICAg
- ICAgICAgICAgICAgICAgZW5ja2V5PWVuY2tleS5lbmNvZGUoImFzY2lpIikKICAgICAgICAgICAg
- ICAgICAgICBwcmludCBlbmNrZXkKICAgICAgICAgICAgICAgICAgICBtaXNzaW5nYnl0ZXM9MTYt
- bGVuKGVuY2tleSkKICAgICAgICAgICAgICAgICAgICBlbmNrZXk9ZW5ja2V5KyhjaHIoMCkqKG1p
- c3NpbmdieXRlcykpCiAgICAgICAgICAgICAgICAgICAgcHJpbnQgcmVwcihlbmNrZXkpCiAgICAg
- ICAgICAgICAgICAgICAgZGF0YT1iYXNlNjQuYjY0ZGVjb2RlKGRhdGEpCiAgICAgICAgICAgICAg
- ICAgICAgZGVjcnlwdG9yID0gcHlhZXMubmV3KGVuY2tleSAsIHB5YWVzLk1PREVfRUNCLCBJVj1O
- b25lKQogICAgICAgICAgICAgICAgICAgIGRhdGE9ZGVjcnlwdG9yLmRlY3J5cHQoZGF0YSkuc3Bs
- aXQoJ1wwJylbMF0KICAgICAgICAgICAgICAgICAgICAjcHJpbnQgcmVwcihkYXRhKQogICAgICAg
- ICAgICBpZiByZS5zZWFyY2goIiNFWFRNM1UiLGRhdGEpIG9yICdtM3UnIGluIHVybDoKIyAgICAg
- ICAgICAgICAgICBwcmludCAnZm91bmQgbTN1IGRhdGEnCiAgICAgICAgICAgICAgICByZXR1cm4g
- ZGF0YQogICAgICAgIGVsaWYgZGF0YSA9PSBOb25lOgogICAgICAgICAgICBpZiBub3QgJy8nICBp
- biB1cmwgb3Igbm90ICdcXCcgaW4gdXJsOgojICAgICAgICAgICAgICAgIHByaW50ICdObyBkaXJl
- Y3RvcnkgZm91bmQuIExldHMgbWFrZSB0aGUgdXJsIHRvIGNhY2hlIGRpcicKICAgICAgICAgICAg
- ICAgIHVybCA9IG9zLnBhdGguam9pbihjb21tdW5pdHlmaWxlcyx1cmwpCiAgICAgICAgICAgIGlm
- IHhibWN2ZnMuZXhpc3RzKHVybCk6CiAgICAgICAgICAgICAgICBpZiB1cmwuc3RhcnRzd2l0aCgi
- c21iOi8vIikgb3IgdXJsLnN0YXJ0c3dpdGgoIm5mczovLyIpOgogICAgICAgICAgICAgICAgICAg
- IGNvcHkgPSB4Ym1jdmZzLmNvcHkodXJsLCBvcy5wYXRoLmpvaW4ocHJvZmlsZSwgJ3RlbXAnLCAn
- c29yY2VfdGVtcC50eHQnKSkKICAgICAgICAgICAgICAgICAgICBpZiBjb3B5OgogICAgICAgICAg
- ICAgICAgICAgICAgICBkYXRhID0gb3Blbihvcy5wYXRoLmpvaW4ocHJvZmlsZSwgJ3RlbXAnLCAn
- c29yY2VfdGVtcC50eHQnKSwgInIiKS5yZWFkKCkKICAgICAgICAgICAgICAgICAgICAgICAgeGJt
- Y3Zmcy5kZWxldGUob3MucGF0aC5qb2luKHByb2ZpbGUsICd0ZW1wJywgJ3NvcmNlX3RlbXAudHh0
- JykpCiAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgYWRk
- b25fbG9nKCJmYWlsZWQgdG8gY29weSBmcm9tIHNtYjoiKQogICAgICAgICAgICAgICAgZWxzZToK
- ICAgICAgICAgICAgICAgICAgICBkYXRhID0gb3Blbih1cmwsICdyJykucmVhZCgpCiAgICAgICAg
- ICAgICAgICAgICAgaWYgcmUubWF0Y2goIiNFWFRNM1UiLGRhdGEpb3IgJ20zdScgaW4gdXJsOgoj
- ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ2ZvdW5kIG0zdSBkYXRhJwogICAgICAgICAg
- ICAgICAgICAgICAgICByZXR1cm4gZGF0YQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAg
- ICAgYWRkb25fbG9nKCJTb3VwIERhdGEgbm90IGZvdW5kISIpCiAgICAgICAgICAgICAgICByZXR1
- cm4KICAgICAgICBpZiAnPFNldFZpZXdNb2RlPicgaW4gZGF0YToKICAgICAgICAgICAgdHJ5Ogog
- ICAgICAgICAgICAgICAgdmlld21vZGU9cmUuZmluZGFsbCgnPFNldFZpZXdNb2RlPiguKj8pPCcs
- ZGF0YSlbMF0KICAgICAgICAgICAgICAgIHhibWMuZXhlY3V0ZWJ1aWx0aW4oIkNvbnRhaW5lci5T
- ZXRWaWV3TW9kZSglcykiJXZpZXdtb2RlKQogICAgICAgICAgICAgICAgcHJpbnQgJ2RvbmUgc2V0
- dmlldycsdmlld21vZGUKICAgICAgICAgICAgZXhjZXB0OiBwYXNzCiAgICAgICAgcmV0dXJuIEJl
- YXV0aWZ1bFNPQVAoZGF0YSwgY29udmVydEVudGl0aWVzPUJlYXV0aWZ1bFN0b25lU291cC5YTUxf
- RU5USVRJRVMpCgpkZWYgcHJvY2Vzc1B5RnVuY3Rpb24oZGF0YSk6CiAgICB0cnk6CiAgICAgICAg
- aWYgZGF0YSBhbmQgbGVuKGRhdGEpPjAgYW5kIGRhdGEuc3RhcnRzd2l0aCgnJHB5RnVuY3Rpb246
- Jyk6CiAgICAgICAgICAgIGRhdGE9ZG9FdmFsKGRhdGEuc3BsaXQoJyRweUZ1bmN0aW9uOicpWzFd
- LCcnLE5vbmUsTm9uZSApCiAgICBleGNlcHQ6IHBhc3MKCiAgICByZXR1cm4gZGF0YQoKZGVmIGdl
- dERhdGEodXJsLGZhbmFydCwgZGF0YT1Ob25lKToKICAgIGltcG9ydCBjaGVja2JhZAogICAgY2hl
- Y2tiYWQuZG9fYmxvY2tfY2hlY2soRmFsc2UpCiAgICBzb3VwID0gZ2V0U291cCh1cmwsZGF0YSkK
- ICAgICNwcmludCB0eXBlKHNvdXApCiAgICBpZiBpc2luc3RhbmNlKHNvdXAsQmVhdXRpZnVsU09B
- UCk6CiAgICAjcHJpbnQgJ3h4eHh4eHh4eHhzb3VwJyxzb3VwCiAgICAgICAgaWYgbGVuKHNvdXAo
- J2NoYW5uZWxzJykpID4gMCBhbmQgYWRkb24uZ2V0U2V0dGluZygnZG9ub3RzaG93YnljaGFubmVs
- cycpID09ICdmYWxzZSc6CiAgICAgICAgICAgIGNoYW5uZWxzID0gc291cCgnY2hhbm5lbCcpCiAg
- ICAgICAgICAgIGZvciBjaGFubmVsIGluIGNoYW5uZWxzOgojICAgICAgICAgICAgICAgIHByaW50
- IGNoYW5uZWwKCiAgICAgICAgICAgICAgICBsaW5rZWRVcmw9JycKICAgICAgICAgICAgICAgIGxj
- b3VudD0wCiAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgbGlua2VkVXJs
- ID0gIGNoYW5uZWwoJ2V4dGVybmFsbGluaycpWzBdLnN0cmluZwogICAgICAgICAgICAgICAgICAg
- IGxjb3VudD1sZW4oY2hhbm5lbCgnZXh0ZXJuYWxsaW5rJykpCiAgICAgICAgICAgICAgICBleGNl
- cHQ6IHBhc3MKICAgICAgICAgICAgICAgICNwcmludCAnbGlua2VkVXJsJyxsaW5rZWRVcmwsbGNv
- dW50CiAgICAgICAgICAgICAgICBpZiBsY291bnQ+MTogbGlua2VkVXJsPScnCgogICAgICAgICAg
- ICAgICAgbmFtZSA9IGNoYW5uZWwoJ25hbWUnKVswXS5zdHJpbmcKICAgICAgICAgICAgICAgIHRy
- eToKICAgICAgICAgICAgICAgICAgICBuYW1lPXByb2Nlc3NQeUZ1bmN0aW9uKG5hbWUpCiAgICAg
- ICAgICAgICAgICBleGNlcHQ6IHBhc3MgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB0
- aHVtYm5haWwgPSBjaGFubmVsKCd0aHVtYm5haWwnKVswXS5zdHJpbmcKICAgICAgICAgICAgICAg
- IGlmIHRodW1ibmFpbCA9PSBOb25lOgogICAgICAgICAgICAgICAgICAgIHRodW1ibmFpbCA9ICcn
- CiAgICAgICAgICAgICAgICB0aHVtYm5haWw9cHJvY2Vzc1B5RnVuY3Rpb24odGh1bWJuYWlsKQog
- ICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsKCdm
- YW5hcnQnKToKICAgICAgICAgICAgICAgICAgICAgICAgaWYgYWRkb24uZ2V0U2V0dGluZygndXNl
- X3RodW1iJykgPT0gInRydWUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFuQXJ0ID0g
- dGh1bWJuYWlsCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICBmYW5BcnQgPSBmYW5hcnQKICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAg
- ICAgICAgICAgICAgICAgICAgICBmYW5BcnQgPSBjaGFubmVsKCdmYW5hcnQnKVswXS5zdHJpbmcK
- ICAgICAgICAgICAgICAgICAgICBpZiBmYW5BcnQgPT0gTm9uZToKICAgICAgICAgICAgICAgICAg
- ICAgICAgcmFpc2UKICAgICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICAgICBm
- YW5BcnQgPSBmYW5hcnQKCiAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAg
- ZGVzYyA9IGNoYW5uZWwoJ2luZm8nKVswXS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICBpZiBk
- ZXNjID09IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAg
- ICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgZGVzYyA9ICcnCgogICAgICAgICAgICAgICAg
- dHJ5OgogICAgICAgICAgICAgICAgICAgIGdlbnJlID0gY2hhbm5lbCgnZ2VucmUnKVswXS5zdHJp
- bmcKICAgICAgICAgICAgICAgICAgICBpZiBnZW5yZSA9PSBOb25lOgogICAgICAgICAgICAgICAg
- ICAgICAgICByYWlzZQogICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgICAg
- IGdlbnJlID0gJycKCiAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgZGF0
- ZSA9IGNoYW5uZWwoJ2RhdGUnKVswXS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICBpZiBkYXRl
- ID09IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICBl
- eGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgZGF0ZSA9ICcnCgogICAgICAgICAgICAgICAgdHJ5
- OgogICAgICAgICAgICAgICAgICAgIGNyZWRpdHMgPSBjaGFubmVsKCdjcmVkaXRzJylbMF0uc3Ry
- aW5nCiAgICAgICAgICAgICAgICAgICAgaWYgY3JlZGl0cyA9PSBOb25lOgogICAgICAgICAgICAg
- ICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAg
- ICAgIGNyZWRpdHMgPSAnJwoKICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAg
- ICBpZiBsaW5rZWRVcmw9PScnOgogICAgICAgICAgICAgICAgICAgICAgICBhZGREaXIobmFtZS5l
- bmNvZGUoJ3V0Zi04JywgJ2lnbm9yZScpLHVybC5lbmNvZGUoJ3V0Zi04JyksMix0aHVtYm5haWws
- ZmFuQXJ0LGRlc2MsZ2VucmUsZGF0ZSxjcmVkaXRzLFRydWUpCiAgICAgICAgICAgICAgICAgICAg
- ZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50IGxpbmtlZFVybAogICAgICAgICAg
- ICAgICAgICAgICAgICBhZGREaXIobmFtZS5lbmNvZGUoJ3V0Zi04JyksbGlua2VkVXJsLmVuY29k
- ZSgndXRmLTgnKSwxLHRodW1ibmFpbCxmYW5BcnQsZGVzYyxnZW5yZSxkYXRlLE5vbmUsJ3NvdXJj
- ZScpCiAgICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgYWRkb25fbG9n
- KCdUaGVyZSB3YXMgYSBwcm9ibGVtIGFkZGluZyBkaXJlY3RvcnkgZnJvbSBnZXREYXRhKCk6ICcr
- bmFtZS5lbmNvZGUoJ3V0Zi04JywgJ2lnbm9yZScpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAg
- IGFkZG9uX2xvZygnTm8gQ2hhbm5lbHM6IGdldEl0ZW1zJykKICAgICAgICAgICAgZ2V0SXRlbXMo
- c291cCgnaXRlbScpLGZhbmFydCkKICAgIGVsc2U6CiAgICAgICAgcGFyc2VfbTN1KHNvdXApCiMg
- Ym9ycm93IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2VuZW45Mi9QMlAtU3RyZWFtcy1YQk1DL2Js
- b2IvbWFzdGVyL3BsdWdpbi52aWRlby5wMnAtc3RyZWFtcy9yZXNvdXJjZXMvY29yZS9saXZlc3Ry
- ZWFtcy5weQojIFRoaXMgd2lsbCBub3QgZ28gdGhyb3VnaCB0aGUgZ2V0SXRlbXMgZnVuY3Rpb25z
- ICggbWVhbnMgeW91IG11c3QgaGF2ZSByZWFkeSB0byBwbGF5IHVybCwgbm8gcmVnZXgpCmRlZiBw
- YXJzZV9tM3UoZGF0YSk6CiAgICBjb250ZW50ID0gZGF0YS5yc3RyaXAoKQogICAgbWF0Y2ggPSBy
- ZS5jb21waWxlKHInI0VYVElORjooLis/KSwoLio/KVtcblxyXSsoW15cclxuXSspJykuZmluZGFs
- bChjb250ZW50KQogICAgdG90YWwgPSBsZW4obWF0Y2gpCiAgICBwcmludCAndHNkb3dubG9hZGVy
- Jyx0c2Rvd25sb2FkZXIKIyAgICBwcmludCAndG90YWwgbTN1IGxpbmtzJyx0b3RhbAogICAgZm9y
- IG90aGVyLGNoYW5uZWxfbmFtZSxzdHJlYW1fdXJsIGluIG1hdGNoOgogICAgICAgIAogICAgICAg
- IGlmICd0dmctbG9nbycgaW4gb3RoZXI6CiAgICAgICAgICAgIHRodW1ibmFpbCA9IHJlX21lKG90
- aGVyLCd0dmctbG9nbz1bXCciXSguKj8pW1wnIl0nKQogICAgICAgICAgICBpZiB0aHVtYm5haWw6
- CiAgICAgICAgICAgICAgICBpZiB0aHVtYm5haWwuc3RhcnRzd2l0aCgnaHR0cCcpOgogICAgICAg
- ICAgICAgICAgICAgIHRodW1ibmFpbCA9IHRodW1ibmFpbAoKICAgICAgICAgICAgICAgIGVsaWYg
- bm90IGFkZG9uLmdldFNldHRpbmcoJ2xvZ28tZm9sZGVyUGF0aCcpID09ICIiOgogICAgICAgICAg
- ICAgICAgICAgIGxvZ29fdXJsID0gYWRkb24uZ2V0U2V0dGluZygnbG9nby1mb2xkZXJQYXRoJykK
- ICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWwgPSBsb2dvX3VybCArIHRodW1ibmFpbAoKICAg
- ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgdGh1bWJuYWlsID0gdGh1bWJu
- YWlsCiAgICAgICAgICAgICNlbHNlOgoKICAgICAgICBlbHNlOgogICAgICAgICAgICB0aHVtYm5h
- aWwgPSAnJwogICAgICAgIAogICAgICAgIGlmICd0eXBlJyBpbiBvdGhlcjoKICAgICAgICAgICAg
- bW9kZV90eXBlID0gcmVfbWUob3RoZXIsJ3R5cGU9W1wnIl0oLio/KVtcJyJdJykKICAgICAgICAg
- ICAgaWYgbW9kZV90eXBlID09ICd5dC1kbCc6CiAgICAgICAgICAgICAgICBzdHJlYW1fdXJsID0g
- c3RyZWFtX3VybCArIiZtb2RlPTE4IgogICAgICAgICAgICBlbGlmIG1vZGVfdHlwZSA9PSAncmVn
- ZXgnOgogICAgICAgICAgICAgICAgdXJsID0gc3RyZWFtX3VybC5zcGxpdCgnJnJlZ2V4cz0nKQog
- ICAgICAgICAgICAgICAgI3ByaW50IHVybFswXSBnZXRTb3VwKHVybCxkYXRhPU5vbmUpCiAgICAg
- ICAgICAgICAgICByZWdleHMgPSBwYXJzZV9yZWdleChnZXRTb3VwKCcnLGRhdGE9dXJsWzFdKSkK
- CiAgICAgICAgICAgICAgICBhZGRMaW5rKHVybFswXSwgY2hhbm5lbF9uYW1lLHRodW1ibmFpbCwn
- JywnJywnJywnJywnJyxOb25lLHJlZ2V4cyx0b3RhbCkKICAgICAgICAgICAgICAgIGNvbnRpbnVl
- CiAgICAgICAgICAgIGVsaWYgbW9kZV90eXBlID09ICdmdHYnOgogICAgICAgICAgICAgICAgc3Ry
- ZWFtX3VybCA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8uRi5ULlYvP25hbWU9Jyt1cmxsaWIucXVv
- dGUoY2hhbm5lbF9uYW1lKSArJyZ1cmw9JyArc3RyZWFtX3VybCArJyZtb2RlPTEyNSZjaF9mYW5h
- cnQ9bmEnCiAgICAgICAgZWxpZiB0c2Rvd25sb2FkZXIgYW5kICcudHMnIGluIHN0cmVhbV91cmw6
- CiAgICAgICAgICAgIHN0cmVhbV91cmwgPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmY0bVRlc3Rl
- ci8/dXJsPScrdXJsbGliLnF1b3RlX3BsdXMoc3RyZWFtX3VybCkrJyZhbXA7c3RyZWFtdHlwZT1U
- U0RPV05MT0FERVImbmFtZT0nK3VybGxpYi5xdW90ZShjaGFubmVsX25hbWUpCiAgICAgICAgZWxp
- ZiBobHNyZXRyeSBhbmQgJy5tM3U4JyBpbiBzdHJlYW1fdXJsOgogICAgICAgICAgICBzdHJlYW1f
- dXJsID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby5mNG1UZXN0ZXIvP3VybD0nK3VybGxpYi5xdW90
- ZV9wbHVzKHN0cmVhbV91cmwpKycmYW1wO3N0cmVhbXR5cGU9SExTUkVUUlkmbmFtZT0nK3VybGxp
- Yi5xdW90ZShjaGFubmVsX25hbWUpCiAgICAgICAgYWRkTGluayhzdHJlYW1fdXJsLCBjaGFubmVs
- X25hbWUsdGh1bWJuYWlsLCcnLCcnLCcnLCcnLCcnLE5vbmUsJycsdG90YWwpCmRlZiBnZXRDaGFu
- bmVsSXRlbXMobmFtZSx1cmwsZmFuYXJ0KToKICAgICAgICBzb3VwID0gZ2V0U291cCh1cmwpCiAg
- ICAgICAgY2hhbm5lbF9saXN0ID0gc291cC5maW5kKCdjaGFubmVsJywgYXR0cnM9eyduYW1lJyA6
- IG5hbWUuZGVjb2RlKCd1dGYtOCcpfSkKICAgICAgICBpdGVtcyA9IGNoYW5uZWxfbGlzdCgnaXRl
- bScpCiAgICAgICAgdHJ5OgogICAgICAgICAgICBmYW5BcnQgPSBjaGFubmVsX2xpc3QoJ2ZhbmFy
- dCcpWzBdLnN0cmluZwogICAgICAgICAgICBpZiBmYW5BcnQgPT0gTm9uZToKICAgICAgICAgICAg
- ICAgIHJhaXNlCiAgICAgICAgZXhjZXB0OgogICAgICAgICAgICBmYW5BcnQgPSBmYW5hcnQKICAg
- ICAgICBmb3IgY2hhbm5lbCBpbiBjaGFubmVsX2xpc3QoJ3N1YmNoYW5uZWwnKToKICAgICAgICAg
- ICAgbmFtZSA9IGNoYW5uZWwoJ25hbWUnKVswXS5zdHJpbmcKICAgICAgICAgICAgdHJ5OgogICAg
- ICAgICAgICAgICAgbmFtZT1wcm9jZXNzUHlGdW5jdGlvbihuYW1lKQogICAgICAgICAgICBleGNl
- cHQ6IHBhc3MKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgdGh1bWJuYWlsID0gY2hh
- bm5lbCgndGh1bWJuYWlsJylbMF0uc3RyaW5nCiAgICAgICAgICAgICAgICBpZiB0aHVtYm5haWwg
- PT0gTm9uZToKICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgICAgdGh1bWJu
- YWlsPXByb2Nlc3NQeUZ1bmN0aW9uKHRodW1ibmFpbCkKICAgICAgICAgICAgZXhjZXB0OgogICAg
- ICAgICAgICAgICAgdGh1bWJuYWlsID0gJycKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
- ICAgaWYgbm90IGNoYW5uZWwoJ2ZhbmFydCcpOgogICAgICAgICAgICAgICAgICAgIGlmIGFkZG9u
- LmdldFNldHRpbmcoJ3VzZV90aHVtYicpID09ICJ0cnVlIjoKICAgICAgICAgICAgICAgICAgICAg
- ICAgZmFuQXJ0ID0gdGh1bWJuYWlsCiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAg
- ICAgICAgIGZhbkFydCA9IGNoYW5uZWwoJ2ZhbmFydCcpWzBdLnN0cmluZwogICAgICAgICAgICAg
- ICAgaWYgZmFuQXJ0ID09IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAg
- ICAgZXhjZXB0OgogICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICB0cnk6CiAgICAgICAg
- ICAgICAgICBkZXNjID0gY2hhbm5lbCgnaW5mbycpWzBdLnN0cmluZwogICAgICAgICAgICAgICAg
- aWYgZGVzYyA9PSBOb25lOgogICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgIGV4
- Y2VwdDoKICAgICAgICAgICAgICAgIGRlc2MgPSAnJwoKICAgICAgICAgICAgdHJ5OgogICAgICAg
- ICAgICAgICAgZ2VucmUgPSBjaGFubmVsKCdnZW5yZScpWzBdLnN0cmluZwogICAgICAgICAgICAg
- ICAgaWYgZ2VucmUgPT0gTm9uZToKICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAg
- ICBleGNlcHQ6CiAgICAgICAgICAgICAgICBnZW5yZSA9ICcnCgogICAgICAgICAgICB0cnk6CiAg
- ICAgICAgICAgICAgICBkYXRlID0gY2hhbm5lbCgnZGF0ZScpWzBdLnN0cmluZwogICAgICAgICAg
- ICAgICAgaWYgZGF0ZSA9PSBOb25lOgogICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAg
- ICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgIGRhdGUgPSAnJwoKICAgICAgICAgICAgdHJ5Ogog
- ICAgICAgICAgICAgICAgY3JlZGl0cyA9IGNoYW5uZWwoJ2NyZWRpdHMnKVswXS5zdHJpbmcKICAg
- ICAgICAgICAgICAgIGlmIGNyZWRpdHMgPT0gTm9uZToKICAgICAgICAgICAgICAgICAgICByYWlz
- ZQogICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICBjcmVkaXRzID0gJycKCiAgICAg
- ICAgICAgIHRyeToKICAgICAgICAgICAgICAgIGFkZERpcihuYW1lLmVuY29kZSgndXRmLTgnLCAn
- aWdub3JlJyksdXJsLmVuY29kZSgndXRmLTgnKSwzLHRodW1ibmFpbCxmYW5BcnQsZGVzYyxnZW5y
- ZSxjcmVkaXRzLGRhdGUpCiAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgIGFkZG9u
- X2xvZygnVGhlcmUgd2FzIGEgcHJvYmxlbSBhZGRpbmcgZGlyZWN0b3J5IC0gJytuYW1lLmVuY29k
- ZSgndXRmLTgnLCAnaWdub3JlJykpCiAgICAgICAgZ2V0SXRlbXMoaXRlbXMsZmFuQXJ0KQoKCmRl
- ZiBnZXRTdWJDaGFubmVsSXRlbXMobmFtZSx1cmwsZmFuYXJ0KToKICAgICAgICBzb3VwID0gZ2V0
- U291cCh1cmwpCiAgICAgICAgY2hhbm5lbF9saXN0ID0gc291cC5maW5kKCdzdWJjaGFubmVsJywg
- YXR0cnM9eyduYW1lJyA6IG5hbWUuZGVjb2RlKCd1dGYtOCcpfSkKICAgICAgICBpdGVtcyA9IGNo
- YW5uZWxfbGlzdCgnc3ViaXRlbScpCiAgICAgICAgZ2V0SXRlbXMoaXRlbXMsZmFuYXJ0KQoKZGVm
- IGdldEl0ZW1zKGl0ZW1zLGZhbmFydCxkb250TGluaz1GYWxzZSk6CiAgICAgICAgdG90YWwgPSBs
- ZW4oaXRlbXMpCiAgICAgICAgYWRkb25fbG9nKCdUb3RhbCBJdGVtczogJXMnICV0b3RhbCkKICAg
- ICAgICBhZGRfcGxheWxpc3QgPSBhZGRvbi5nZXRTZXR0aW5nKCdhZGRfcGxheWxpc3QnKQogICAg
- ICAgIGFza19wbGF5bGlzdF9pdGVtcyA9YWRkb24uZ2V0U2V0dGluZygnYXNrX3BsYXlsaXN0X2l0
- ZW1zJykKICAgICAgICB1c2VfdGh1bWIgPSBhZGRvbi5nZXRTZXR0aW5nKCd1c2VfdGh1bWInKQog
- ICAgICAgIHBhcmVudGFsYmxvY2sgPWFkZG9uLmdldFNldHRpbmcoJ3BhcmVudGFsYmxvY2tlZCcp
- CiAgICAgICAgcGFyZW50YWxibG9jaz0gcGFyZW50YWxibG9jaz09InRydWUiCiAgICAgICAgZm9y
- IGl0ZW0gaW4gaXRlbXM6CiAgICAgICAgICAgIGlzWE1MU291cmNlPUZhbHNlCiAgICAgICAgICAg
- IGlzSnNvbnJwYyA9IEZhbHNlCiAgICAgICAgICAgIAogICAgICAgICAgICBhcHBseWJsb2NrPSdm
- YWxzZScKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgYXBwbHlibG9jayA9IGl0ZW0o
- J3BhcmVudGFsYmxvY2snKVswXS5zdHJpbmcKICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAg
- ICAgICAgYWRkb25fbG9nKCdwYXJlbnRhbGJsb2NrIEVycm9yJykKICAgICAgICAgICAgICAgIGFw
- cGx5YmxvY2sgPSAnJwogICAgICAgICAgICBpZiBhcHBseWJsb2NrPT0ndHJ1ZScgYW5kIHBhcmVu
- dGFsYmxvY2s6IGNvbnRpbnVlCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdHJ5OgogICAg
- ICAgICAgICAgICAgbmFtZSA9IGl0ZW0oJ3RpdGxlJylbMF0uc3RyaW5nCiAgICAgICAgICAgICAg
- ICBpZiBuYW1lIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICd1bmtub3duPycK
- ICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICBuYW1lPXByb2Nlc3NQeUZ1
- bmN0aW9uKG5hbWUpCiAgICAgICAgICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICAgICAgICAg
- IAogICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICBhZGRvbl9sb2coJ05hbWUgRXJy
- b3InKQogICAgICAgICAgICAgICAgbmFtZSA9ICcnCgoKICAgICAgICAgICAgdHJ5OgogICAgICAg
- ICAgICAgICAgaWYgaXRlbSgnZXBnJyk6CiAgICAgICAgICAgICAgICAgICAgaWYgaXRlbS5lcGdf
- dXJsOgogICAgICAgICAgICAgICAgICAgICAgICBhZGRvbl9sb2coJ0dldCBFUEcgUmVnZXgnKQog
- ICAgICAgICAgICAgICAgICAgICAgICBlcGdfdXJsID0gaXRlbS5lcGdfdXJsLnN0cmluZwogICAg
- ICAgICAgICAgICAgICAgICAgICBlcGdfcmVnZXggPSBpdGVtLmVwZ19yZWdleC5zdHJpbmcKICAg
- ICAgICAgICAgICAgICAgICAgICAgZXBnX25hbWUgPSBnZXRfZXBnKGVwZ191cmwsIGVwZ19yZWdl
- eCkKICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXBnX25hbWU6CiAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICBuYW1lICs9ICcgLSAnICsgZXBnX25hbWUKICAgICAgICAgICAgICAgICAgICBl
- bGlmIGl0ZW0oJ2VwZycpWzBdLnN0cmluZyA+IDE6CiAgICAgICAgICAgICAgICAgICAgICAgIG5h
- bWUgKz0gZ2V0ZXBnKGl0ZW0oJ2VwZycpWzBdLnN0cmluZykKICAgICAgICAgICAgICAgIGVsc2U6
- CiAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAg
- ICAgICBhZGRvbl9sb2coJ0VQRyBFcnJvcicpCiAgICAgICAgICAgIHRyeToKICAgICAgICAgICAg
- ICAgIHVybCA9IFtdCiAgICAgICAgICAgICAgICBpZiBsZW4oaXRlbSgnbGluaycpKSA+MDoKICAg
- ICAgICAgICAgICAgICAgICAjcHJpbnQgJ2l0ZW0gbGluaycsIGl0ZW0oJ2xpbmsnKQoKICAgICAg
- ICAgICAgICAgICAgICBmb3IgaSBpbiBpdGVtKCdsaW5rJyk6CiAgICAgICAgICAgICAgICAgICAg
- ICAgIGlmIG5vdCBpLnN0cmluZyA9PSBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
- dXJsLmFwcGVuZChpLnN0cmluZykKCiAgICAgICAgICAgICAgICBlbGlmIGxlbihpdGVtKCdzcG9y
- dHNkZXZpbCcpKSA+MDoKICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiBpdGVtKCdzcG9ydHNk
- ZXZpbCcpOgogICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaS5zdHJpbmcgPT0gTm9uZToK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwb3J0c2RldmlsID0gJ3BsdWdpbjovL3BsdWdp
- bi52aWRlby5TcG9ydHNEZXZpbC8/bW9kZT0xJmFtcDtpdGVtPWNhdGNoZXIlM2RzdHJlYW1zJTI2
- dXJsPScgK2kuc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVyID0gaXRl
- bSgncmVmZXJlcicpWzBdLnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVm
- ZXJlcjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQgJ3JlZmVyZXIgZm91
- bmQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BvcnRzZGV2aWwgPSBzcG9ydHNk
- ZXZpbCArICclMjZyZWZlcmVyPScgK3JlZmVyZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IHVybC5hcHBlbmQoc3BvcnRzZGV2aWwpCiAgICAgICAgICAgICAgICBlbGlmIGxlbihpdGVtKCdw
- MnAnKSkgPjA6CiAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbSgncDJwJyk6CiAgICAg
- ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpLnN0cmluZyA9PSBOb25lOgogICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgaWYgJ3NvcDovLycgaW4gaS5zdHJpbmc6CiAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgc29wID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby5wMnAtc3RyZWFtcy8/
- bW9kZT0ydXJsPScraS5zdHJpbmcgKycmJyArICduYW1lPScrbmFtZQogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIHVybC5hcHBlbmQoc29wKQogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMnA9J3BsdWdpbjovL3Bs
- dWdpbi52aWRlby5wMnAtc3RyZWFtcy8/bW9kZT0xJnVybD0nK2kuc3RyaW5nICsnJicgKyAnbmFt
- ZT0nK25hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwuYXBwZW5kKHAycCkK
- ICAgICAgICAgICAgICAgIGVsaWYgbGVuKGl0ZW0oJ3ZhdWdobicpKSA+MDoKICAgICAgICAgICAg
- ICAgICAgICBmb3IgaSBpbiBpdGVtKCd2YXVnaG4nKToKICAgICAgICAgICAgICAgICAgICAgICAg
- aWYgbm90IGkuc3RyaW5nID09IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXVn
- aG4gPSAncGx1Z2luOi8vcGx1Z2luLnN0cmVhbS52YXVnaG5saXZlLnR2Lz9tb2RlPVBsYXlMaXZl
- U3RyZWFtJmFtcDtjaGFubmVsPScraS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IHVybC5hcHBlbmQodmF1Z2huKQogICAgICAgICAgICAgICAgZWxpZiBsZW4oaXRlbSgnaWxpdmUn
- KSkgPjA6CiAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbSgnaWxpdmUnKToKICAgICAg
- ICAgICAgICAgICAgICAgICAgaWYgbm90IGkuc3RyaW5nID09IE5vbmU6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICBpZiBub3QgJ2h0dHAnIGluIGkuc3RyaW5nOgogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIGlsaXZlID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby50YmguaWxpdmUv
- P3VybD1odHRwOi8vd3d3LnN0cmVhbWxpdmUudG8vdmlldy8nK2kuc3RyaW5nKycmYW1wO2xpbms9
- OTkmYW1wO21vZGU9aUxpdmVQbGF5JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGl2ZSA9ICdwbHVnaW46Ly9wbHVnaW4u
- dmlkZW8udGJoLmlsaXZlLz91cmw9JytpLnN0cmluZysnJmFtcDtsaW5rPTk5JmFtcDttb2RlPWlM
- aXZlUGxheScKICAgICAgICAgICAgICAgIGVsaWYgbGVuKGl0ZW0oJ3l0LWRsJykpID4wOgogICAg
- ICAgICAgICAgICAgICAgIGZvciBpIGluIGl0ZW0oJ3l0LWRsJyk6CiAgICAgICAgICAgICAgICAg
- ICAgICAgIGlmIG5vdCBpLnN0cmluZyA9PSBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgeXRkbCA9IGkuc3RyaW5nICsgJyZtb2RlPTE4JwogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgdXJsLmFwcGVuZCh5dGRsKQogICAgICAgICAgICAgICAgZWxpZiBsZW4oaXRlbSgnZG0nKSkg
- PjA6CiAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbSgnZG0nKToKICAgICAgICAgICAg
- ICAgICAgICAgICAgaWYgbm90IGkuc3RyaW5nID09IE5vbmU6CiAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICBkbSA9ICJwbHVnaW46Ly9wbHVnaW4udmlkZW8uZGFpbHltb3Rpb25fY29tLz9tb2Rl
- PXBsYXlWaWRlbyZ1cmw9IiArIGkuc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
- cmwuYXBwZW5kKGRtKQogICAgICAgICAgICAgICAgZWxpZiBsZW4oaXRlbSgnZG1saXZlJykpID4w
- OgogICAgICAgICAgICAgICAgICAgIGZvciBpIGluIGl0ZW0oJ2RtbGl2ZScpOgogICAgICAgICAg
- ICAgICAgICAgICAgICBpZiBub3QgaS5zdHJpbmcgPT0gTm9uZToKICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIGRtID0gInBsdWdpbjovL3BsdWdpbi52aWRlby5kYWlseW1vdGlvbl9jb20vP21v
- ZGU9cGxheUxpdmVWaWRlbyZ1cmw9IiArIGkuc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICB1cmwuYXBwZW5kKGRtKQogICAgICAgICAgICAgICAgZWxpZiBsZW4oaXRlbSgndXR1YmUn
- KSkgPjA6CiAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbSgndXR1YmUnKToKICAgICAg
- ICAgICAgICAgICAgICAgICAgaWYgbm90IGkuc3RyaW5nID09IE5vbmU6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICBpZiAnICcgaW4gaS5zdHJpbmcgOgogICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIHV0dWJlID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby55b3V0dWJlL3NlYXJjaC8/
- cT0nKyB1cmxsaWIucXVvdGVfcGx1cyhpLnN0cmluZykKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICBpc0pzb25ycGM9dXR1YmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYg
- bGVuKGkuc3RyaW5nKSA9PSAxMToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dHVi
- ZSA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8ueW91dHViZS9wbGF5Lz92aWRlb19pZD0nKyBpLnN0
- cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiAoaS5zdHJpbmcuc3RhcnRzd2l0
- aCgnUEwnKSBhbmQgbm90ICcmb3JkZXI9JyBpbiBpLnN0cmluZykgb3IgaS5zdHJpbmcuc3RhcnRz
- d2l0aCgnVVUnKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dHViZSA9ICdwbHVn
- aW46Ly9wbHVnaW4udmlkZW8ueW91dHViZS9wbGF5Lz8mb3JkZXI9ZGVmYXVsdCZwbGF5bGlzdF9p
- ZD0nICsgaS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgaS5zdHJpbmcu
- c3RhcnRzd2l0aCgnUEwnKSBvciBpLnN0cmluZy5zdGFydHN3aXRoKCdVVScpOgogICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgIHV0dWJlID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby55b3V0
- dWJlL3BsYXkvP3BsYXlsaXN0X2lkPScgKyBpLnN0cmluZwogICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgZWxpZiBpLnN0cmluZy5zdGFydHN3aXRoKCdVQycpIGFuZCBsZW4oaS5zdHJpbmcpID4g
- MTI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXR1YmUgPSAncGx1Z2luOi8vcGx1
- Z2luLnZpZGVvLnlvdXR1YmUvY2hhbm5lbC8nICsgaS5zdHJpbmcgKyAnLycKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICBpc0pzb25ycGM9dXR1YmUKICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIGVsaWYgbm90IGkuc3RyaW5nLnN0YXJ0c3dpdGgoJ1VDJykgYW5kIG5vdCAoaS5zdHJp
- bmcuc3RhcnRzd2l0aCgnUEwnKSkgIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
- dHViZSA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8ueW91dHViZS91c2VyLycgKyBpLnN0cmluZyAr
- ICcvJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSnNvbnJwYz11dHViZQogICAg
- ICAgICAgICAgICAgICAgICAgICB1cmwuYXBwZW5kKHV0dWJlKQogICAgICAgICAgICAgICAgZWxp
- ZiBsZW4oaXRlbSgnaW1kYicpKSA+MDoKICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiBpdGVt
- KCdpbWRiJyk6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpLnN0cmluZyA9PSBOb25l
- OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYWRkb24uZ2V0U2V0dGluZygnZ2VuZXNp
- c29ycHVsc2FyJykgPT0gJzAnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZGIg
- PSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmdlbmVzaXMvP2FjdGlvbj1wbGF5JmltZGI9JytpLnN0
- cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICBpbWRiID0gJ3BsdWdpbjovL3BsdWdpbi52aWRlby5wdWxzYXIvbW92aWUv
- dHQnK2kuc3RyaW5nKycvcGxheScKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5hcHBl
- bmQoaW1kYikKICAgICAgICAgICAgICAgIGVsaWYgbGVuKGl0ZW0oJ2Y0bScpKSA+MDoKICAgICAg
- ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbSgnZjRtJyk6CiAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICBpZiBub3QgaS5zdHJpbmcgPT0gTm9uZToKICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICBpZiAnLmY0bScgaW4gaS5zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIGY0bSA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8uZjRtVGVzdGVyLz91cmw9
- Jyt1cmxsaWIucXVvdGVfcGx1cyhpLnN0cmluZykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICBlbGlmICcubTN1OCcgaW4gaS5zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIGY0bSA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8uZjRtVGVzdGVyLz91cmw9Jyt1
- cmxsaWIucXVvdGVfcGx1cyhpLnN0cmluZykrJyZhbXA7c3RyZWFtdHlwZT1ITFMnCgogICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIGY0bSA9ICdwbHVnaW46Ly9wbHVnaW4udmlkZW8uZjRtVGVzdGVyLz91cmw9Jyt1
- cmxsaWIucXVvdGVfcGx1cyhpLnN0cmluZykrJyZhbXA7c3RyZWFtdHlwZT1TSU1QTEUnCiAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICB1cmwuYXBwZW5kKGY0bSkKICAgICAgICAgICAgICAgIGVs
- aWYgbGVuKGl0ZW0oJ2Z0dicpKSA+MDoKICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiBpdGVt
- KCdmdHYnKToKICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGkuc3RyaW5nID09IE5vbmU6
- CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdHYgPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVv
- LkYuVC5WLz9uYW1lPScrdXJsbGliLnF1b3RlKG5hbWUpICsnJnVybD0nICtpLnN0cmluZyArJyZt
- b2RlPTEyNSZjaF9mYW5hcnQ9bmEnCiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5hcHBlbmQo
- ZnR2KQogICAgICAgICAgICAgICAgZWxpZiBsZW4oaXRlbSgndXJsc29sdmUnKSkgPjA6CiAgICAg
- ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gaXRlbSgndXJsc29s
- dmUnKToKICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGkuc3RyaW5nID09IE5vbmU6CiAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlciA9IGkuc3RyaW5nICsnJm1vZGU9MTkn
- CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwuYXBwZW5kKHJlc29sdmVyKQogICAgICAg
- ICAgICAgICAgaWYgbGVuKHVybCkgPCAxOgogICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAg
- ICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgIGFkZG9uX2xvZygnRXJyb3IgPGxpbms+IGVs
- ZW1lbnQsIFBhc3Npbmc6JytuYW1lLmVuY29kZSgndXRmLTgnLCAnaWdub3JlJykpCiAgICAgICAg
- ICAgICAgICBjb250aW51ZQogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICBpc1hNTFNv
- dXJjZSA9IGl0ZW0oJ2V4dGVybmFsbGluaycpWzBdLnN0cmluZwogICAgICAgICAgICBleGNlcHQ6
- IHBhc3MKCiAgICAgICAgICAgIGlmIGlzWE1MU291cmNlOgogICAgICAgICAgICAgICAgZXh0X3Vy
- bD1baXNYTUxTb3VyY2VdCiAgICAgICAgICAgICAgICBpc1hNTFNvdXJjZT1UcnVlCiAgICAgICAg
- ICAgIGVsc2U6CiAgICAgICAgICAgICAgICBpc1hNTFNvdXJjZT1GYWxzZQogICAgICAgICAgICB0
- cnk6CiAgICAgICAgICAgICAgICBpc0pzb25ycGMgPSBpdGVtKCdqc29ucnBjJylbMF0uc3RyaW5n
- CiAgICAgICAgICAgIGV4Y2VwdDogcGFzcwogICAgICAgICAgICBpZiBpc0pzb25ycGM6CgogICAg
- ICAgICAgICAgICAgZXh0X3VybD1baXNKc29ucnBjXQogICAgICAgICAgICAgICAgI3ByaW50ICdK
- U09OLVJQQyBleHRfdXJsJyxleHRfdXJsCiAgICAgICAgICAgICAgICBpc0pzb25ycGM9VHJ1ZQog
- ICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgaXNKc29ucnBjPUZhbHNlCiAgICAgICAg
- ICAgIHRyeToKICAgICAgICAgICAgICAgIHRodW1ibmFpbCA9IGl0ZW0oJ3RodW1ibmFpbCcpWzBd
- LnN0cmluZwogICAgICAgICAgICAgICAgaWYgdGh1bWJuYWlsID09IE5vbmU6CiAgICAgICAgICAg
- ICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICAgIHRodW1ibmFpbD1wcm9jZXNzUHlGdW5jdGlv
- bih0aHVtYm5haWwpCiAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgIHRodW1ibmFp
- bCA9ICcnCiAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgIGlmIG5vdCBpdGVtKCdmYW5h
- cnQnKToKICAgICAgICAgICAgICAgICAgICBpZiBhZGRvbi5nZXRTZXR0aW5nKCd1c2VfdGh1bWIn
- KSA9PSAidHJ1ZSI6CiAgICAgICAgICAgICAgICAgICAgICAgIGZhbkFydCA9IHRodW1ibmFpbAog
- ICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIGZhbkFydCA9
- IGZhbmFydAogICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICBmYW5BcnQg
- PSBpdGVtKCdmYW5hcnQnKVswXS5zdHJpbmcKICAgICAgICAgICAgICAgIGlmIGZhbkFydCA9PSBO
- b25lOgogICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgIGV4Y2VwdDoKICAgICAg
- ICAgICAgICAgIGZhbkFydCA9IGZhbmFydAogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
- ICBkZXNjID0gaXRlbSgnaW5mbycpWzBdLnN0cmluZwogICAgICAgICAgICAgICAgaWYgZGVzYyA9
- PSBOb25lOgogICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgIGV4Y2VwdDoKICAg
- ICAgICAgICAgICAgIGRlc2MgPSAnJwoKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAg
- Z2VucmUgPSBpdGVtKCdnZW5yZScpWzBdLnN0cmluZwogICAgICAgICAgICAgICAgaWYgZ2VucmUg
- PT0gTm9uZToKICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICBleGNlcHQ6CiAg
- ICAgICAgICAgICAgICBnZW5yZSA9ICcnCgogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
- ICBkYXRlID0gaXRlbSgnZGF0ZScpWzBdLnN0cmluZwogICAgICAgICAgICAgICAgaWYgZGF0ZSA9
- PSBOb25lOgogICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgIGV4Y2VwdDoKICAg
- ICAgICAgICAgICAgIGRhdGUgPSAnJwoKICAgICAgICAgICAgcmVnZXhzID0gTm9uZQogICAgICAg
- ICAgICBpZiBpdGVtKCdyZWdleCcpOgogICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
- ICAgICAgIHJlZ19pdGVtID0gaXRlbSgncmVnZXgnKQogICAgICAgICAgICAgICAgICAgIHJlZ2V4
- cyA9IHBhcnNlX3JlZ2V4KHJlZ19pdGVtKQogICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAg
- ICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgCiAgICAg
- ICAgICAgICAgICBpZiBsZW4odXJsKSA+IDE6CiAgICAgICAgICAgICAgICAgICAgYWx0ID0gMAog
- ICAgICAgICAgICAgICAgICAgIHBsYXlsaXN0ID0gW10KICAgICAgICAgICAgICAgICAgICBpZ25v
- cmVsaXN0c2V0dGluZz1UcnVlIGlmICckJExTUGxheU9ubHlPbmUkJCcgaW4gdXJsWzBdIGVsc2Ug
- RmFsc2UKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiB1
- cmw6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAgYWRkX3BsYXlsaXN0ID09ICJmYWxz
- ZSIgYW5kIG5vdCBpZ25vcmVsaXN0c2V0dGluZzoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICBhbHQgKz0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZExpbmsoaSwn
- JXMpICVzJyAlKGFsdCwgbmFtZS5lbmNvZGUoJ3V0Zi04JywgJ2lnbm9yZScpKSx0aHVtYm5haWws
- ZmFuQXJ0LGRlc2MsZ2VucmUsZGF0ZSxUcnVlLHBsYXlsaXN0LHJlZ2V4cyx0b3RhbCkKICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgIGVsaWYgIChhZGRfcGxheWxpc3QgPT0gInRydWUiIGFuZCAg
- YXNrX3BsYXlsaXN0X2l0ZW1zID09ICd0cnVlJykgb3IgaWdub3JlbGlzdHNldHRpbmc6CiAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVnZXhzOgogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBwbGF5bGlzdC5hcHBlbmQoaSsnJnJlZ2V4cz0nK3JlZ2V4cykKICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmICBhbnkoeCBpbiBpIGZvciB4IGluIHJl
- c29sdmVfdXJsKSBhbmQgIGkuc3RhcnRzd2l0aCgnaHR0cCcpOgogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBwbGF5bGlzdC5hcHBlbmQoaSsnJm1vZGU9MTknKQogICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIHBsYXlsaXN0LmFwcGVuZChpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
- ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5bGlzdC5hcHBlbmQoaSkKICAg
- ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocGxheWxpc3QpID4g
- MToKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGFkZExp
- bmsoJycsIG5hbWUuZW5jb2RlKCd1dGYtOCcpLHRodW1ibmFpbCxmYW5BcnQsZGVzYyxnZW5yZSxk
- YXRlLFRydWUscGxheWxpc3QscmVnZXhzLHRvdGFsKQogICAgICAgICAgICAgICAgZWxzZToKICAg
- ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpZiBkb250TGluazoKICAgICAg
- ICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUsdXJsWzBdLHJlZ2V4cwogICAgICAgICAgICAg
- ICAgICAgIGlmIGlzWE1MU291cmNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90
- IHJlZ2V4cyA9PSBOb25lOiAjPGV4dGVybmFsbGluaz4gYW5kIDxyZWdleD4KICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICBhZGREaXIobmFtZS5lbmNvZGUoJ3V0Zi04JyksZXh0X3VybFsw
- XS5lbmNvZGUoJ3V0Zi04JyksMSx0aHVtYm5haWwsZmFuQXJ0LGRlc2MsZ2VucmUsZGF0ZSxOb25l
- LCchIXVwZGF0ZScscmVnZXhzLHVybFswXS5lbmNvZGUoJ3V0Zi04JykpCiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgI2FkZExpbmsodXJsWzBdLG5hbWUuZW5jb2RlKCd1dGYtOCcsICdp
- Z25vcmUnKSsgICdbQ09MT1IgeWVsbG93XWJ1aWxkIFhNTFsvQ09MT1JdJyx0aHVtYm5haWwsZmFu
- QXJ0LGRlc2MsZ2VucmUsZGF0ZSxUcnVlLE5vbmUscmVnZXhzLHRvdGFsKQogICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRE
- aXIobmFtZS5lbmNvZGUoJ3V0Zi04JyksZXh0X3VybFswXS5lbmNvZGUoJ3V0Zi04JyksMSx0aHVt
- Ym5haWwsZmFuQXJ0LGRlc2MsZ2VucmUsZGF0ZSxOb25lLCdzb3VyY2UnLE5vbmUsTm9uZSkKICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYWRkRGlyKG5hbWUuZW5jb2RlKCd1dGYtOCcp
- LHVybFswXS5lbmNvZGUoJ3V0Zi04JyksMSx0aHVtYm5haWwsZmFuYXJ0LGRlc2MsZ2VucmUsZGF0
- ZSxOb25lLCdzb3VyY2UnKQogICAgICAgICAgICAgICAgICAgIGVsaWYgaXNKc29ucnBjOgogICAg
- ICAgICAgICAgICAgICAgICAgICBhZGREaXIobmFtZS5lbmNvZGUoJ3V0Zi04JyksZXh0X3VybFsw
- XSw1Myx0aHVtYm5haWwsZmFuQXJ0LGRlc2MsZ2VucmUsZGF0ZSxOb25lLCdzb3VyY2UnKQogICAg
- ICAgICAgICAgICAgICAgICAgICAjeGJtYy5leGVjdXRlYnVpbHRpbigiQ29udGFpbmVyLlNldFZp
- ZXdNb2RlKDUwMCkiKQogICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
- ICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICckZG9yZWdleCcgaW4g
- bmFtZSBhbmQgbm90IGdldFJlZ2V4UGFyc2VkPT1Ob25lOgogICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRuYW1lLHNldHJlcz1n
- ZXRSZWdleFBhcnNlZChyZWdleHMsIG5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHRuYW1lPT1Ob25lOgog
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXRuYW1lCiAgICAgICAgICAg
- ICAgICAgICAgICAgIGV4Y2VwdDogcGFzcwogICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAnJGRvcmVnZXgnIGluIHRodW1ibmFpbCBhbmQg
- bm90IGdldFJlZ2V4UGFyc2VkPT1Ob25lOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IHRuYW1lLHNldHJlcz1nZXRSZWdleFBhcnNlZChyZWdleHMsIHRodW1ibmFpbCkKICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgdG5hbWU9PU5vbmU6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgIHRodW1ibmFpbD10bmFtZQogICAgICAgICAgICAgICAgICAg
- ICAgICBleGNlcHQ6IHBhc3MKICAgICAgICAgICAgICAgICAgICAgICAgYWRkTGluayh1cmxbMF0s
- bmFtZS5lbmNvZGUoJ3V0Zi04JywgJ2lnbm9yZScpLHRodW1ibmFpbCxmYW5BcnQsZGVzYyxnZW5y
- ZSxkYXRlLFRydWUsTm9uZSxyZWdleHMsdG90YWwpCiAgICAgICAgICAgICAgICAgICAgI3ByaW50
- ICdzdWNjZXNzJwogICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICBhZGRvbl9sb2co
- J1RoZXJlIHdhcyBhIHByb2JsZW0gYWRkaW5nIGl0ZW0gLSAnK25hbWUuZW5jb2RlKCd1dGYtOCcs
- ICdpZ25vcmUnKSkKCmRlZiBwYXJzZV9yZWdleChyZWdfaXRlbSk6CiAgICAgICAgICAgICAgICB0
- cnk6CiAgICAgICAgICAgICAgICAgICAgcmVnZXhzID0ge30KICAgICAgICAgICAgICAgICAgICBm
- b3IgaSBpbiByZWdfaXRlbToKICAgICAgICAgICAgICAgICAgICAgICAgcmVnZXhzW2koJ25hbWUn
- KVswXS5zdHJpbmddID0ge30KICAgICAgICAgICAgICAgICAgICAgICAgcmVnZXhzW2koJ25hbWUn
- KVswXS5zdHJpbmddWyduYW1lJ109aSgnbmFtZScpWzBdLnN0cmluZwogICAgICAgICAgICAgICAg
- ICAgICAgICAjcmVnZXhzW2koJ25hbWUnKVswXS5zdHJpbmddWydleHByZXMnXSA9IGkoJ2V4cHJl
- cycpWzBdLnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ2V4cHJlcyddID0gaSgn
- ZXhwcmVzJylbMF0uc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmVn
- ZXhzW2koJ25hbWUnKVswXS5zdHJpbmddWydleHByZXMnXToKICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ2V4cHJlcyddPScnCiAgICAg
- ICAgICAgICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFk
- ZG9uX2xvZygiUmVnZXg6IC0tIE5vIFJlZmVyZXIgLS0iKQogICAgICAgICAgICAgICAgICAgICAg
- ICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ3BhZ2UnXSA9IGkoJ3BhZ2UnKVswXS5zdHJp
- bmcKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgcmVnZXhzW2koJ25hbWUnKVswXS5zdHJpbmddWydyZWZlcmVyJ10gPSBpKCdyZWZlcmVyJylb
- MF0uc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIGFkZG9uX2xvZygiUmVnZXg6IC0tIE5vIFJlZmVyZXIgLS0iKQogICAgICAg
- ICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdleHNb
- aSgnbmFtZScpWzBdLnN0cmluZ11bJ2Nvbm5lY3Rpb24nXSA9IGkoJ2Nvbm5lY3Rpb24nKVswXS5z
- dHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgYWRkb25fbG9nKCJSZWdleDogLS0gTm8gY29ubmVjdGlvbiAtLSIpCgogICAgICAg
- ICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdleHNb
- aSgnbmFtZScpWzBdLnN0cmluZ11bJ25vdHBsYXlhYmxlJ10gPSBpKCdub3RwbGF5YWJsZScpWzBd
- LnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICBhZGRvbl9sb2coIlJlZ2V4OiAtLSBObyBub3RwbGF5YWJsZSAtLSIpCgogICAg
- ICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdl
- eHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ25vcmVkaXJlY3QnXSA9IGkoJ25vcmVkaXJlY3QnKVsw
- XS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgYWRkb25fbG9nKCJSZWdleDogLS0gTm8gbm9yZWRpcmVjdCAtLSIpCiAgICAg
- ICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2V4
- c1tpKCduYW1lJylbMF0uc3RyaW5nXVsnb3JpZ2luJ10gPSBpKCdvcmlnaW4nKVswXS5zdHJpbmcK
- ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgYWRkb25fbG9nKCJSZWdleDogLS0gTm8gb3JpZ2luIC0tIikKICAgICAgICAgICAgICAgICAg
- ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZXhzW2koJ25hbWUnKVsw
- XS5zdHJpbmddWydhY2NlcHQnXSA9IGkoJ2FjY2VwdCcpWzBdLnN0cmluZwogICAgICAgICAgICAg
- ICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRvbl9sb2co
- IlJlZ2V4OiAtLSBObyBhY2NlcHQgLS0iKQogICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ2lu
- Y2x1ZGVoZWFkZXJzJ10gPSBpKCdpbmNsdWRlaGVhZGVycycpWzBdLnN0cmluZwogICAgICAgICAg
- ICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRvbl9s
- b2coIlJlZ2V4OiAtLSBObyBpbmNsdWRlaGVhZGVycyAtLSIpCgogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIHJlZ2V4c1tpKCduYW1lJylbMF0uc3RyaW5nXVsnbGlzdHJlcGVhdCddID0gaSgn
- bGlzdHJlcGVhdCcpWzBdLnN0cmluZwojICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
- ICdsaXN0cmVwZWF0JyxyZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ2xpc3RyZXBlYXQnXSxp
- KCdsaXN0cmVwZWF0JylbMF0uc3RyaW5nLCBpCiAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2Vw
- dDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZG9uX2xvZygiUmVnZXg6IC0tIE5vIGxp
- c3RyZXBlYXQgLS0iKQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ3Byb3h5J10gPSBpKCdwcm94eScp
- WzBdLnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICBhZGRvbl9sb2coIlJlZ2V4OiAtLSBObyBwcm94eSAtLSIpCiAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgcmVnZXhzW2koJ25hbWUnKVswXS5zdHJpbmddWyd4LXJlcSdd
- ID0gaSgneC1yZXEnKVswXS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0Ogog
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkb25fbG9nKCJSZWdleDogLS0gTm8geC1yZXEg
- LS0iKQoKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgcmVnZXhzW2koJ25hbWUnKVswXS5zdHJpbmddWyd4LWFkZHInXSA9IGkoJ3gtYWRkcicp
- WzBdLnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICBhZGRvbl9sb2coIlJlZ2V4OiAtLSBObyB4LWFkZHIgLS0iKSAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
- ICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdleHNb
- aSgnbmFtZScpWzBdLnN0cmluZ11bJ3gtZm9yd2FyZCddID0gaSgneC1mb3J3YXJkJylbMF0uc3Ry
- aW5nCiAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIGFkZG9uX2xvZygiUmVnZXg6IC0tIE5vIHgtZm9yd2FyZCAtLSIpCgogICAgICAgICAg
- ICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdleHNbaSgn
- bmFtZScpWzBdLnN0cmluZ11bJ2FnZW50J10gPSBpKCdhZ2VudCcpWzBdLnN0cmluZwogICAgICAg
- ICAgICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRv
- bl9sb2coIlJlZ2V4OiAtLSBObyBVc2VyIEFnZW50IC0tIikKICAgICAgICAgICAgICAgICAgICAg
- ICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZXhzW2koJ25hbWUnKVswXS5z
- dHJpbmddWydwb3N0J10gPSBpKCdwb3N0JylbMF0uc3RyaW5nCiAgICAgICAgICAgICAgICAgICAg
- ICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZG9uX2xvZygiUmVnZXg6
- IC0tIE5vdCBhIHBvc3QiKQogICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ3Jhd3Bvc3QnXSA9
- IGkoJ3Jhd3Bvc3QnKVswXS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0Ogog
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkb25fbG9nKCJSZWdleDogLS0gTm90IGEgcmF3
- cG9zdCIpCiAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIHJlZ2V4c1tpKCduYW1lJylbMF0uc3RyaW5nXVsnaHRtbHVuZXNjYXBlJ10gPSBpKCdo
- dG1sdW5lc2NhcGUnKVswXS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0Ogog
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkb25fbG9nKCJSZWdleDogLS0gTm90IGEgaHRt
- bHVuZXNjYXBlIikKCgogICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmluZ11bJ3JlYWRjb29raWVvbmx5
- J10gPSBpKCdyZWFkY29va2llb25seScpWzBdLnN0cmluZwogICAgICAgICAgICAgICAgICAgICAg
- ICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRvbl9sb2coIlJlZ2V4OiAt
- LSBOb3QgYSByZWFkQ29va2llT25seSIpCiAgICAgICAgICAgICAgICAgICAgICAgICNwcmludCBp
- CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IHJlZ2V4c1tpKCduYW1lJylbMF0uc3RyaW5nXVsnY29va2llamFyJ10gPSBpKCdjb29raWVqYXIn
- KVswXS5zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZWdleHNbaSgn
- bmFtZScpWzBdLnN0cmluZ11bJ2Nvb2tpZWphciddOgogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIHJlZ2V4c1tpKCduYW1lJylbMF0uc3RyaW5nXVsnY29va2llamFyJ109JycKICAgICAg
- ICAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRk
- b25fbG9nKCJSZWdleDogLS0gTm90IGEgY29va2llSmFyIikKICAgICAgICAgICAgICAgICAgICAg
- ICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZXhzW2koJ25hbWUnKVswXS5z
- dHJpbmddWydzZXRjb29raWUnXSA9IGkoJ3NldGNvb2tpZScpWzBdLnN0cmluZwogICAgICAgICAg
- ICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRvbl9s
- b2coIlJlZ2V4OiAtLSBOb3QgYSBzZXRjb29raWUiKQogICAgICAgICAgICAgICAgICAgICAgICB0
- cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdleHNbaSgnbmFtZScpWzBdLnN0cmlu
- Z11bJ2FwcGVuZGNvb2tpZSddID0gaSgnYXBwZW5kY29va2llJylbMF0uc3RyaW5nCiAgICAgICAg
- ICAgICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZG9u
- X2xvZygiUmVnZXg6IC0tIE5vdCBhIGFwcGVuZGNvb2tpZSIpCgogICAgICAgICAgICAgICAgICAg
- ICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdleHNbaSgnbmFtZScpWzBd
- LnN0cmluZ11bJ2lnbm9yZWNhY2hlJ10gPSBpKCdpZ25vcmVjYWNoZScpWzBdLnN0cmluZwogICAg
- ICAgICAgICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
- ZGRvbl9sb2coIlJlZ2V4OiAtLSBubyBpZ25vcmVjYWNoZSIpCiAgICAgICAgICAgICAgICAgICAg
- ICAgICN0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICMgICAgcmVnZXhzW2koJ25hbWUnKVsw
- XS5zdHJpbmddWydpZ25vcmVjYWNoZSddID0gaSgnaWdub3JlY2FjaGUnKVswXS5zdHJpbmcKICAg
- ICAgICAgICAgICAgICAgICAgICAgI2V4Y2VwdDoKICAgICAgICAgICAgICAgICAgICAgICAgIyAg
- ICBhZGRvbl9sb2coIlJlZ2V4OiAtLSBubyBpZ25vcmVjYWNoZSIpCgogICAgICAgICAgICAgICAg
- ICAgIHJlZ2V4cyA9IHVybGxpYi5xdW90ZShyZXByKHJlZ2V4cykpCiAgICAgICAgICAgICAgICAg
- ICAgcmV0dXJuIHJlZ2V4cwogICAgICAgICAgICAgICAgICAgICNwcmludCByZWdleHMKICAgICAg
- ICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICAgICByZWdleHMgPSBOb25lCiAgICAg
- ICAgICAgICAgICAgICAgYWRkb25fbG9nKCdyZWdleCBFcnJvcjogJytuYW1lLmVuY29kZSgndXRm
- LTgnLCAnaWdub3JlJykpCiNjb3BpZXMgZnJvbSBsYW1kYSdzIGltcGxlbWVudGF0aW9uCmRlZiBn
- ZXRfdXN0cmVhbSh1cmwpOgogICAgdHJ5OgogICAgICAgIGZvciBpIGluIHJhbmdlKDEsIDUxKToK
- ICAgICAgICAgICAgcmVzdWx0ID0gZ2V0VXJsKHVybCkKICAgICAgICAgICAgaWYgIkVYVC1YLVNU
- UkVBTS1JTkYiIGluIHJlc3VsdDogcmV0dXJuIHVybAogICAgICAgICAgICBpZiBub3QgIkVYVE0z
- VSIgaW4gcmVzdWx0OiByZXR1cm4KICAgICAgICAgICAgeGJtYy5zbGVlcCgyMDAwKQogICAgICAg
- IHJldHVybgogICAgZXhjZXB0OgogICAgICAgIHJldHVybgoKZGVmIGdldFJlZ2V4UGFyc2VkKHJl
- Z2V4cywgdXJsLGNvb2tpZUphcj1Ob25lLGZvckNvb2tpZUphck9ubHk9RmFsc2UscmVjdXJzaXZl
- Q2FsbD1GYWxzZSxjYWNoZWRQYWdlcz17fSwgcmF3UG9zdD1GYWxzZSwgY29va2llX2phcl9maWxl
- PU5vbmUpOiMwLDEsMiA9IFVSTCwgcmVnZXhPbmx5LCBDb29raWVKYXJPbmx5CiAgICAgICAgaWYg
- bm90IHJlY3Vyc2l2ZUNhbGw6CiAgICAgICAgICAgIHJlZ2V4cyA9IGV2YWwodXJsbGliLnVucXVv
- dGUocmVnZXhzKSkKICAgICAgICAjY2FjaGVkUGFnZXMgPSB7fQogICAgICAgICNwcmludCAndXJs
- Jyx1cmwKICAgICAgICBkb1JlZ2V4cyA9IHJlLmNvbXBpbGUoJ1wkZG9yZWdleFxbKFteXF1dKilc
- XScpLmZpbmRhbGwodXJsKQojICAgICAgICBwcmludCAnZG9SZWdleHMnLGRvUmVnZXhzLHJlZ2V4
- cwogICAgICAgIHNldHJlc29sdmVkPVRydWUKICAgICAgICBmb3IgayBpbiBkb1JlZ2V4czoKICAg
- ICAgICAgICAgaWYgayBpbiByZWdleHM6CiAgICAgICAgICAgICAgICAjcHJpbnQgJ3Byb2Nlc3Np
- bmcgJyAsawogICAgICAgICAgICAgICAgbSA9IHJlZ2V4c1trXQogICAgICAgICAgICAgICAgI3By
- aW50IG0KICAgICAgICAgICAgICAgIGNvb2tpZUphclBhcmFtPUZhbHNlCiAgICAgICAgICAgICAg
- ICBpZiAgJ2Nvb2tpZWphcicgaW4gbTogIyBzbyBlaXRoZXIgY3JlYXRlIG9yIHJldXNlIGV4aXN0
- aW5nIGphcgogICAgICAgICAgICAgICAgICAgICNwcmludCAnY29va2llamFyIGV4aXN0cycsbVsn
- Y29va2llamFyJ10KICAgICAgICAgICAgICAgICAgICBjb29raWVKYXJQYXJhbT1tWydjb29raWVq
- YXInXQogICAgICAgICAgICAgICAgICAgIGlmICAnJGRvcmVnZXgnIGluIGNvb2tpZUphclBhcmFt
- OgogICAgICAgICAgICAgICAgICAgICAgICBjb29raWVKYXI9Z2V0UmVnZXhQYXJzZWQocmVnZXhz
- LCBtWydjb29raWVqYXInXSxjb29raWVKYXIsVHJ1ZSwgVHJ1ZSxjYWNoZWRQYWdlcykKICAgICAg
- ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tpZUphclBhcmFt
- PVRydWUKICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICBj
- b29raWVKYXJQYXJhbT1UcnVlCiAgICAgICAgICAgICAgICAjcHJpbnQgJ21bY29va2llamFyXScs
- bVsnY29va2llamFyJ10sY29va2llSmFyCiAgICAgICAgICAgICAgICBpZiBjb29raWVKYXJQYXJh
- bToKICAgICAgICAgICAgICAgICAgICBpZiBjb29raWVKYXI9PU5vbmU6CiAgICAgICAgICAgICAg
- ICAgICAgICAgICNwcmludCAnY3JlYXRlIGNvb2tpZSBqYXInCiAgICAgICAgICAgICAgICAgICAg
- ICAgIGNvb2tpZV9qYXJfZmlsZT1Ob25lCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICdvcGVu
- WycgaW4gbVsnY29va2llamFyJ106CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVf
- amFyX2ZpbGU9bVsnY29va2llamFyJ10uc3BsaXQoJ29wZW5bJylbMV0uc3BsaXQoJ10nKVswXQoj
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdjb29raWVKYXIgZnJvbSBmaWxlIG5h
- bWUnLGNvb2tpZV9qYXJfZmlsZQoKICAgICAgICAgICAgICAgICAgICAgICAgY29va2llSmFyPWdl
- dENvb2tpZUphcihjb29raWVfamFyX2ZpbGUpCiMgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
- dCAnY29va2llSmFyIGZyb20gZmlsZScsY29va2llSmFyCiAgICAgICAgICAgICAgICAgICAgICAg
- IGlmIGNvb2tpZV9qYXJfZmlsZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVDb29r
- aWVKYXIoY29va2llSmFyLGNvb2tpZV9qYXJfZmlsZSkKICAgICAgICAgICAgICAgICAgICAgICAg
- I2ltcG9ydCBjb29raWVsaWIKICAgICAgICAgICAgICAgICAgICAgICAgI2Nvb2tpZUphciA9IGNv
- b2tpZWxpYi5MV1BDb29raWVKYXIoKQogICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQgJ2Nv
- b2tpZUphciBuZXcnLGNvb2tpZUphcgogICAgICAgICAgICAgICAgICAgIGVsaWYgJ3NhdmVbJyBp
- biBtWydjb29raWVqYXInXToKICAgICAgICAgICAgICAgICAgICAgICAgY29va2llX2phcl9maWxl
- PW1bJ2Nvb2tpZWphciddLnNwbGl0KCdzYXZlWycpWzFdLnNwbGl0KCddJylbMF0KICAgICAgICAg
- ICAgICAgICAgICAgICAgY29tcGxldGVfcGF0aD1vcy5wYXRoLmpvaW4ocHJvZmlsZSxjb29raWVf
- amFyX2ZpbGUpCiMgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnY29tcGxldGVfcGF0aCcs
- Y29tcGxldGVfcGF0aAogICAgICAgICAgICAgICAgICAgICAgICBzYXZlQ29va2llSmFyKGNvb2tp
- ZUphcixjb29raWVfamFyX2ZpbGUpCiAgICAgICAgICAgICAgICBpZiAgbVsncGFnZSddIGFuZCAn
- JGRvcmVnZXgnIGluIG1bJ3BhZ2UnXToKICAgICAgICAgICAgICAgICAgICBwZz1nZXRSZWdleFBh
- cnNlZChyZWdleHMsIG1bJ3BhZ2UnXSxjb29raWVKYXIscmVjdXJzaXZlQ2FsbD1UcnVlLGNhY2hl
- ZFBhZ2VzPWNhY2hlZFBhZ2VzKQogICAgICAgICAgICAgICAgICAgIGlmIGxlbihwZyk9PTA6CiAg
- ICAgICAgICAgICAgICAgICAgICAgIHBnPSdodHRwOi8vcmVnZXhmYWlsZWQnCiAgICAgICAgICAg
- ICAgICAgICAgbVsncGFnZSddPXBnCgogICAgICAgICAgICAgICAgaWYgJ3NldGNvb2tpZScgaW4g
- bSBhbmQgbVsnc2V0Y29va2llJ10gYW5kICckZG9yZWdleCcgaW4gbVsnc2V0Y29va2llJ106CiAg
- ICAgICAgICAgICAgICAgICAgbVsnc2V0Y29va2llJ109Z2V0UmVnZXhQYXJzZWQocmVnZXhzLCBt
- WydzZXRjb29raWUnXSxjb29raWVKYXIscmVjdXJzaXZlQ2FsbD1UcnVlLGNhY2hlZFBhZ2VzPWNh
- Y2hlZFBhZ2VzKQogICAgICAgICAgICAgICAgaWYgJ2FwcGVuZGNvb2tpZScgaW4gbSBhbmQgbVsn
- YXBwZW5kY29va2llJ10gYW5kICckZG9yZWdleCcgaW4gbVsnYXBwZW5kY29va2llJ106CiAgICAg
- ICAgICAgICAgICAgICAgbVsnYXBwZW5kY29va2llJ109Z2V0UmVnZXhQYXJzZWQocmVnZXhzLCBt
- WydhcHBlbmRjb29raWUnXSxjb29raWVKYXIscmVjdXJzaXZlQ2FsbD1UcnVlLGNhY2hlZFBhZ2Vz
- PWNhY2hlZFBhZ2VzKQoKCiAgICAgICAgICAgICAgICBpZiAgJ3Bvc3QnIGluIG0gYW5kICckZG9y
- ZWdleCcgaW4gbVsncG9zdCddOgogICAgICAgICAgICAgICAgICAgIG1bJ3Bvc3QnXT1nZXRSZWdl
- eFBhcnNlZChyZWdleHMsIG1bJ3Bvc3QnXSxjb29raWVKYXIscmVjdXJzaXZlQ2FsbD1UcnVlLGNh
- Y2hlZFBhZ2VzPWNhY2hlZFBhZ2VzKQojICAgICAgICAgICAgICAgICAgICBwcmludCAncG9zdCBp
- cyBub3cnLG1bJ3Bvc3QnXQoKICAgICAgICAgICAgICAgIGlmICAncmF3cG9zdCcgaW4gbSBhbmQg
- JyRkb3JlZ2V4JyBpbiBtWydyYXdwb3N0J106CiAgICAgICAgICAgICAgICAgICAgbVsncmF3cG9z
- dCddPWdldFJlZ2V4UGFyc2VkKHJlZ2V4cywgbVsncmF3cG9zdCddLGNvb2tpZUphcixyZWN1cnNp
- dmVDYWxsPVRydWUsY2FjaGVkUGFnZXM9Y2FjaGVkUGFnZXMscmF3UG9zdD1UcnVlKQogICAgICAg
- ICAgICAgICAgICAgICNwcmludCAncmF3cG9zdCBpcyBub3cnLG1bJ3Jhd3Bvc3QnXQoKICAgICAg
- ICAgICAgICAgIGlmICdyYXdwb3N0JyBpbiBtIGFuZCAnJGVwb2N0aW1lJCcgaW4gbVsncmF3cG9z
- dCddOgogICAgICAgICAgICAgICAgICAgIG1bJ3Jhd3Bvc3QnXT1tWydyYXdwb3N0J10ucmVwbGFj
- ZSgnJGVwb2N0aW1lJCcsZ2V0RXBvY1RpbWUoKSkKCiAgICAgICAgICAgICAgICBpZiAncmF3cG9z
- dCcgaW4gbSBhbmQgJyRlcG9jdGltZTIkJyBpbiBtWydyYXdwb3N0J106CiAgICAgICAgICAgICAg
- ICAgICAgbVsncmF3cG9zdCddPW1bJ3Jhd3Bvc3QnXS5yZXBsYWNlKCckZXBvY3RpbWUyJCcsZ2V0
- RXBvY1RpbWUyKCkpCgoKICAgICAgICAgICAgICAgIGxpbms9JycKICAgICAgICAgICAgICAgIGlm
- IG1bJ3BhZ2UnXSBhbmQgbVsncGFnZSddIGluIGNhY2hlZFBhZ2VzIGFuZCBub3QgJ2lnbm9yZWNh
- Y2hlJyBpbiBtIGFuZCBmb3JDb29raWVKYXJPbmx5PT1GYWxzZSA6CiAgICAgICAgICAgICAgICAg
- ICAgI3ByaW50ICd1c2luZyBjYWNoZSBwYWdlJyxtWydwYWdlJ10KICAgICAgICAgICAgICAgICAg
- ICBsaW5rID0gY2FjaGVkUGFnZXNbbVsncGFnZSddXQogICAgICAgICAgICAgICAgZWxzZToKICAg
- ICAgICAgICAgICAgICAgICBpZiBtWydwYWdlJ10gYW5kICBub3QgbVsncGFnZSddPT0nJyBhbmQg
- IG1bJ3BhZ2UnXS5zdGFydHN3aXRoKCdodHRwJyk6CiAgICAgICAgICAgICAgICAgICAgICAgIGlm
- ICckZXBvY3RpbWUkJyBpbiBtWydwYWdlJ106CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
- WydwYWdlJ109bVsncGFnZSddLnJlcGxhY2UoJyRlcG9jdGltZSQnLGdldEVwb2NUaW1lKCkpCiAg
- ICAgICAgICAgICAgICAgICAgICAgIGlmICckZXBvY3RpbWUyJCcgaW4gbVsncGFnZSddOgogICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgbVsncGFnZSddPW1bJ3BhZ2UnXS5yZXBsYWNlKCckZXBv
- Y3RpbWUyJCcsZ2V0RXBvY1RpbWUyKCkpCgogICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQg
- J0luZ29yaW5nIENhY2hlJyxtWydwYWdlJ10KICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9z
- cGxpdD1tWydwYWdlJ10uc3BsaXQoJ3wnKQogICAgICAgICAgICAgICAgICAgICAgICBwYWdlVXJs
- PXBhZ2Vfc3BsaXRbMF0KICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX2luX3BhZ2U9Tm9u
- ZQogICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocGFnZV9zcGxpdCk+MToKICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgIGhlYWRlcl9pbl9wYWdlPXBhZ2Vfc3BsaXRbMV0KCiMgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgaWYgCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
- eHkgPSB1cmxsaWIyLlByb3h5SGFuZGxlcih7ICgnaHR0cHMnID8gcHJveHl0b3VzZVs6NV09PSJo
- dHRwcyI6Imh0dHAiKSA6IHByb3h5dG91c2V9KQojICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IG9wZW5lciA9IHVybGxpYjIuYnVpbGRfb3BlbmVyKHByb3h5KQojICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIHVybGxpYjIuaW5zdGFsbF9vcGVuZXIob3BlbmVyKQoKICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKIyAgICAgICAgICAgICAgICAg
- ICAgICAgIGltcG9ydCB1cmxsaWIyCiMgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAndXJs
- bGliMi5nZXRwcm94aWVzJyx1cmxsaWIyLmdldHByb3hpZXMoKQogICAgICAgICAgICAgICAgICAg
- ICAgICBjdXJyZW50X3Byb3hpZXM9dXJsbGliMi5Qcm94eUhhbmRsZXIodXJsbGliMi5nZXRwcm94
- aWVzKCkpCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICNwcmludCAn
- Z2V0dGluZyBwYWdlVXJsJyxwYWdlVXJsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcSA9IHVy
- bGxpYjIuUmVxdWVzdChwYWdlVXJsKQogICAgICAgICAgICAgICAgICAgICAgICBpZiAncHJveHkn
- IGluIG06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm94eXRvdXNlPSBtWydwcm94eSdd
- CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ3Byb3h5dG91c2UnLHByb3h5dG91
- c2UKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxsaWIyLmdldHByb3hpZXM9IGxhbWJk
- YToge30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhZ2VVcmxbOjVdPT0iaHR0cHMi
- OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3h5ID0gdXJsbGliMi5Qcm94eUhh
- bmRsZXIoeyAnaHR0cHMnIDogcHJveHl0b3VzZX0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgI3JlcS5zZXRfcHJveHkocHJveHl0b3VzZSwgJ2h0dHBzJykKICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJveHkg
- PSB1cmxsaWIyLlByb3h5SGFuZGxlcih7ICdodHRwJyAgOiBwcm94eXRvdXNlfSkKICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAjcmVxLnNldF9wcm94eShwcm94eXRvdXNlLCAnaHR0cCcp
- CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuZXIgPSB1cmxsaWIyLmJ1aWxkX29wZW5l
- cihwcm94eSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybGxpYjIuaW5zdGFsbF9vcGVu
- ZXIob3BlbmVyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
- ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICByZXEuYWRkX2hlYWRlcignVXNlci1BZ2Vu
- dCcsICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IHJ2OjE0LjApIEdlY2tvLzIwMTAwMTAx
- IEZpcmVmb3gvMTQuMC4xJykKICAgICAgICAgICAgICAgICAgICAgICAgcHJveHl0b3VzZT1Ob25l
- CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAncmVmZXJlcicgaW4gbToKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIHJlcS5hZGRfaGVhZGVyKCdSZWZlcmVyJywgbVsncmVmZXJlciddKQog
- ICAgICAgICAgICAgICAgICAgICAgICBpZiAnYWNjZXB0JyBpbiBtOgogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgcmVxLmFkZF9oZWFkZXIoJ0FjY2VwdCcsIG1bJ2FjY2VwdCddKQogICAgICAg
- ICAgICAgICAgICAgICAgICBpZiAnYWdlbnQnIGluIG06CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICByZXEuYWRkX2hlYWRlcignVXNlci1hZ2VudCcsIG1bJ2FnZW50J10pCiAgICAgICAgICAg
- ICAgICAgICAgICAgIGlmICd4LXJlcScgaW4gbToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IHJlcS5hZGRfaGVhZGVyKCdYLVJlcXVlc3RlZC1XaXRoJywgbVsneC1yZXEnXSkKICAgICAgICAg
- ICAgICAgICAgICAgICAgaWYgJ3gtYWRkcicgaW4gbToKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgIHJlcS5hZGRfaGVhZGVyKCd4LWFkZHInLCBtWyd4LWFkZHInXSkKICAgICAgICAgICAgICAg
- ICAgICAgICAgaWYgJ3gtZm9yd2FyZCcgaW4gbToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IHJlcS5hZGRfaGVhZGVyKCdYLUZvcndhcmRlZC1Gb3InLCBtWyd4LWZvcndhcmQnXSkKICAgICAg
- ICAgICAgICAgICAgICAgICAgaWYgJ3NldGNvb2tpZScgaW4gbToKIyAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICBwcmludCAnYWRkaW5nIGNvb2tpZScsbVsnc2V0Y29va2llJ10KICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgIHJlcS5hZGRfaGVhZGVyKCdDb29raWUnLCBtWydzZXRjb29raWUn
- XSkKICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2FwcGVuZGNvb2tpZScgaW4gbToKIyAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnYXBwZW5kaW5nIGNvb2tpZSB0byBjb29raWVq
- YXInLG1bJ2FwcGVuZGNvb2tpZSddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVz
- dG9BcGVuZD1tWydhcHBlbmRjb29raWUnXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29v
- a2llc3RvQXBlbmQ9Y29va2llc3RvQXBlbmQuc3BsaXQoJzsnKQogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgZm9yIGggaW4gY29va2llc3RvQXBlbmQ6CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgbix2PWguc3BsaXQoJz0nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IHcsbj0gbi5zcGxpdCgnOicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2sgPSBj
- b29raWVsaWIuQ29va2llKHZlcnNpb249MCwgbmFtZT1uLCB2YWx1ZT12LCBwb3J0PU5vbmUsIHBv
- cnRfc3BlY2lmaWVkPUZhbHNlLCBkb21haW49dywgZG9tYWluX3NwZWNpZmllZD1GYWxzZSwgZG9t
- YWluX2luaXRpYWxfZG90PUZhbHNlLCBwYXRoPScvJywgcGF0aF9zcGVjaWZpZWQ9VHJ1ZSwgc2Vj
- dXJlPUZhbHNlLCBleHBpcmVzPU5vbmUsIGRpc2NhcmQ9VHJ1ZSwgY29tbWVudD1Ob25lLCBjb21t
- ZW50X3VybD1Ob25lLCByZXN0PXsnSHR0cE9ubHknOiBOb25lfSwgcmZjMjEwOT1GYWxzZSkKICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVKYXIuc2V0X2Nvb2tpZShjaykKICAg
- ICAgICAgICAgICAgICAgICAgICAgaWYgJ29yaWdpbicgaW4gbToKICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgIHJlcS5hZGRfaGVhZGVyKCdPcmlnaW4nLCBtWydvcmlnaW4nXSkKICAgICAgICAg
- ICAgICAgICAgICAgICAgaWYgaGVhZGVyX2luX3BhZ2U6CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICBoZWFkZXJfaW5fcGFnZT1oZWFkZXJfaW5fcGFnZS5zcGxpdCgnJicpCiAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBmb3IgaCBpbiBoZWFkZXJfaW5fcGFnZToKICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBpZiBoLnNwbGl0KCc9Jyk9PTI6CiAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIG4sdj1oLnNwbGl0KCc9JykKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxzPWgu
- c3BsaXQoJz0nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuPXZhbHNbMF0K
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdj0nPScuam9pbih2YWxzWzE6XSkK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbix2PWguc3BsaXQoJz0nKQogICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5hZGRfaGVhZGVyKG4sdikKICAgICAgICAgICAg
- ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBjb29raWVKYXI9PU5v
- bmU6CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ2Nvb2tpZUphclZhbCcsY29v
- a2llSmFyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVfaGFuZGxlciA9IHVybGxp
- YjIuSFRUUENvb2tpZVByb2Nlc3Nvcihjb29raWVKYXIpCiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICBvcGVuZXIgPSB1cmxsaWIyLmJ1aWxkX29wZW5lcihjb29raWVfaGFuZGxlciwgdXJsbGli
- Mi5IVFRQQmFzaWNBdXRoSGFuZGxlcigpLCB1cmxsaWIyLkhUVFBIYW5kbGVyKCkpCiAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICBvcGVuZXIgPSB1cmxsaWIyLmluc3RhbGxfb3BlbmVyKG9wZW5l
- cikKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnbm9yZWRpcmVjdCcsJ25vcmVk
- aXJlY3QnIGluIG0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgaWYgJ25vcmVkaXJlY3QnIGluIG06CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgb3BlbmVyID0gdXJsbGliMi5idWlsZF9vcGVuZXIoY29va2llX2hhbmRsZXIsTm9S
- ZWRpcmVjdGlvbiwgdXJsbGliMi5IVFRQQmFzaWNBdXRoSGFuZGxlcigpLCB1cmxsaWIyLkhUVFBI
- YW5kbGVyKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVyID0gdXJsbGli
- Mi5pbnN0YWxsX29wZW5lcihvcGVuZXIpCiAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgJ25v
- cmVkaXJlY3QnIGluIG06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuZXIgPSB1cmxs
- aWIyLmJ1aWxkX29wZW5lcihOb1JlZGlyZWN0aW9uLCB1cmxsaWIyLkhUVFBCYXNpY0F1dGhIYW5k
- bGVyKCksIHVybGxpYjIuSFRUUEhhbmRsZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IG9wZW5lciA9IHVybGxpYjIuaW5zdGFsbF9vcGVuZXIob3BlbmVyKQogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICBpZiAnY29ubmVjdGlvbicgaW4g
- bToKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnLi4uLi4uLi4uLi4uLi4uLi4u
- Li4uLi4uLi5jb25uZWN0aW9uLy8vLy8vLicsbVsnY29ubmVjdGlvbiddCiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICBmcm9tIGtlZXBhbGl2ZSBpbXBvcnQgSFRUUEhhbmRsZXIKICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgIGtlZXBhbGl2ZV9oYW5kbGVyID0gSFRUUEhhbmRsZXIoKQogICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVyID0gdXJsbGliMi5idWlsZF9vcGVuZXIoa2Vl
- cGFsaXZlX2hhbmRsZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxsaWIyLmluc3Rh
- bGxfb3BlbmVyKG9wZW5lcikKCgogICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQgJ2FmdGVy
- IGNvb2tpZSBqYXInCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Q9Tm9uZQoKICAgICAgICAg
- ICAgICAgICAgICAgICAgaWYgJ3Bvc3QnIGluIG06CiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICBwb3N0RGF0YT1tWydwb3N0J10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpZiAnJExp
- dmVTdHJlYW1SZWNhcHRjaGEnIGluIHBvc3REYXRhOgogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgIyAgICAoY2FwdGNoYV9jaGFsbGVuZ2UsY2F0cGNoYV93b3JkLGlkZmllbGQpPXByb2Nlc3NS
- ZWNhcHRjaGEobVsncGFnZSddLGNvb2tpZUphcikKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICMgICAgaWYgY2FwdGNoYV9jaGFsbGVuZ2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
- ICAgICAgICBwb3N0RGF0YT1wb3N0RGF0YS5yZXBsYWNlKCckTGl2ZVN0cmVhbVJlY2FwdGNoYScs
- J21hbnVhbF9yZWNhcHRjaGFfY2hhbGxlbmdlX2ZpZWxkOicrY2FwdGNoYV9jaGFsbGVuZ2UrJyxy
- ZWNhcHRjaGFfcmVzcG9uc2VfZmllbGQ6JytjYXRwY2hhX3dvcmQrJyxpZDonK2lkZmllbGQpCiAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdHBvc3Q9cG9zdERhdGEuc3BsaXQoJywnKTsK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Q9e30KICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIGZvciBwIGluIHNwbGl0cG9zdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICBuPXAuc3BsaXQoJzonKVswXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2PXAu
- c3BsaXQoJzonKVsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0W25dPXYK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3QgPSB1cmxsaWIudXJsZW5jb2RlKHBvc3Qp
- CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAncmF3cG9zdCcgaW4gbToKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIHBvc3Q9bVsncmF3cG9zdCddCiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAjaWYgJyRMaXZlU3RyZWFtUmVjYXB0Y2hhJyBpbiBwb3N0OgogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIyAgICAoY2FwdGNoYV9jaGFsbGVuZ2UsY2F0cGNoYV93b3JkLGlkZmllbGQp
- PXByb2Nlc3NSZWNhcHRjaGEobVsncGFnZSddLGNvb2tpZUphcikKICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICMgICAgaWYgY2FwdGNoYV9jaGFsbGVuZ2U6CiAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAjICAgICAgIHBvc3Q9cG9zdC5yZXBsYWNlKCckTGl2ZVN0cmVhbVJlY2FwdGNoYScs
- JyZtYW51YWxfcmVjYXB0Y2hhX2NoYWxsZW5nZV9maWVsZD0nK2NhcHRjaGFfY2hhbGxlbmdlKycm
- cmVjYXB0Y2hhX3Jlc3BvbnNlX2ZpZWxkPScrY2F0cGNoYV93b3JkKycmaWQ9JytpZGZpZWxkKQog
- ICAgICAgICAgICAgICAgICAgICAgICBsaW5rPScnCiAgICAgICAgICAgICAgICAgICAgICAgIHRy
- eToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgaWYgcG9zdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHVy
- bGxpYjIudXJsb3BlbihyZXEscG9zdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6
- CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9w
- ZW4ocmVxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVzcG9uc2UuaW5mbygpLmdl
- dCgnQ29udGVudC1FbmNvZGluZycpID09ICdnemlwJzoKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwogICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIGltcG9ydCBnemlwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- YnVmID0gU3RyaW5nSU8oIHJlc3BvbnNlLnJlYWQoKSkKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICBmID0gZ3ppcC5HemlwRmlsZShmaWxlb2JqPWJ1ZikKICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICBsaW5rID0gZi5yZWFkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluaz1yZXNwb25zZS5yZWFk
- KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAK
- ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAn
- cHJveHknIGluIG0gYW5kIG5vdCBjdXJyZW50X3Byb3hpZXMgaXMgTm9uZToKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICB1cmxsaWIyLmluc3RhbGxfb3BlbmVyKHVybGxpYjIuYnVpbGRf
- b3BlbmVyKGN1cnJlbnRfcHJveGllcykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbms9amF2YXNjcmlwdFVuRXNjYXBlKGxpbmspCiAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQgcmVwcihsaW5rKQogICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgI3ByaW50IGxpbmsgVGhpcyBqdXN0IHByaW50IHdob2xlIHdlYnBhZ2Ug
- aW4gTE9HCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAnaW5jbHVkZWhlYWRlcnMnIGlu
- IG06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2xpbmsrPXN0cihyZXNwb25zZS5o
- ZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IGxpbmsrPSckJEhFQURFUlNfU1RBUlQkJDonCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgZm9yIGIgaW4gcmVzcG9uc2UuaGVhZGVyczoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgbGluays9IGIrJzonK3Jlc3BvbnNlLmhlYWRlcnMuZ2V0KGIpKydcbicKICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rKz0nJCRIRUFERVJTX0VORCQkOicKICAgICMg
- ICAgICAgICAgICAgICAgICAgICAgICBwcmludCBsaW5rCiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICBhZGRvbl9sb2cobGluaykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZG9uX2xv
- Zyhjb29raWVKYXIgKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmNsb3Nl
- KCkKICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OiAKICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkUGFnZXNbbVsncGFnZSdd
- XSA9IGxpbmsKICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50IGxpbmsKICAgICAgICAgICAg
- ICAgICAgICAgICAgI3ByaW50ICdzdG9yZSBsaW5rIGZvcicsbVsncGFnZSddLGZvckNvb2tpZUph
- ck9ubHkKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZvckNvb2tpZUphck9ubHk6CiAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29va2llSmFyIyBkbyBub3RoaW5nCiAgICAg
- ICAgICAgICAgICAgICAgZWxpZiBtWydwYWdlJ10gYW5kICBub3QgbVsncGFnZSddLnN0YXJ0c3dp
- dGgoJ2h0dHAnKToKICAgICAgICAgICAgICAgICAgICAgICAgaWYgbVsncGFnZSddLnN0YXJ0c3dp
- dGgoJyRweUZ1bmN0aW9uOicpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsPWRvRXZh
- bChtWydwYWdlJ10uc3BsaXQoJyRweUZ1bmN0aW9uOicpWzFdLCcnLGNvb2tpZUphcixtICkKICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZvckNvb2tpZUphck9ubHk6CiAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvb2tpZUphciMgZG8gbm90aGluZwogICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgbGluaz12YWwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IGxpbms9amF2YXNjcmlwdFVuRXNjYXBlKGxpbmspCiAgICAgICAgICAgICAgICAgICAgICAgIGVs
- c2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rPW1bJ3BhZ2UnXQogICAgICAgICAg
- ICAgICAgaWYgJyRweUZ1bmN0aW9uOnBsYXltZWRpYSgnIGluIG1bJ2V4cHJlcyddIG9yICdBY3Rp
- dmF0ZVdpbmRvdycgIGluIG1bJ2V4cHJlcyddIG9yICdSdW5QbHVnaW4nICBpbiBtWydleHByZXMn
- XSAgb3IgJyRQTEFZRVJQUk9YWSQ9JyBpbiB1cmwgIG9yICBhbnkoeCBpbiB1cmwgZm9yIHggaW4g
- Z19pZ25vcmVTZXRSZXNvbHZlZCk6CiAgICAgICAgICAgICAgICAgICAgc2V0cmVzb2x2ZWQ9RmFs
- c2UKICAgICAgICAgICAgICAgIGlmICAnJGRvcmVnZXgnIGluIG1bJ2V4cHJlcyddOgogICAgICAg
- ICAgICAgICAgICAgIG1bJ2V4cHJlcyddPWdldFJlZ2V4UGFyc2VkKHJlZ2V4cywgbVsnZXhwcmVz
- J10sY29va2llSmFyLHJlY3Vyc2l2ZUNhbGw9VHJ1ZSxjYWNoZWRQYWdlcz1jYWNoZWRQYWdlcykK
- ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiBub3QgbVsnZXhwcmVzJ109PScn
- OgogICAgICAgICAgICAgICAgICAgICNwcmludCAnZG9pbmcgaXQgJyxtWydleHByZXMnXQogICAg
- ICAgICAgICAgICAgICAgIGlmICckTGl2ZVN0cmVhbUNhcHRjaGEnIGluIG1bJ2V4cHJlcyddOgog
- ICAgICAgICAgICAgICAgICAgICAgICB2YWw9YXNrQ2FwdGNoYShtLGxpbmssY29va2llSmFyKQog
- ICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQgJ3VybCBhbmQgdmFsJyx1cmwsdmFsCiAgICAg
- ICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCIkZG9yZWdleFsiICsgayArICJd
- IiwgdmFsKQoKICAgICAgICAgICAgICAgICAgICBlbGlmIG1bJ2V4cHJlcyddLnN0YXJ0c3dpdGgo
- JyRweUZ1bmN0aW9uOicpIG9yICcjJHB5RnVuY3Rpb24nIGluIG1bJ2V4cHJlcyddOgogICAgICAg
- ICAgICAgICAgICAgICAgICAjcHJpbnQgJ2V4cGVlZWVlZWVlZWVlZWVlZWVlZWUnLG1bJ2V4cHJl
- cyddCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbD0nJwogICAgICAgICAgICAgICAgICAgICAg
- ICBpZiBtWydleHByZXMnXS5zdGFydHN3aXRoKCckcHlGdW5jdGlvbjonKToKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIHZhbD1kb0V2YWwobVsnZXhwcmVzJ10uc3BsaXQoJyRweUZ1bmN0aW9u
- OicpWzFdLGxpbmssY29va2llSmFyLG0pCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWw9ZG9FdmFsRnVuY3Rpb24obVsnZXhwcmVzJ10s
- bGluayxjb29raWVKYXIsbSkKICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ0FjdGl2YXRlV2lu
- ZG93JyBpbiBtWydleHByZXMnXSBvciAnUnVuUGx1Z2luJyBpbiBtWydleHByZXMnXSAgOiByZXR1
- cm4gJycsRmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgaWYgZm9yQ29va2llSmFyT25seToK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb29raWVKYXIjIGRvIG5vdGhpbmcK
- ICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2xpc3RyZXBlYXQnIGluIG06CiAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBsaXN0cmVwZWF0PW1bJ2xpc3RyZXBlYXQnXSAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICNyZXQ9cmUuZmluZGFs
- bChtWydleHByZXMnXSxsaW5rKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50ICdy
- ZXQnLHZhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxpc3RyZXBlYXQsZXZh
- bCh2YWwpLCBtLHJlZ2V4cyxjb29raWVKYXIKIyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
- ICd1cmwgayB2YWwnLHVybCxrLHZhbAogICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQgJ3Jl
- cHInLHJlcHIodmFsKQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
- ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2Uo
- dSIkZG9yZWdleFsiICsgayArICJdIiwgdmFsKQogICAgICAgICAgICAgICAgICAgICAgICBleGNl
- cHQ6IHVybCA9IHVybC5yZXBsYWNlKCIkZG9yZWdleFsiICsgayArICJdIiwgdmFsLmRlY29kZSgi
- dXRmLTgiKSkKICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAg
- ICBpZiAnbGlzdHJlcGVhdCcgaW4gbToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Ry
- ZXBlYXQ9bVsnbGlzdHJlcGVhdCddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQg
- J2xpc3RyZXBlYXQnLG1bJ2V4cHJlcyddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcHJp
- bnQgbVsnZXhwcmVzJ10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwcmludCAnYWFhYScK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwcmludCBsaW5rCiAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICByZXQ9cmUuZmluZGFsbChtWydleHByZXMnXSxsaW5rKQogICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgI3ByaW50ICdyZXQnLHJldAogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgcmV0dXJuIGxpc3RyZXBlYXQscmV0LCBtLHJlZ2V4cyxjb29raWVKYXIKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgdmFsPScnCiAgICAgICAg
- ICAgICAgICAgICAgICAgIGlmIG5vdCBsaW5rPT0nJzoKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICNwcmludCAnbGluaycsbGluawogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnID0g
- cmUuY29tcGlsZShtWydleHByZXMnXSkuc2VhcmNoKGxpbmspICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgIHZhbD1yZWcuZ3JvdXAoMSkuc3RyaXAoKQogICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgZXhjZXB0OiB0cmFjZWJhY2sucHJpbnRfZXhjKCkKICAgICAgICAgICAgICAg
- ICAgICAgICAgZWxpZiBtWydwYWdlJ109PScnIG9yIG1bJ3BhZ2UnXT09Tm9uZToKICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgIHZhbD1tWydleHByZXMnXQogICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJhd1Bvc3Q6CiMgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgcHJpbnQgJ3Jhd3Bvc3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICB2YWw9dXJsbGliLnF1b3RlX3BsdXModmFsKQogICAgICAgICAgICAgICAgICAgICAgICBpZiAn
- aHRtbHVuZXNjYXBlJyBpbiBtOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ZhbD11cmxs
- aWIudW5xdW90ZV9wbHVzKHZhbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydCBI
- VE1MUGFyc2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWw9SFRNTFBhcnNlci5IVE1M
- UGFyc2VyKCkudW5lc2NhcGUodmFsKQogICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgiJGRvcmVnZXhbIiArIGsg
- KyAiXSIsIHZhbCkKICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OiB1cmwgPSB1cmwucmVw
- bGFjZSgiJGRvcmVnZXhbIiArIGsgKyAiXSIsIHZhbC5kZWNvZGUoInV0Zi04IikpCiAgICAgICAg
- ICAgICAgICAgICAgICAgICNwcmludCAndXInLHVybAogICAgICAgICAgICAgICAgICAgICAgICAj
- cmV0dXJuIHZhbAogICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICB1cmwg
- PSB1cmwucmVwbGFjZSgiJGRvcmVnZXhbIiArIGsgKyAiXSIsJycpCiAgICAgICAgaWYgJyRlcG9j
- dGltZSQnIGluIHVybDoKICAgICAgICAgICAgdXJsPXVybC5yZXBsYWNlKCckZXBvY3RpbWUkJyxn
- ZXRFcG9jVGltZSgpKQogICAgICAgIGlmICckZXBvY3RpbWUyJCcgaW4gdXJsOgogICAgICAgICAg
- ICB1cmw9dXJsLnJlcGxhY2UoJyRlcG9jdGltZTIkJyxnZXRFcG9jVGltZTIoKSkKCiAgICAgICAg
- aWYgJyRHVUlEJCcgaW4gdXJsOgogICAgICAgICAgICBpbXBvcnQgdXVpZAogICAgICAgICAgICB1
- cmw9dXJsLnJlcGxhY2UoJyRHVUlEJCcsc3RyKHV1aWQudXVpZDEoKSkudXBwZXIoKSkKICAgICAg
- ICBpZiAnJGdldF9jb29raWVzJCcgaW4gdXJsOgogICAgICAgICAgICB1cmw9dXJsLnJlcGxhY2Uo
- JyRnZXRfY29va2llcyQnLGdldENvb2tpZXNTdHJpbmcoY29va2llSmFyKSkKCiAgICAgICAgaWYg
- cmVjdXJzaXZlQ2FsbDogcmV0dXJuIHVybAogICAgICAgICNwcmludCAnZmluYWwgdXJsJyxyZXBy
- KHVybCkKICAgICAgICBpZiB1cmw9PSIiOgogICAgICAgICAgICByZXR1cm4KICAgICAgICBlbHNl
- OgogICAgICAgICAgICByZXR1cm4gdXJsLHNldHJlc29sdmVkCmRlZiBnZXRtZDUodCk6CiAgICBp
- bXBvcnQgaGFzaGxpYgogICAgaD1oYXNobGliLm1kNSgpCiAgICBoLnVwZGF0ZSh0KQogICAgcmV0
- dXJuIGguaGV4ZGlnZXN0KCkKCmRlZiBkZWNyeXB0X3ZhdWdobmxpdmUoZW5jcnlwdGVkKToKICAg
- IHJldFZhbD0iIgojICAgIHByaW50ICdlbmMnLGVuY3J5cHRlZAogICAgI2ZvciB2YWwgaW4gZW5j
- cnlwdGVkLnNwbGl0KCc6Jyk6CiAgICAjICAgIHJldFZhbCs9Y2hyKGludCh2YWwucmVwbGFjZSgi
- MG0wIiwiIikpKQogICAgI3JldHVybiByZXRWYWwKCmRlZiBwbGF5bWVkaWEobWVkaWFfdXJsKToK
- ICAgIHRyeToKICAgICAgICBpbXBvcnQgIEN1c3RvbVBsYXllcgogICAgICAgIHBsYXllciA9IEN1
- c3RvbVBsYXllci5NeVhCTUNQbGF5ZXIoKQogICAgICAgIGxpc3RpdGVtID0geGJtY2d1aS5MaXN0
- SXRlbSggbGFiZWwgPSBzdHIobmFtZSksIGljb25JbWFnZSA9ICJEZWZhdWx0VmlkZW8ucG5nIiwg
- dGh1bWJuYWlsSW1hZ2UgPSB4Ym1jLmdldEluZm9JbWFnZSggIkxpc3RJdGVtLlRodW1iIiApLCBw
- YXRoPW1lZGlhX3VybCApCiAgICAgICAgcGxheWVyLnBsYXkoIG1lZGlhX3VybCxsaXN0aXRlbSkK
- ICAgICAgICB4Ym1jLnNsZWVwKDEwMDApCiAgICAgICAgd2hpbGUgcGxheWVyLmlzX2FjdGl2ZToK
- ICAgICAgICAgICAgeGJtYy5zbGVlcCgyMDApCiAgICBleGNlcHQ6CiAgICAgICAgdHJhY2ViYWNr
- LnByaW50X2V4YygpCiAgICByZXR1cm4gJycKCmRlZiBrb2RpSnNvblJlcXVlc3QocGFyYW1zKToK
- ICAgIGRhdGEgPSBqc29uLmR1bXBzKHBhcmFtcykKICAgIHJlcXVlc3QgPSB4Ym1jLmV4ZWN1dGVK
- U09OUlBDKGRhdGEpCgogICAgdHJ5OgogICAgICAgIHJlc3BvbnNlID0ganNvbi5sb2FkcyhyZXF1
- ZXN0KQogICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKICAgICAgICByZXNwb25zZSA9IGpz
- b24ubG9hZHMocmVxdWVzdC5kZWNvZGUoJ3V0Zi04JywgJ2lnbm9yZScpKQoKICAgIHRyeToKICAg
- ICAgICBpZiAncmVzdWx0JyBpbiByZXNwb25zZToKICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNl
- WydyZXN1bHQnXQogICAgICAgIHJldHVybiBOb25lCiAgICBleGNlcHQgS2V5RXJyb3I6CiAgICAg
- ICAgbG9nZ2VyLndhcm4oIlslc10gJXMiICUgKHBhcmFtc1snbWV0aG9kJ10sIHJlc3BvbnNlWydl
- cnJvciddWydtZXNzYWdlJ10pKQogICAgICAgIHJldHVybiBOb25lCgoKZGVmIHNldEtvZGlQcm94
- eShwcm94eXNldHRpbmdzPU5vbmUpOgoKICAgIGlmIHByb3h5c2V0dGluZ3M9PU5vbmU6CiMgICAg
- ICAgIHByaW50ICdwcm94eSBzZXQgdG8gbm90aGluZycKICAgICAgICB4Ym1jLmV4ZWN1dGVKU09O
- UlBDKCd7Impzb25ycGMiOiIyLjAiLCAibWV0aG9kIjoiU2V0dGluZ3MuU2V0U2V0dGluZ1ZhbHVl
- IiwgInBhcmFtcyI6eyJzZXR0aW5nIjoibmV0d29yay51c2VodHRwcHJveHkiLCAidmFsdWUiOmZh
- bHNlfSwgImlkIjoxfScpCiAgICBlbHNlOgogICAgICAgIAogICAgICAgIHBzPXByb3h5c2V0dGlu
- Z3Muc3BsaXQoJzonKQogICAgICAgIHByb3h5VVJMPXBzWzBdCiAgICAgICAgcHJveHlQb3J0PXBz
- WzFdCiAgICAgICAgcHJveHlUeXBlPXBzWzJdCiAgICAgICAgcHJveHlVc2VybmFtZT1Ob25lCiAg
- ICAgICAgcHJveHlQYXNzd29yZD1Ob25lCiAgICAgICAgCiAgICAgICAgaWYgbGVuKHBzKT4zIGFu
- ZCAnQCcgaW4gcHNbM106ICNqYWlyb3ggIyMjcHJveHlzZXR0aW5ncwogICAgICAgICAgICBwcm94
- eVVzZXJuYW1lPXBzWzNdLnNwbGl0KCdAJylbMF0gI2phaXJveCAjIyNwc1szXQogICAgICAgICAg
- ICBwcm94eVBhc3N3b3JkPXBzWzNdLnNwbGl0KCdAJylbMV0gI2phaXJveCAjIyNwcm94eXNldHRp
- bmdzLnNwbGl0KCdAJylbLTFdCgojICAgICAgICBwcmludCAncHJveHkgc2V0IHRvJywgcHJveHlU
- eXBlLCBwcm94eVVSTCxwcm94eVBvcnQKICAgICAgICB4Ym1jLmV4ZWN1dGVKU09OUlBDKCd7Impz
- b25ycGMiOiIyLjAiLCAibWV0aG9kIjoiU2V0dGluZ3MuU2V0U2V0dGluZ1ZhbHVlIiwgInBhcmFt
- cyI6eyJzZXR0aW5nIjoibmV0d29yay51c2VodHRwcHJveHkiLCAidmFsdWUiOnRydWV9LCAiaWQi
- OjF9JykKICAgICAgICB4Ym1jLmV4ZWN1dGVKU09OUlBDKCd7Impzb25ycGMiOiIyLjAiLCAibWV0
- aG9kIjoiU2V0dGluZ3MuU2V0U2V0dGluZ1ZhbHVlIiwgInBhcmFtcyI6eyJzZXR0aW5nIjoibmV0
- d29yay5odHRwcHJveHl0eXBlIiwgInZhbHVlIjonICsgc3RyKHByb3h5VHlwZSkgKyd9LCAiaWQi
- OjF9JykKICAgICAgICB4Ym1jLmV4ZWN1dGVKU09OUlBDKCd7Impzb25ycGMiOiIyLjAiLCAibWV0
- aG9kIjoiU2V0dGluZ3MuU2V0U2V0dGluZ1ZhbHVlIiwgInBhcmFtcyI6eyJzZXR0aW5nIjoibmV0
- d29yay5odHRwcHJveHlzZXJ2ZXIiLCAidmFsdWUiOiInICsgc3RyKHByb3h5VVJMKSArJyJ9LCAi
- aWQiOjF9JykKICAgICAgICB4Ym1jLmV4ZWN1dGVKU09OUlBDKCd7Impzb25ycGMiOiIyLjAiLCAi
- bWV0aG9kIjoiU2V0dGluZ3MuU2V0U2V0dGluZ1ZhbHVlIiwgInBhcmFtcyI6eyJzZXR0aW5nIjoi
- bmV0d29yay5odHRwcHJveHlwb3J0IiwgInZhbHVlIjonICsgc3RyKHByb3h5UG9ydCkgKyd9LCAi
- aWQiOjF9JykKICAgICAgICAKICAgICAgICAKICAgICAgICBpZiBub3QgcHJveHlVc2VybmFtZT09
- Tm9uZToKICAgICAgICAgICAgeGJtYy5leGVjdXRlSlNPTlJQQygneyJqc29ucnBjIjoiMi4wIiwg
- Im1ldGhvZCI6IlNldHRpbmdzLlNldFNldHRpbmdWYWx1ZSIsICJwYXJhbXMiOnsic2V0dGluZyI6
- Im5ldHdvcmsuaHR0cHByb3h5dXNlcm5hbWUiLCAidmFsdWUiOiInICsgc3RyKHByb3h5VXNlcm5h
- bWUpICsnIn0sICJpZCI6MX0nKQogICAgICAgICAgICB4Ym1jLmV4ZWN1dGVKU09OUlBDKCd7Impz
- b25ycGMiOiIyLjAiLCAibWV0aG9kIjoiU2V0dGluZ3MuU2V0U2V0dGluZ1ZhbHVlIiwgInBhcmFt
- cyI6eyJzZXR0aW5nIjoibmV0d29yay5odHRwcHJveHlwYXNzd29yZCIsICJ2YWx1ZSI6IicgKyBz
- dHIocHJveHlQYXNzd29yZCkgKycifSwgImlkIjoxfScpCgogICAgICAgIApkZWYgZ2V0Q29uZmln
- dXJlZFByb3h5KCk6CiAgICBwcm94eUFjdGl2ZSA9IGtvZGlKc29uUmVxdWVzdCh7J2pzb25ycGMn
- OiAnMi4wJywgIm1ldGhvZCI6IlNldHRpbmdzLkdldFNldHRpbmdWYWx1ZSIsICJwYXJhbXMiOnsi
- c2V0dGluZyI6Im5ldHdvcmsudXNlaHR0cHByb3h5In0sICdpZCc6IDF9KVsndmFsdWUnXQojICAg
- IHByaW50ICdwcm94eUFjdGl2ZScscHJveHlBY3RpdmUKICAgIHByb3h5VHlwZSA9IGtvZGlKc29u
- UmVxdWVzdCh7J2pzb25ycGMnOiAnMi4wJywgIm1ldGhvZCI6IlNldHRpbmdzLkdldFNldHRpbmdW
- YWx1ZSIsICJwYXJhbXMiOnsic2V0dGluZyI6Im5ldHdvcmsuaHR0cHByb3h5dHlwZSJ9LCAnaWQn
- OiAxfSlbJ3ZhbHVlJ10KCiAgICBpZiBwcm94eUFjdGl2ZTogIyBQUk9YWV9IVFRQCiAgICAgICAg
- cHJveHlVUkwgPSBrb2RpSnNvblJlcXVlc3Qoeydqc29ucnBjJzogJzIuMCcsICJtZXRob2QiOiJT
- ZXR0aW5ncy5HZXRTZXR0aW5nVmFsdWUiLCAicGFyYW1zIjp7InNldHRpbmciOiJuZXR3b3JrLmh0
- dHBwcm94eXNlcnZlciJ9LCAnaWQnOiAxfSlbJ3ZhbHVlJ10KICAgICAgICBwcm94eVBvcnQgPSB1
- bmljb2RlKGtvZGlKc29uUmVxdWVzdCh7J2pzb25ycGMnOiAnMi4wJywgIm1ldGhvZCI6IlNldHRp
- bmdzLkdldFNldHRpbmdWYWx1ZSIsICJwYXJhbXMiOnsic2V0dGluZyI6Im5ldHdvcmsuaHR0cHBy
- b3h5cG9ydCJ9LCAnaWQnOiAxfSlbJ3ZhbHVlJ10pCiAgICAgICAgcHJveHlVc2VybmFtZSA9IGtv
- ZGlKc29uUmVxdWVzdCh7J2pzb25ycGMnOiAnMi4wJywgIm1ldGhvZCI6IlNldHRpbmdzLkdldFNl
- dHRpbmdWYWx1ZSIsICJwYXJhbXMiOnsic2V0dGluZyI6Im5ldHdvcmsuaHR0cHByb3h5dXNlcm5h
- bWUifSwgJ2lkJzogMX0pWyd2YWx1ZSddCiAgICAgICAgcHJveHlQYXNzd29yZCA9IGtvZGlKc29u
- UmVxdWVzdCh7J2pzb25ycGMnOiAnMi4wJywgIm1ldGhvZCI6IlNldHRpbmdzLkdldFNldHRpbmdW
- YWx1ZSIsICJwYXJhbXMiOnsic2V0dGluZyI6Im5ldHdvcmsuaHR0cHByb3h5cGFzc3dvcmQifSwg
- J2lkJzogMX0pWyd2YWx1ZSddCgogICAgICAgIGlmIHByb3h5VXNlcm5hbWUgYW5kIHByb3h5UGFz
- c3dvcmQgYW5kIHByb3h5VVJMIGFuZCBwcm94eVBvcnQ6CiAgICAgICAgICAgIHJldHVybiBwcm94
- eVVSTCArICc6JyArIHN0cihwcm94eVBvcnQpKyc6JytzdHIocHJveHlUeXBlKSArICc6JyArIHBy
- b3h5VXNlcm5hbWUgKyAnQCcgKyBwcm94eVBhc3N3b3JkCiAgICAgICAgZWxpZiBwcm94eVVSTCBh
- bmQgcHJveHlQb3J0OgogICAgICAgICAgICByZXR1cm4gcHJveHlVUkwgKyAnOicgKyBzdHIocHJv
- eHlQb3J0KSsnOicrc3RyKHByb3h5VHlwZSkKICAgIGVsc2U6CiAgICAgICAgcmV0dXJuIE5vbmUK
- ICAgICAgICAKZGVmIHBsYXltZWRpYXdpdGhwcm94eShtZWRpYV91cmwsIG5hbWUsIGljb25JbWFn
- ZSxwcm94eWlwLHBvcnQsIHByb3h5dXNlcj1Ob25lLCBwcm94eXBhc3M9Tm9uZSk6ICNqYWlyb3gK
- CiAgICBpZiBtZWRpYV91cmw9PU5vbmUgb3IgbWVkaWFfdXJsPT0nJzoKICAgICAgICB4Ym1jLmV4
- ZWN1dGVidWlsdGluKCJYQk1DLk5vdGlmaWNhdGlvbihDb2NpbmFUdSxVbmFibGUgdG8gcGxheSBl
- bXB0eSBVcmwsNTAwMCwiK2ljb24rIikiKQogICAgICAgIHJldHVybgogICAgcHJvZ3Jlc3MgPSB4
- Ym1jZ3VpLkRpYWxvZ1Byb2dyZXNzKCkKICAgIHByb2dyZXNzLmNyZWF0ZSgnUHJvZ3Jlc3MnLCAn
- UGxheWluZyB3aXRoIGN1c3RvbSBwcm94eScpCiAgICBwcm9ncmVzcy51cGRhdGUoIDEwLCAiIiwg
- InNldHRpbmcgcHJveHkuLiIsICIiICkKICAgIHByb3h5c2V0PUZhbHNlCiAgICBleGlzdGluZ19w
- cm94eT0nJwogICAgI3ByaW50ICdwbGF5bWVkaWF3aXRocHJveHknCiAgICB0cnk6CiAgICAgICAg
- CiAgICAgICAgZXhpc3RpbmdfcHJveHk9Z2V0Q29uZmlndXJlZFByb3h5KCkKICAgICAgICBwcmlu
- dCAnZXhpc3RpbmdfcHJveHknLGV4aXN0aW5nX3Byb3h5CiAgICAgICAgI3JlYWQgYW5kIHNldCBo
- ZXJlCiAgICAgICAgI2phaXJveAogICAgICAgIGlmIG5vdCBwcm94eXVzZXIgPT0gTm9uZToKICAg
- ICAgICAgICAgc2V0S29kaVByb3h5KCBwcm94eWlwICsgJzonICsgcG9ydCArICc6MDonICsgcHJv
- eHl1c2VyICsgJ0AnICsgcHJveHlwYXNzKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNldEtv
- ZGlQcm94eSggcHJveHlpcCArICc6JyArIHBvcnQgKyAnOjAnKQoKICAgICAgICBwcmludCAncHJv
- eHkgc2V0dGluZyBjb21wbGV0ZSBwbGF5aW5nJyxtZWRpYV91cmwKICAgICAgICBwcm94eXNldD1U
- cnVlCiAgICAgICAgcHJvZ3Jlc3MudXBkYXRlKCA4MCwgIiIsICJzZXR0aW5nIHByb3h5IGNvbXBs
- ZXRlLCBub3cgcGxheWluZyIsICIiICkKICAgICAgICAKCiAgICAgICAgaW1wb3J0ICBDdXN0b21Q
- bGF5ZXIKICAgICAgICBwbGF5ZXIgPSBDdXN0b21QbGF5ZXIuTXlYQk1DUGxheWVyKCkKICAgICAg
- ICBwbGF5ZXIucGRpYWxvZ3VlPT1wcm9ncmVzcwogICAgICAgIGxpc3RpdGVtID0geGJtY2d1aS5M
- aXN0SXRlbSggbGFiZWwgPSBzdHIobmFtZSksIGljb25JbWFnZSA9IGljb25JbWFnZSwgdGh1bWJu
- YWlsSW1hZ2UgPSB4Ym1jLmdldEluZm9JbWFnZSggIkxpc3RJdGVtLlRodW1iIiApLCBwYXRoPW1l
- ZGlhX3VybCApCiAgICAgICAgcGxheWVyLnBsYXkoIG1lZGlhX3VybCxsaXN0aXRlbSkKICAgICAg
- ICB4Ym1jLnNsZWVwKDEwMDApCiAgICAgICAgI3doaWxlIHBsYXllci5pc19hY3RpdmU6CiAgICAg
- ICAgIyAgICB4Ym1jLnNsZWVwKDIwMCkKICAgICAgICBpbXBvcnQgdGltZQogICAgICAgIGJlZm9y
- ZXN0YXJ0PXRpbWUudGltZSgpCiAgICAgICAgdHJ5OgogICAgICAgICAgICB3aGlsZSBwbGF5ZXIu
- aXNfYWN0aXZlOgogICAgICAgICAgICAgICAgeGJtYy5zbGVlcCgxMDAwKSAgICAgICAKICAgICAg
- ICAgICAgICAgIGlmIHBsYXllci51cmxwbGF5ZWQ9PUZhbHNlIGFuZCB0aW1lLnRpbWUoKS1iZWZv
- cmVzdGFydD4xMjoKICAgICAgICAgICAgICAgICAgICBwcmludCAnZmFpbGVkISEhJwogICAgICAg
- ICAgICAgICAgICAgIHhibWMuZXhlY3V0ZWJ1aWx0aW4oIlhCTUMuTm90aWZpY2F0aW9uKENvY2lu
- YVR1LFVuYWJsZSB0byBwbGF5IGNoZWNrIHByb3h5LDUwMDAsIitpY29uKyIpIikKICAgICAgICAg
- ICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgI3hibWMuc2xlZXAoMTAwMCkKICAgICAg
- ICBleGNlcHQ6IHBhc3MKCiAgICAgICAgcHJvZ3Jlc3MuY2xvc2UoKQogICAgICAgIHByb2dyZXNz
- PU5vbmUKICAgIGV4Y2VwdDoKICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKICAgIGlmIHBy
- b2dyZXNzOgogICAgICAgIHByb2dyZXNzLmNsb3NlKCkKICAgIGlmIHByb3h5c2V0OgogICAgICAg
- IHByaW50ICdub3cgcmVzZXR0aW5nIHRoZSBwcm94eSBiYWNrJwogICAgICAgIHNldEtvZGlQcm94
- eShleGlzdGluZ19wcm94eSkKICAgICAgICBwcmludCAncmVzZXQgaGVyZScKICAgIHJldHVybiAn
- JwoKCmRlZiBnZXRfc2F3X3J0bXAocGFnZV92YWx1ZSwgcmVmZXJlcj1Ob25lKToKICAgIGlmIHJl
- ZmVyZXI6CiAgICAgICAgcmVmZXJlcj1bKCdSZWZlcmVyJyxyZWZlcmVyKV0KICAgIGlmIHBhZ2Vf
- dmFsdWUuc3RhcnRzd2l0aCgiaHR0cCIpOgogICAgICAgIHBhZ2VfdXJsPXBhZ2VfdmFsdWUKICAg
- ICAgICBwYWdlX3ZhbHVlPSBnZXRVcmwocGFnZV92YWx1ZSxoZWFkZXJzPXJlZmVyZXIpCgogICAg
- c3RyX3BhdHRlcm49IihldmFsXChmdW5jdGlvblwocCxhLGMsayxlLCg/OnJ8ZCkuKikiCgogICAg
- cmVnX3Jlcz1yZS5jb21waWxlKHN0cl9wYXR0ZXJuKS5maW5kYWxsKHBhZ2VfdmFsdWUpCiAgICBy
- PSIiCiAgICBpZiByZWdfcmVzIGFuZCBsZW4ocmVnX3Jlcyk+MDoKICAgICAgICBmb3IgdiBpbiBy
- ZWdfcmVzOgogICAgICAgICAgICByMT1nZXRfdW5wYWNrZWQodikKICAgICAgICAgICAgcjI9cmVf
- bWUocjEsJ1wnKC4qPylcJycpCiAgICAgICAgICAgIGlmICd1bmVzY2FwZScgaW4gcjE6CiAgICAg
- ICAgICAgICAgICByMT11cmxsaWIudW5xdW90ZShyMikKICAgICAgICAgICAgcis9cjErJ1xuJwoj
- ICAgICAgICBwcmludCAnZmluYWwgdmFsdWUgaXMgJyxyCgogICAgICAgIHBhZ2VfdXJsPXJlX21l
- KHIsJ3NyYz0iKC4qPykiJykKCiAgICAgICAgcGFnZV92YWx1ZT0gZ2V0VXJsKHBhZ2VfdXJsLGhl
- YWRlcnM9cmVmZXJlcikKCiAgICAjcHJpbnQgcGFnZV92YWx1ZQoKICAgIHJ0bXA9cmVfbWUocGFn
- ZV92YWx1ZSwnc3RyZWFtZXJcJy4qP1wnKC4qPylcJ1wpJykKICAgIHBsYXlwYXRoPXJlX21lKHBh
- Z2VfdmFsdWUsJ2ZpbGVcJyxcc1wnKC4qPylcJycpCgoKICAgIHJldHVybiBydG1wKycgcGxheXBh
- dGg9JytwbGF5cGF0aCArJyBwYWdlVXJsPScrcGFnZV91cmwKCmRlZiBnZXRfbGV0b25fcnRtcChw
- YWdlX3ZhbHVlLCByZWZlcmVyPU5vbmUpOgogICAgaWYgcmVmZXJlcjoKICAgICAgICByZWZlcmVy
- PVsoJ1JlZmVyZXInLHJlZmVyZXIpXQogICAgaWYgcGFnZV92YWx1ZS5zdGFydHN3aXRoKCJodHRw
- Iik6CiAgICAgICAgcGFnZV92YWx1ZT0gZ2V0VXJsKHBhZ2VfdmFsdWUsaGVhZGVycz1yZWZlcmVy
- KQogICAgc3RyX3BhdHRlcm49InZhciBhID0gKC4qPyk7XHMqdmFyIGIgPSAoLio/KTtccyp2YXIg
- YyA9ICguKj8pO1xzKnZhciBkID0gKC4qPyk7XHMqdmFyIGYgPSAoLio/KTtccyp2YXIgdl9wYXJ0
- ID0gJyguKj8pJzsiCiAgICByZWdfcmVzPXJlLmNvbXBpbGUoc3RyX3BhdHRlcm4pLmZpbmRhbGwo
- cGFnZV92YWx1ZSlbMF0KCiAgICBhLGIsYyxkLGYsdj0ocmVnX3JlcykKICAgIGY9aW50KGYpCiAg
- ICBhPWludChhKS9mCiAgICBiPWludChiKS9mCiAgICBjPWludChjKS9mCiAgICBkPWludChkKS9m
- CgogICAgcmV0PSAncnRtcDovLycgKyBzdHIoYSkgKyAnLicgKyBzdHIoYikgKyAnLicgKyBzdHIo
- YykgKyAnLicgKyBzdHIoZCkgKyB2OwogICAgcmV0dXJuIHJldAoKZGVmIGNyZWF0ZU0zdUZvckRh
- c2godXJsLHVzZXJhZ2VudD1Ob25lKToKICAgIHN0cj0nI0VYVE0zVScKICAgIHN0cis9J1xuI0VY
- VC1YLVNUUkVBTS1JTkY6UFJPR1JBTS1JRD0xLEJBTkRXSURUSD0zNjE4MTYnCiAgICBzdHIrPSdc
- bicrdXJsKycmYnl0ZXM9MC0yMDAwMDAnIysnfFVzZXItQWdlbnQ9Jyt1c2VyYWdlbnQKICAgIHNv
- dXJjZV9maWxlID0gb3MucGF0aC5qb2luKHByb2ZpbGUsICd0ZXN0ZmlsZS5tM3UnKQogICAgc3Ry
- Kz0nXG4nCiAgICBTYXZlVG9GaWxlKHNvdXJjZV9maWxlLHN0cikKICAgICNyZXR1cm4gJ0M6L1Vz
- ZXJzL3NoYW5pL0Rvd25sb2Fkcy90ZXN0Lm0zdTgnCiAgICByZXR1cm4gc291cmNlX2ZpbGUKCmRl
- ZiBTYXZlVG9GaWxlKGZpbGVfbmFtZSxwYWdlX2RhdGEsYXBwZW5kPUZhbHNlKToKICAgIGlmIGFw
- cGVuZDoKICAgICAgICBmID0gb3BlbihmaWxlX25hbWUsICdhJykKICAgICAgICBmLndyaXRlKHBh
- Z2VfZGF0YSkKICAgICAgICBmLmNsb3NlKCkKICAgIGVsc2U6CiAgICAgICAgZj1vcGVuKGZpbGVf
- bmFtZSwnd2InKQogICAgICAgIGYud3JpdGUocGFnZV9kYXRhKQogICAgICAgIGYuY2xvc2UoKQog
- ICAgICAgIHJldHVybiAnJwoKZGVmIExvYWRGaWxlKGZpbGVfbmFtZSk6CiAgICBmPW9wZW4oZmls
- ZV9uYW1lLCdyYicpCiAgICBkPWYucmVhZCgpCiAgICBmLmNsb3NlKCkKICAgIHJldHVybiBkCgpk
- ZWYgZ2V0X3BhY2tlZF9pcGhvbmV0dl91cmwocGFnZV9kYXRhKToKICAgIGltcG9ydCByZSxiYXNl
- NjQsdXJsbGliOwogICAgcz1wYWdlX2RhdGEKICAgIHdoaWxlICdnZWgoJyBpbiBzOgogICAgICAg
- IGlmIHMuc3RhcnRzd2l0aCgnbG9sKCcpOiBzPXNbNTotMV0KIyAgICAgICBwcmludCAncyBpcyAn
- LHMKICAgICAgICBzPXJlLmNvbXBpbGUoJyIoLio/KSInKS5maW5kYWxsKHMpWzBdOwogICAgICAg
- IHM9ICBiYXNlNjQuYjY0ZGVjb2RlKHMpOwogICAgICAgIHM9dXJsbGliLnVucXVvdGUocyk7CiAg
- ICBwcmludCBzCiAgICByZXR1cm4gcwoKZGVmIGdldF9mZXJyYXJpX3VybChwYWdlX2RhdGEpOgoj
- ICAgIHByaW50ICdnZXRfZGFnX3VybDInLHBhZ2VfZGF0YQogICAgcGFnZV9kYXRhMj1nZXRVcmwo
- cGFnZV9kYXRhKTsKICAgIHBhdHQ9JyhodHRwLiopJwogICAgaW1wb3J0IHV1aWQKICAgIHBsYXli
- YWNrPXN0cih1dWlkLnV1aWQxKCkpLnVwcGVyKCkKICAgIGxpbmtzPXJlLmNvbXBpbGUocGF0dCku
- ZmluZGFsbChwYWdlX2RhdGEyKQogICAgaGVhZGVycz1bKCdYLVBsYXliYWNrLVNlc3Npb24tSWQn
- LHBsYXliYWNrKV0KICAgIGZvciBsIGluIGxpbmtzOgogICAgICAgIHRyeToKICAgICAgICAgICAg
- ICAgIHBhZ2VfZGF0YXRlbXA9Z2V0VXJsKGwsaGVhZGVycz1oZWFkZXJzKTsKCiAgICAgICAgZXhj
- ZXB0OiBwYXNzCgogICAgcmV0dXJuIHBhZ2VfZGF0YSsnfCZYLVBsYXliYWNrLVNlc3Npb24tSWQ9
- JytwbGF5YmFjawoKCmRlZiBnZXRfZGFnX3VybChwYWdlX2RhdGEpOgojICAgIHByaW50ICdnZXRf
- ZGFnX3VybCcscGFnZV9kYXRhCiAgICBpZiBwYWdlX2RhdGEuc3RhcnRzd2l0aCgnaHR0cDovL2Rh
- Zy50b3RhbC1zdHJlYW0ubmV0Jyk6CiAgICAgICAgaGVhZGVycz1bKCdVc2VyLUFnZW50JywnVmVy
- aXNtby1CbGFja1VJXygyLjQuNy41LjguMC4zNCknKV0KICAgICAgICBwYWdlX2RhdGE9Z2V0VXJs
- KHBhZ2VfZGF0YSxoZWFkZXJzPWhlYWRlcnMpOwoKICAgIGlmICcxMjcuMC4wLjEnIGluIHBhZ2Vf
- ZGF0YToKICAgICAgICByZXR1cm4gcmV2aXN0X2RhZyhwYWdlX2RhdGEpCiAgICBlbGlmIHJlX21l
- KHBhZ2VfZGF0YSwgJ3dtc0F1dGhTaWduJTNEKFteJSZdKyknKSAhPSAnJzoKICAgICAgICBmaW5h
- bF91cmwgPSByZV9tZShwYWdlX2RhdGEsICcmdmVyX3Q9KFteJl0rKSYnKSArICc/d21zQXV0aFNp
- Z249JyArIHJlX21lKHBhZ2VfZGF0YSwgJ3dtc0F1dGhTaWduJTNEKFteJSZdKyknKSArICc9PS9t
- cDQ6JyArIHJlX21lKHBhZ2VfZGF0YSwgJ1xcP3k9KFteJl0rKSYnKQogICAgZWxzZToKICAgICAg
- ICBmaW5hbF91cmwgPSByZV9tZShwYWdlX2RhdGEsICdocmVmPSIoW14iXSspIlteIl0rJCcpCiAg
- ICAgICAgaWYgbGVuKGZpbmFsX3VybCk9PTA6CiAgICAgICAgICAgIGZpbmFsX3VybD1wYWdlX2Rh
- dGEKICAgIGZpbmFsX3VybCA9IGZpbmFsX3VybC5yZXBsYWNlKCcgJywgJyUyMCcpCiAgICByZXR1
- cm4gZmluYWxfdXJsCgpkZWYgcmVfbWUoZGF0YSwgcmVfcGF0dGVuKToKICAgIG1hdGNoID0gJycK
- ICAgIG0gPSByZS5zZWFyY2gocmVfcGF0dGVuLCBkYXRhKQogICAgaWYgbSAhPSBOb25lOgogICAg
- ICAgIG1hdGNoID0gbS5ncm91cCgxKQogICAgZWxzZToKICAgICAgICBtYXRjaCA9ICcnCiAgICBy
- ZXR1cm4gbWF0Y2gKCmRlZiByZXZpc3RfZGFnKHBhZ2VfZGF0YSk6CiAgICBmaW5hbF91cmwgPSAn
- JwogICAgaWYgJzEyNy4wLjAuMScgaW4gcGFnZV9kYXRhOgogICAgICAgIGZpbmFsX3VybCA9IHJl
- X21lKHBhZ2VfZGF0YSwgJyZ2ZXJfdD0oW14mXSspJicpICsgJyBsaXZlPXRydWUgdGltZW91dD0x
- NSBwbGF5cGF0aD0nICsgcmVfbWUocGFnZV9kYXRhLCAnXFw/eT0oW2EtekEtWjAtOS1fXFwuQF0r
- KScpCgogICAgaWYgcmVfbWUocGFnZV9kYXRhLCAndG9rZW49KFteJl0rKSYnKSAhPSAnJzoKICAg
- ICAgICBmaW5hbF91cmwgPSBmaW5hbF91cmwgKyAnP3Rva2VuPScgKyByZV9tZShwYWdlX2RhdGEs
- ICd0b2tlbj0oW14mXSspJicpCiAgICBlbGlmIHJlX21lKHBhZ2VfZGF0YSwgJ3dtc0F1dGhTaWdu
- JTNEKFteJSZdKyknKSAhPSAnJzoKICAgICAgICBmaW5hbF91cmwgPSByZV9tZShwYWdlX2RhdGEs
- ICcmdmVyX3Q9KFteJl0rKSYnKSArICc/d21zQXV0aFNpZ249JyArIHJlX21lKHBhZ2VfZGF0YSwg
- J3dtc0F1dGhTaWduJTNEKFteJSZdKyknKSArICc9PS9tcDQ6JyArIHJlX21lKHBhZ2VfZGF0YSwg
- J1xcP3k9KFteJl0rKSYnKQogICAgZWxzZToKICAgICAgICBmaW5hbF91cmwgPSByZV9tZShwYWdl
- X2RhdGEsICdIUkVGPSIoW14iXSspIicpCgogICAgaWYgJ2RhZzEuYXN4JyBpbiBmaW5hbF91cmw6
- CiAgICAgICAgcmV0dXJuIGdldF9kYWdfdXJsKGZpbmFsX3VybCkKCiAgICBpZiAnZGV2aW5saXZl
- ZnMuZnBsaXZlLm5ldCcgbm90IGluIGZpbmFsX3VybDoKICAgICAgICBmaW5hbF91cmwgPSBmaW5h
- bF91cmwucmVwbGFjZSgnZGV2aW5saXZlJywgJ2ZsaXZlJykKICAgIGlmICdwZXJtbGl2ZWZzLmZw
- bGl2ZS5uZXQnIG5vdCBpbiBmaW5hbF91cmw6CiAgICAgICAgZmluYWxfdXJsID0gZmluYWxfdXJs
- LnJlcGxhY2UoJ3Blcm1saXZlJywgJ2ZsaXZlJykKICAgIHJldHVybiBmaW5hbF91cmwKCgpkZWYg
- Z2V0X3Vud2lzZSggc3RyX2V2YWwpOgogICAgcGFnZV92YWx1ZT0iIgogICAgdHJ5OgogICAgICAg
- IHNzPSJ3LGkscyxlPSgiK3N0cl9ldmFsKycpJwogICAgICAgIGV4ZWMgKHNzKQogICAgICAgIHBh
- Z2VfdmFsdWU9dW53aXNlX2Z1bmModyxpLHMsZSkKICAgIGV4Y2VwdDogdHJhY2ViYWNrLnByaW50
- X2V4YyhmaWxlPXN5cy5zdGRvdXQpCiAgICAjcHJpbnQgJ3VucGFja2VkJyxwYWdlX3ZhbHVlCiAg
- ICByZXR1cm4gcGFnZV92YWx1ZQoKZGVmIHVud2lzZV9mdW5jKCB3LCBpLCBzLCBlKToKICAgIGxJ
- bGwgPSAwOwogICAgbGwxSSA9IDA7CiAgICBJbDFsID0gMDsKICAgIGxsMWwgPSBbXTsKICAgIGwx
- bEkgPSBbXTsKICAgIHdoaWxlIFRydWU6CiAgICAgICAgaWYgKGxJbGwgPCA1KToKICAgICAgICAg
- ICAgbDFsSS5hcHBlbmQod1tsSWxsXSkKICAgICAgICBlbGlmIChsSWxsIDwgbGVuKHcpKToKICAg
- ICAgICAgICAgbGwxbC5hcHBlbmQod1tsSWxsXSk7CiAgICAgICAgbElsbCs9MTsKICAgICAgICBp
- ZiAobGwxSSA8IDUpOgogICAgICAgICAgICBsMWxJLmFwcGVuZChpW2xsMUldKQogICAgICAgIGVs
- aWYgKGxsMUkgPCBsZW4oaSkpOgogICAgICAgICAgICBsbDFsLmFwcGVuZChpW2xsMUldKQogICAg
- ICAgIGxsMUkrPTE7CiAgICAgICAgaWYgKElsMWwgPCA1KToKICAgICAgICAgICAgbDFsSS5hcHBl
- bmQoc1tJbDFsXSkKICAgICAgICBlbGlmIChJbDFsIDwgbGVuKHMpKToKICAgICAgICAgICAgbGwx
- bC5hcHBlbmQoc1tJbDFsXSk7CiAgICAgICAgSWwxbCs9MTsKICAgICAgICBpZiAobGVuKHcpICsg
- bGVuKGkpICsgbGVuKHMpICsgbGVuKGUpID09IGxlbihsbDFsKSArIGxlbihsMWxJKSArIGxlbihl
- KSk6CiAgICAgICAgICAgIGJyZWFrOwoKICAgIGxJMWwgPSAnJy5qb2luKGxsMWwpIy5qb2luKCcn
- KTsKICAgIEkxbEkgPSAnJy5qb2luKGwxbEkpIy5qb2luKCcnKTsKICAgIGxsMUkgPSAwOwogICAg
- bDFsbCA9IFtdOwogICAgZm9yIGxJbGwgaW4gcmFuZ2UoMCxsZW4obGwxbCksMik6CiAgICAgICAg
- I3ByaW50ICdhcnJheSBpJyxsSWxsLGxlbihsbDFsKQogICAgICAgIGxsMTEgPSAtMTsKICAgICAg
- ICBpZiAoIG9yZChJMWxJW2xsMUldKSAlIDIpOgogICAgICAgICAgICBsbDExID0gMTsKICAgICAg
- ICAjcHJpbnQgJ3ZhbCBpcyAnLCBsSTFsW2xJbGw6IGxJbGwrMl0KICAgICAgICBsMWxsLmFwcGVu
- ZChjaHIoICAgIGludChsSTFsW2xJbGw6IGxJbGwrMl0sIDM2KSAtIGxsMTEpKTsKICAgICAgICBs
- bDFJKz0xOwogICAgICAgIGlmIChsbDFJID49IGxlbihsMWxJKSk6CiAgICAgICAgICAgIGxsMUkg
- PSAwOwogICAgcmV0PScnLmpvaW4obDFsbCkKICAgIGlmICdldmFsKGZ1bmN0aW9uKHcsaSxzLGUp
- JyBpbiByZXQ6CiMgICAgICAgIHByaW50ICdTVElMTCBHT2luZycKICAgICAgICByZXQ9cmUuY29t
- cGlsZSgnZXZhbFwoZnVuY3Rpb25cKHcsaSxzLGVcKS4qfVwoKC4qPylcKScpLmZpbmRhbGwocmV0
- KVswXQogICAgICAgIHJldHVybiBnZXRfdW53aXNlKHJldCkKICAgIGVsc2U6CiMgICAgICAgIHBy
- aW50ICdGSU5JU0hFRCcKICAgICAgICByZXR1cm4gcmV0CgpkZWYgZ2V0X3VucGFja2VkKCBwYWdl
- X3ZhbHVlLCByZWdleF9mb3JfdGV4dD0nJywgaXRlcmF0aW9ucz0xLCB0b3RhbF9pdGVyYXRpb249
- MSk6CiAgICB0cnk6CiAgICAgICAgcmVnX2RhdGE9Tm9uZQogICAgICAgIGlmIHBhZ2VfdmFsdWUu
- c3RhcnRzd2l0aCgiaHR0cCIpOgogICAgICAgICAgICBwYWdlX3ZhbHVlPSBnZXRVcmwocGFnZV92
- YWx1ZSkKIyAgICAgICAgcHJpbnQgJ3BhZ2VfdmFsdWUnLHBhZ2VfdmFsdWUKICAgICAgICBpZiBy
- ZWdleF9mb3JfdGV4dCBhbmQgbGVuKHJlZ2V4X2Zvcl90ZXh0KT4wOgogICAgICAgICAgICB0cnk6
- CiAgICAgICAgICAgICAgICBwYWdlX3ZhbHVlPXJlLmNvbXBpbGUocmVnZXhfZm9yX3RleHQpLmZp
- bmRhbGwocGFnZV92YWx1ZSlbMF0gI2dldCB0aGUganMgdmFyaWFibGUKICAgICAgICAgICAgZXhj
- ZXB0OiByZXR1cm4gJ05PVFBBQ0tFRCcKCiAgICAgICAgcGFnZV92YWx1ZT11bnBhY2socGFnZV92
- YWx1ZSxpdGVyYXRpb25zLHRvdGFsX2l0ZXJhdGlvbikKICAgIGV4Y2VwdDoKICAgICAgICBwYWdl
- X3ZhbHVlPSdVTlBBQ0tFREZBSUxFRCcKICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9
- c3lzLnN0ZG91dCkKIyAgICBwcmludCAndW5wYWNrZWQnLHBhZ2VfdmFsdWUKICAgIGlmICdzYXYx
- bGl2ZS50dicgaW4gcGFnZV92YWx1ZToKICAgICAgICBwYWdlX3ZhbHVlPXBhZ2VfdmFsdWUucmVw
- bGFjZSgnc2F2MWxpdmUudHYnLCdzYXdsaXZlLnR2JykgI3F1aWNrIGZpeCBzb21lIGJ1ZyBzb21l
- d2hlcmUKIyAgICAgICAgcHJpbnQgJ3NhdjEgdW5wYWNrZWQnLHBhZ2VfdmFsdWUKICAgIHJldHVy
- biBwYWdlX3ZhbHVlCgpkZWYgdW5wYWNrKHNKYXZhc2NyaXB0LGl0ZXJhdGlvbj0xLCB0b3RhbGl0
- ZXJhdGlvbnM9MiAgKToKIyAgICBwcmludCAnaXRlcmF0aW9uJyxpdGVyYXRpb24KICAgIGlmIHNK
- YXZhc2NyaXB0LnN0YXJ0c3dpdGgoJ3ZhciBfMHhjYjhhPScpOgogICAgICAgIGFTcGxpdD1zSmF2
- YXNjcmlwdC5zcGxpdCgndmFyIF8weGNiOGE9JykKICAgICAgICBzcz0ibXlhcnJheT0iK2FTcGxp
- dFsxXS5zcGxpdCgiZXZhbCgiKVswXQogICAgICAgIGV4ZWMoc3MpCiAgICAgICAgYTE9NjIKICAg
- ICAgICBjMT1pbnQoYVNwbGl0WzFdLnNwbGl0KCIsNjIsIilbMV0uc3BsaXQoJywnKVswXSkKICAg
- ICAgICBwMT1teWFycmF5WzBdCiAgICAgICAgazE9bXlhcnJheVszXQogICAgICAgIHdpdGggb3Bl
- bigndGVtcCBmaWxlJytzdHIoaXRlcmF0aW9uKSsnLmpzJywgIndiIikgYXMgZmlsZXdyaXRlcjoK
- ICAgICAgICAgICAgZmlsZXdyaXRlci53cml0ZShzdHIoazEpKQogICAgICAgICNhYT0xLzAKICAg
- IGVsc2U6CgogICAgICAgIGlmICJybiBwfSgnIiBpbiBzSmF2YXNjcmlwdDoKICAgICAgICAgICAg
- YVNwbGl0ID0gc0phdmFzY3JpcHQuc3BsaXQoInJuIHB9KCciKQogICAgICAgIGVsc2U6CiAgICAg
- ICAgICAgIGFTcGxpdCA9IHNKYXZhc2NyaXB0LnNwbGl0KCJybiBBfSgnIikKIyAgICAgICAgcHJp
- bnQgYVNwbGl0CgogICAgICAgIHAxLGExLGMxLGsxPSgnJywnMCcsJzAnLCcnKQoKICAgICAgICBz
- cz0icDEsYTEsYzEsazE9KCciK2FTcGxpdFsxXS5zcGxpdCgiLnNwbGkiKVswXSsnKScKICAgICAg
- ICBleGVjKHNzKQogICAgazE9azEuc3BsaXQoJ3wnKQogICAgYVNwbGl0ID0gYVNwbGl0WzFdLnNw
- bGl0KCIpKSciKQojICAgIHByaW50ICcgcCBhcnJheSBpcyAnLGxlbihhU3BsaXQpCiMgICBwcmlu
- dCBsZW4oYVNwbGl0ICkKCiAgICAjcD1zdHIoYVNwbGl0WzBdKycpKScpIy5yZXBsYWNlKCJcXCIs
- IiIpIy5yZXBsYWNlKCdcXFxcJywnXFwnKQoKICAgICNwcmludCBhU3BsaXRbMV0KICAgICNhU3Bs
- aXQgPSBhU3BsaXRbMV0uc3BsaXQoIiwiKQogICAgI3ByaW50IGFTcGxpdFswXQogICAgI2EgPSBp
- bnQoYVNwbGl0WzFdKQogICAgI2MgPSBpbnQoYVNwbGl0WzJdKQogICAgI2sgPSBhU3BsaXRbM10u
- c3BsaXQoIi4iKVswXS5yZXBsYWNlKCInIiwgJycpLnNwbGl0KCd8JykKICAgICNhPWludChhKQog
- ICAgI2M9aW50KGMpCgogICAgI3A9cC5yZXBsYWNlKCdcXCcsICcnKQojICAgIHByaW50ICdwIHZh
- bCBpcyAnLHBbMDoxMDBdLCcuLi4uLi4uLi4uLi4nLHBbLTEwMDpdLGxlbihwKQojICAgIHByaW50
- ICdwMSB2YWwgaXMgJyxwMVswOjEwMF0sJy4uLi4uLi4uLi4uLicscDFbLTEwMDpdLGxlbihwMSkK
- CiAgICAjcHJpbnQgYSxhMQogICAgI3ByaW50IGMsYTEKICAgICNwcmludCAnayB2YWwgaXMgJyxr
- Wy0xMDpdLGxlbihrKQojICAgIHByaW50ICdrMSB2YWwgaXMgJyxrMVstMTA6XSxsZW4oazEpCiAg
- ICBlID0gJycKICAgIGQgPSAnJyMzMjgyMwoKICAgICNzVW5wYWNrZWQgPSBzdHIoX191bnBhY2so
- cCwgYSwgYywgaywgZSwgZCkpCiAgICBzVW5wYWNrZWQxID0gc3RyKF9fdW5wYWNrKHAxLCBhMSwg
- YzEsIGsxLCBlLCBkLGl0ZXJhdGlvbikpCgogICAgI3ByaW50IHNVbnBhY2tlZFs6MjAwXSsnLi4u
- Licrc1VucGFja2VkWy0xMDA6XSwgbGVuKHNVbnBhY2tlZCkKIyAgICBwcmludCBzVW5wYWNrZWQx
- WzoyMDBdKycuLi4uJytzVW5wYWNrZWQxWy0xMDA6XSwgbGVuKHNVbnBhY2tlZDEpCgogICAgI2V4
- ZWMoJ3NVbnBhY2tlZDE9Iicrc1VucGFja2VkMSsnIicpCiAgICBpZiBpdGVyYXRpb24+PXRvdGFs
- aXRlcmF0aW9uczoKIyAgICAgICAgcHJpbnQgJ2ZpbmFsIHJlcycsc1VucGFja2VkMVs6MjAwXSsn
- Li4uLicrc1VucGFja2VkMVstMTAwOl0sIGxlbihzVW5wYWNrZWQxKQogICAgICAgIHJldHVybiBz
- VW5wYWNrZWQxIy5yZXBsYWNlKCdcXFxcJywgJ1xcJykKICAgIGVsc2U6CiMgICAgICAgIHByaW50
- ICdmaW5hbCByZXMgZm9yIHRoaXMgaXRlcmF0aW9uIGlzJyxpdGVyYXRpb24KICAgICAgICByZXR1
- cm4gdW5wYWNrKHNVbnBhY2tlZDEsaXRlcmF0aW9uKzEpIy5yZXBsYWNlKCdcXCcsICcnKSxpdGVy
- YXRpb24pIy5yZXBsYWNlKCdcXCcsICcnKTsjdW5wYWNrKHNVbnBhY2tlZC5yZXBsYWNlKCdcXCcs
- ICcnKSkKCmRlZiBfX3VucGFjayhwLCBhLCBjLCBrLCBlLCBkLCBpdGVyYXRpb24sdj0xKToKCiAg
- ICAjd2l0aCBvcGVuKCdiZWZvcmUgZmlsZScrc3RyKGl0ZXJhdGlvbikrJy5qcycsICJ3YiIpIGFz
- IGZpbGV3cml0ZXI6CiAgICAjICAgIGZpbGV3cml0ZXIud3JpdGUoc3RyKHApKQogICAgd2hpbGUg
- KGMgPj0gMSk6CiAgICAgICAgYyA9IGMgLTEKICAgICAgICBpZiAoa1tjXSk6CiAgICAgICAgICAg
- IGFhPXN0cihfX2l0b2FOZXcoYywgYSkpCiAgICAgICAgICAgIGlmIHY9PTE6CiAgICAgICAgICAg
- ICAgICBwPXJlLnN1YignXFxiJyArIGFhICsnXFxiJywga1tjXSwgcCkjIFRISVMgSVMgQmxvb2R5
- IHNsb3chCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBwPWZpbmRBbmRSZXBsYWNl
- V29yZChwLGFhLGtbY10pCgogICAgICAgICAgICAjcD1maW5kQW5kUmVwbGFjZVdvcmQocCxhYSxr
- W2NdKQoKCiAgICAjd2l0aCBvcGVuKCdhZnRlciBmaWxlJytzdHIoaXRlcmF0aW9uKSsnLmpzJywg
- IndiIikgYXMgZmlsZXdyaXRlcjoKICAgICMgICAgZmlsZXdyaXRlci53cml0ZShzdHIocCkpCiAg
- ICByZXR1cm4gcAoKIwojZnVuY3Rpb24gZXF1YWxhdmVudCB0byByZS5zdWIoJ1xcYicgKyBhYSAr
- J1xcYicsIGtbY10sIHApCmRlZiBmaW5kQW5kUmVwbGFjZVdvcmQoc291cmNlX3N0ciwgd29yZF90
- b19maW5kLHJlcGxhY2Vfd2l0aCk6CiAgICBzcGxpdHM9Tm9uZQogICAgc3BsaXRzPXNvdXJjZV9z
- dHIuc3BsaXQod29yZF90b19maW5kKQogICAgaWYgbGVuKHNwbGl0cyk+MToKICAgICAgICBuZXdf
- c3RyaW5nPVtdCiAgICAgICAgY3VycmVudF9pbmRleD0wCiAgICAgICAgZm9yIGN1cnJlbnRfc3Bs
- aXQgaW4gc3BsaXRzOgogICAgICAgICAgICAjcHJpbnQgJ2hlcmUnLGkKICAgICAgICAgICAgbmV3
- X3N0cmluZy5hcHBlbmQoY3VycmVudF9zcGxpdCkKICAgICAgICAgICAgdmFsPXdvcmRfdG9fZmlu
- ZCNieSBkZWZhdWx0IGFzc3VtZSBpdCB3YXMgd3JvbmcgdG8gc3BsaXQKCiAgICAgICAgICAgICNp
- ZiBpdHMgZmlyc3Qgb25lIGFuZCBpdGVtIGlzIGJsYW5rIHRoZW4gY2hlY2sgbmV4dCBpdGVtIGlz
- IHZhbGlkIG9yIG5vdAogICAgICAgICAgICBpZiBjdXJyZW50X2luZGV4PT1sZW4oc3BsaXRzKS0x
- OgogICAgICAgICAgICAgICAgdmFsPScnICMgbGFzdCBvbmUgbm90aGluZyB0byBhcHBlbmQgbm9y
- bWFsbHkKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIGlmIGxlbihjdXJyZW50X3Nw
- bGl0KT09MDogI2lmIGJsYW5rIGNoZWNrIG5leHQgb25lIHdpdGggY3VycmVudCBzcGxpdCB2YWx1
- ZQogICAgICAgICAgICAgICAgICAgIGlmICggbGVuKHNwbGl0c1tjdXJyZW50X2luZGV4KzFdKT09
- MCBhbmQgd29yZF90b19maW5kWzBdLmxvd2VyKCkgbm90IGluICdhYmNkZWZnaGlqa2xtbm9wcXJz
- dHV2d3h5ejEyMzQ1Njc4OTBfJykgb3IgKGxlbihzcGxpdHNbY3VycmVudF9pbmRleCsxXSk+MCAg
- YW5kIHNwbGl0c1tjdXJyZW50X2luZGV4KzFdWzBdLmxvd2VyKCkgbm90IGluICdhYmNkZWZnaGlq
- a2xtbm9wcXJzdHV2d3h5ejEyMzQ1Njc4OTBfJyk6IyBmaXJzdCBqdXN0IGp1c3QgY2hlY2sgbmV4
- dAogICAgICAgICAgICAgICAgICAgICAgICB2YWw9cmVwbGFjZV93aXRoCiAgICAgICAgICAgICAg
- ICAjbm90IGJsYW5rLCB0aGVuIGNoZWNrIGN1cnJlbnQgZW5kdmFsdWUgYW5kIG5leHQgZmlyc3Qg
- dmFsdWUKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgaWYgKHNwbGl0
- c1tjdXJyZW50X2luZGV4XVstMV0ubG93ZXIoKSBub3QgaW4gJ2FiY2RlZmdoaWprbG1ub3BxcnN0
- dXZ3eHl6MTIzNDU2Nzg5MF8nKSBhbmQgKCggbGVuKHNwbGl0c1tjdXJyZW50X2luZGV4KzFdKT09
- MCBhbmQgd29yZF90b19maW5kWzBdLmxvd2VyKCkgbm90IGluICdhYmNkZWZnaGlqa2xtbm9wcXJz
- dHV2d3h5ejEyMzQ1Njc4OTBfJykgb3IgKGxlbihzcGxpdHNbY3VycmVudF9pbmRleCsxXSk+MCAg
- YW5kIHNwbGl0c1tjdXJyZW50X2luZGV4KzFdWzBdLmxvd2VyKCkgbm90IGluICdhYmNkZWZnaGlq
- a2xtbm9wcXJzdHV2d3h5ejEyMzQ1Njc4OTBfJykpOiMgZmlyc3QganVzdCBqdXN0IGNoZWNrIG5l
- eHQKICAgICAgICAgICAgICAgICAgICAgICAgdmFsPXJlcGxhY2Vfd2l0aAoKICAgICAgICAgICAg
- bmV3X3N0cmluZy5hcHBlbmQodmFsKQogICAgICAgICAgICBjdXJyZW50X2luZGV4Kz0xCiAgICAg
- ICAgI2FhYWE9MS8wCiAgICAgICAgc291cmNlX3N0cj0nJy5qb2luKG5ld19zdHJpbmcpCiAgICBy
- ZXR1cm4gc291cmNlX3N0cgoKZGVmIF9faXRvYShudW0sIHJhZGl4KToKIyAgICBwcmludCAnbnVt
- IHJlZCcsbnVtLCByYWRpeAogICAgcmVzdWx0ID0gIiIKICAgIGlmIG51bT09MDogcmV0dXJuICcw
- JwogICAgd2hpbGUgbnVtID4gMDoKICAgICAgICByZXN1bHQgPSAiMDEyMzQ1Njc4OWFiY2RlZmdo
- aWprbG1ub3BxcnN0dXZ3eHl6IltudW0gJSByYWRpeF0gKyByZXN1bHQKICAgICAgICBudW0gLz0g
- cmFkaXgKICAgIHJldHVybiByZXN1bHQKCmRlZiBfX2l0b2FOZXcoY2MsIGEpOgogICAgYWE9IiIg
- aWYgY2MgPCBhIGVsc2UgX19pdG9hTmV3KGludChjYyAvIGEpLGEpCiAgICBjYyA9IChjYyAlIGEp
- CiAgICBiYj1jaHIoY2MgKyAyOSkgaWYgY2M+IDM1IGVsc2Ugc3RyKF9faXRvYShjYywzNikpCiAg
- ICByZXR1cm4gYWErYmIKCgpkZWYgZ2V0Q29va2llc1N0cmluZyhjb29raWVKYXIpOgogICAgdHJ5
- OgogICAgICAgIGNvb2tpZVN0cmluZz0iIgogICAgICAgIGZvciBpbmRleCwgY29va2llIGluIGVu
- dW1lcmF0ZShjb29raWVKYXIpOgogICAgICAgICAgICBjb29raWVTdHJpbmcrPWNvb2tpZS5uYW1l
- ICsgIj0iICsgY29va2llLnZhbHVlICsiOyIKICAgIGV4Y2VwdDogcGFzcwogICAgI3ByaW50ICdj
- b29raWVTdHJpbmcnLGNvb2tpZVN0cmluZwogICAgcmV0dXJuIGNvb2tpZVN0cmluZwoKCmRlZiBz
- YXZlQ29va2llSmFyKGNvb2tpZUphcixDT09LSUVGSUxFKToKICAgIHRyeToKICAgICAgICBjb21w
- bGV0ZV9wYXRoPW9zLnBhdGguam9pbihwcm9maWxlLENPT0tJRUZJTEUpCiAgICAgICAgY29va2ll
- SmFyLnNhdmUoY29tcGxldGVfcGF0aCxpZ25vcmVfZGlzY2FyZD1UcnVlKQogICAgZXhjZXB0OiBw
- YXNzCgpkZWYgZ2V0Q29va2llSmFyKENPT0tJRUZJTEUpOgoKICAgIGNvb2tpZUphcj1Ob25lCiAg
- ICBpZiBDT09LSUVGSUxFOgogICAgICAgIHRyeToKICAgICAgICAgICAgY29tcGxldGVfcGF0aD1v
- cy5wYXRoLmpvaW4ocHJvZmlsZSxDT09LSUVGSUxFKQogICAgICAgICAgICBjb29raWVKYXIgPSBj
- b29raWVsaWIuTFdQQ29va2llSmFyKCkKICAgICAgICAgICAgY29va2llSmFyLmxvYWQoY29tcGxl
- dGVfcGF0aCxpZ25vcmVfZGlzY2FyZD1UcnVlKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAg
- Y29va2llSmFyPU5vbmUKCiAgICBpZiBub3QgY29va2llSmFyOgogICAgICAgIGNvb2tpZUphciA9
- IGNvb2tpZWxpYi5MV1BDb29raWVKYXIoKQoKICAgIHJldHVybiBjb29raWVKYXIKCmRlZiBkb0V2
- YWwoZnVuX2NhbGwscGFnZV9kYXRhLENvb2tpZV9KYXIsbSk6CiAgICByZXRfdmFsPScnCiAgICAj
- cHJpbnQgZnVuX2NhbGwKICAgIGlmIGZ1bmN0aW9uc19kaXIgbm90IGluIHN5cy5wYXRoOgogICAg
- ICAgIHN5cy5wYXRoLmFwcGVuZChmdW5jdGlvbnNfZGlyKQoKIyAgICBwcmludCBmdW5fY2FsbAog
- ICAgdHJ5OgogICAgICAgIHB5X2ZpbGU9J2ltcG9ydCAnK2Z1bl9jYWxsLnNwbGl0KCcuJylbMF0K
- IyAgICAgICAgcHJpbnQgcHlfZmlsZSxzeXMucGF0aAogICAgICAgIGV4ZWMoIHB5X2ZpbGUpCiMg
- ICAgICAgIHByaW50ICdkb25lJwogICAgZXhjZXB0OgogICAgICAgICNwcmludCAnZXJyb3IgaW4g
- aW1wb3J0JwogICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3Rkb3V0KQojICAg
- IHByaW50ICdyZXRfdmFsPScrZnVuX2NhbGwKICAgIGV4ZWMgKCdyZXRfdmFsPScrZnVuX2NhbGwp
- CiMgICAgcHJpbnQgcmV0X3ZhbAogICAgI2V4ZWMoJ3JldF92YWw9MSsxJykKICAgIHRyeToKICAg
- ICAgICByZXR1cm4gc3RyKHJldF92YWwpCiAgICBleGNlcHQ6IHJldHVybiByZXRfdmFsCgpkZWYg
- ZG9FdmFsRnVuY3Rpb24oZnVuX2NhbGwscGFnZV9kYXRhLENvb2tpZV9KYXIsbSk6CiMgICAgcHJp
- bnQgJ2RvRXZhbEZ1bmN0aW9uJwogICAgdHJ5OgogICAgICAgIGdsb2JhbCBnTFNQcm9EeW5hbWlj
- Q29kZU51bWJlcgogICAgICAgIGdMU1Byb0R5bmFtaWNDb2RlTnVtYmVyPWdMU1Byb0R5bmFtaWND
- b2RlTnVtYmVyKzEKICAgICAgICByZXRfdmFsPScnCiAgICAgICAgcHJpbnQgJ2Rvb29vZG9vJwog
- ICAgICAgIGlmIGZ1bmN0aW9uc19kaXIgbm90IGluIHN5cy5wYXRoOgogICAgICAgICAgICBzeXMu
- cGF0aC5hcHBlbmQoZnVuY3Rpb25zX2RpcikKCiAgICAgICAgZmlsZW5hbWU9J0xTUHJvZHluYW1p
- Y0NvZGUlcy5weSclc3RyKGdMU1Byb0R5bmFtaWNDb2RlTnVtYmVyKQogICAgICAgIGZpbGVuYW1l
- d2l0aHBhdGg9b3MucGF0aC5qb2luKGZ1bmN0aW9uc19kaXIsZmlsZW5hbWUpCiAgICAgICAgZj1v
- cGVuKGZpbGVuYW1ld2l0aHBhdGgsIndiIikKICAgICAgICBmLndyaXRlKCIjIC0qLSBjb2Rpbmc6
- IHV0Zi04IC0qLVxuIikKICAgICAgICBmLndyaXRlKGZ1bl9jYWxsLmVuY29kZSgidXRmLTgiKSk7
- CiAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgcHJpbnQgJ2JlZm9yZSBkbycKICAgICAgICBMU1By
- b2R5bmFtaWNDb2RlID0gaW1wb3J0X2J5X3N0cmluZyhmaWxlbmFtZS5zcGxpdCgnLicpWzBdLGZp
- bGVuYW1ld2l0aHBhdGgpCiAgICAgICAgcHJpbnQgJ2FmdGVyJwogICAgICAgICAKICAgICAgICBy
- ZXRfdmFsPUxTUHJvZHluYW1pY0NvZGUuR2V0TFNQcm9EYXRhKHBhZ2VfZGF0YSxDb29raWVfSmFy
- LG0pCiAgICAgICAgdHJ5OgogICAgICAgICAgICByZXR1cm4gc3RyKHJldF92YWwpCiAgICAgICAg
- ZXhjZXB0OiByZXR1cm4gcmV0X3ZhbAogICAgZXhjZXB0OiB0cmFjZWJhY2sucHJpbnRfZXhjKCkK
- ICAgIHJldHVybiAiIgoKZGVmIGltcG9ydF9ieV9zdHJpbmcoZnVsbF9uYW1lLGZpbGVuYW1ld2l0
- aHBhdGgpOgogICAgdHJ5OgogICAgICAgIAogICAgICAgIGltcG9ydCBpbXBvcnRsaWIKICAgICAg
- ICByZXR1cm4gaW1wb3J0bGliLmltcG9ydF9tb2R1bGUoZnVsbF9uYW1lLCBwYWNrYWdlPU5vbmUp
- CiAgICBleGNlcHQ6CiAgICAgICAgaW1wb3J0IGltcAogICAgICAgIHJldHVybiBpbXAubG9hZF9z
- b3VyY2UoZnVsbF9uYW1lLGZpbGVuYW1ld2l0aHBhdGgpCgoKZGVmIGdldEdvb2dsZVJlY2FwdGNo
- YVJlc3BvbnNlKGNhcHRjaGFrZXksIGNqLHR5cGU9MSk6ICMxIGZvciBnZXQsIDIgZm9yIHBvc3Qs
- IDMgZm9yIHJhd3Bvc3QKIyAgICAjaGVhZGVycz1bKCdVc2VyLUFnZW50JywnTW96aWxsYS81LjAg
- KFdpbmRvd3MgTlQgNi4xOyBydjoxNC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzE0LjAuMScp
- XQojICAgIGh0bWxfdGV4dD1nZXRVcmwodXJsLG5vcmVkaXI9VHJ1ZSwgY29va2llSmFyPWNqLGhl
- YWRlcnM9aGVhZGVycykKICMgICBwcmludCAnaHRtbF90ZXh0JyxodG1sX3RleHQKICAgIHJlY2Fw
- Q2hhbGxlbmdlPSIiCiAgICBzb2x1dGlvbj0iIgojICAgIGNhcF9yZWc9InJlY2FwLio/XD9rPSgu
- Kj8pXCIiICAgIAojICAgIG1hdGNoID1yZS5maW5kYWxsKGNhcF9yZWcsIGh0bWxfdGV4dCkKICAg
- IAogICAgICAgIAojICAgIHByaW50ICdtYXRjaCcsbWF0Y2gKICAgIGNhcHRjaGE9RmFsc2UKICAg
- IGNhcHRjaGFfcmVsb2FkX3Jlc3BvbnNlX2NoYWxsPU5vbmUKICAgIHNvbHV0aW9uPU5vbmUKICAg
- IGlmIGxlbihjYXB0Y2hha2V5KT4wOiAjbmV3IHNoaW55IGNhcHRjaGEhCiAgICAgICAgY2FwdGNo
- YV91cmw9Y2FwdGNoYWtleQogICAgICAgIGlmIG5vdCBjYXB0Y2hhX3VybC5zdGFydHN3aXRoKCdo
- dHRwJyk6CiAgICAgICAgICAgIGNhcHRjaGFfdXJsPSdodHRwOi8vd3d3Lmdvb2dsZS5jb20vcmVj
- YXB0Y2hhL2FwaS9jaGFsbGVuZ2U/az0nK2NhcHRjaGFfdXJsKycmYWpheD0xJwojICAgICAgICBw
- cmludCAnY2FwdGNoYV91cmwnLGNhcHRjaGFfdXJsCiAgICAgICAgY2FwdGNoYT1UcnVlCgogICAg
- ICAgIGNhcF9jaGFsbF9yZWc9J2NoYWxsZW5nZS4qP1wnKC4qPylcJycKICAgICAgICBjYXBfaW1h
- Z2VfcmVnPSdcJyguKj8pXCcnCiAgICAgICAgY2FwdGNoYV9zY3JpcHQ9Z2V0VXJsKGNhcHRjaGFf
- dXJsLGNvb2tpZUphcj1jaikKICAgICAgICByZWNhcENoYWxsZW5nZT1yZS5maW5kYWxsKGNhcF9j
- aGFsbF9yZWcsIGNhcHRjaGFfc2NyaXB0KVswXQogICAgICAgIGNhcHRjaGFfcmVsb2FkPSdodHRw
- Oi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS9yZWxvYWQ/Yz0nOwogICAgICAgIGNhcHRj
- aGFfaz1jYXB0Y2hhX3VybC5zcGxpdCgnaz0nKVsxXQogICAgICAgIGNhcHRjaGFfcmVsb2FkKz1y
- ZWNhcENoYWxsZW5nZSsnJms9JytjYXB0Y2hhX2srJyZyZWFzb249aSZ0eXBlPWltYWdlJmxhbmc9
- ZW4nCiAgICAgICAgY2FwdGNoYV9yZWxvYWRfanM9Z2V0VXJsKGNhcHRjaGFfcmVsb2FkLGNvb2tp
- ZUphcj1jaikKICAgICAgICBjYXB0Y2hhX3JlbG9hZF9yZXNwb25zZV9jaGFsbD1yZS5maW5kYWxs
- KGNhcF9pbWFnZV9yZWcsIGNhcHRjaGFfcmVsb2FkX2pzKVswXQogICAgICAgIGNhcHRjaGFfaW1h
- Z2VfdXJsPSdodHRwOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS9pbWFnZT9jPScrY2Fw
- dGNoYV9yZWxvYWRfcmVzcG9uc2VfY2hhbGwKICAgICAgICBpZiBub3QgY2FwdGNoYV9pbWFnZV91
- cmwuc3RhcnRzd2l0aCgiaHR0cCIpOgogICAgICAgICAgICBjYXB0Y2hhX2ltYWdlX3VybD0naHR0
- cDovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkvJytjYXB0Y2hhX2ltYWdlX3VybAogICAg
- ICAgIGltcG9ydCByYW5kb20KICAgICAgICBuPXJhbmRvbS5yYW5kcmFuZ2UoMTAwLDEwMDAsNSkK
- ICAgICAgICBsb2NhbF9jYXB0Y2hhID0gb3MucGF0aC5qb2luKHByb2ZpbGUsc3RyKG4pICsiY2Fw
- dGNoYS5pbWciICkKICAgICAgICBsb2NhbEZpbGUgPSBvcGVuKGxvY2FsX2NhcHRjaGEsICJ3YiIp
- CiAgICAgICAgbG9jYWxGaWxlLndyaXRlKGdldFVybChjYXB0Y2hhX2ltYWdlX3VybCxjb29raWVK
- YXI9Y2opKQogICAgICAgIGxvY2FsRmlsZS5jbG9zZSgpCiAgICAgICAgc29sdmVyID0gSW5wdXRX
- aW5kb3coY2FwdGNoYT1sb2NhbF9jYXB0Y2hhKQogICAgICAgIHNvbHV0aW9uID0gc29sdmVyLmdl
- dCgpCiAgICAgICAgb3MucmVtb3ZlKGxvY2FsX2NhcHRjaGEpCgogICAgaWYgY2FwdGNoYV9yZWxv
- YWRfcmVzcG9uc2VfY2hhbGw6CiAgICAgICAgaWYgdHlwZT09MToKICAgICAgICAgICAgcmV0dXJu
- ICdyZWNhcHRjaGFfY2hhbGxlbmdlX2ZpZWxkPScrdXJsbGliLnF1b3RlX3BsdXMoY2FwdGNoYV9y
- ZWxvYWRfcmVzcG9uc2VfY2hhbGwpKycmcmVjYXB0Y2hhX3Jlc3BvbnNlX2ZpZWxkPScrdXJsbGli
- LnF1b3RlX3BsdXMoc29sdXRpb24pCiAgICAgICAgZWxpZiB0eXBlPT0yOgogICAgICAgICAgICBy
- ZXR1cm4gJ3JlY2FwdGNoYV9jaGFsbGVuZ2VfZmllbGQ6JytjYXB0Y2hhX3JlbG9hZF9yZXNwb25z
- ZV9jaGFsbCsnLHJlY2FwdGNoYV9yZXNwb25zZV9maWVsZDonK3NvbHV0aW9uCiAgICAgICAgZWxz
- ZToKICAgICAgICAgICAgcmV0dXJuICdyZWNhcHRjaGFfY2hhbGxlbmdlX2ZpZWxkPScrdXJsbGli
- LnF1b3RlX3BsdXMoY2FwdGNoYV9yZWxvYWRfcmVzcG9uc2VfY2hhbGwpKycmcmVjYXB0Y2hhX3Jl
- c3BvbnNlX2ZpZWxkPScrdXJsbGliLnF1b3RlX3BsdXMoc29sdXRpb24pCiAgICBlbHNlOgogICAg
- ICAgIHJldHVybiAnJwogICAgICAgIAoKZGVmIGdldFVybCh1cmwsIGNvb2tpZUphcj1Ob25lLHBv
- c3Q9Tm9uZSwgdGltZW91dD0yMCwgaGVhZGVycz1Ob25lLCBub3JlZGlyPUZhbHNlKToKCgogICAg
- Y29va2llX2hhbmRsZXIgPSB1cmxsaWIyLkhUVFBDb29raWVQcm9jZXNzb3IoY29va2llSmFyKQoK
- ICAgIGlmIG5vcmVkaXI6CiAgICAgICAgb3BlbmVyID0gdXJsbGliMi5idWlsZF9vcGVuZXIoTm9S
- ZWRpcmVjdGlvbixjb29raWVfaGFuZGxlciwgdXJsbGliMi5IVFRQQmFzaWNBdXRoSGFuZGxlcigp
- LCB1cmxsaWIyLkhUVFBIYW5kbGVyKCkpCiAgICBlbHNlOgogICAgICAgIG9wZW5lciA9IHVybGxp
- YjIuYnVpbGRfb3BlbmVyKGNvb2tpZV9oYW5kbGVyLCB1cmxsaWIyLkhUVFBCYXNpY0F1dGhIYW5k
- bGVyKCksIHVybGxpYjIuSFRUUEhhbmRsZXIoKSkKICAgICNvcGVuZXIgPSB1cmxsaWIyLmluc3Rh
- bGxfb3BlbmVyKG9wZW5lcikKICAgIHJlcSA9IHVybGxpYjIuUmVxdWVzdCh1cmwpCiAgICByZXEu
- YWRkX2hlYWRlcignVXNlci1BZ2VudCcsJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgV09X
- NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8zMy4wLjE3
- NTAuMTU0IFNhZmFyaS81MzcuMzYnKQogICAgaWYgaGVhZGVyczoKICAgICAgICBmb3IgaCxodiBp
- biBoZWFkZXJzOgogICAgICAgICAgICByZXEuYWRkX2hlYWRlcihoLGh2KQoKICAgIHJlc3BvbnNl
- ID0gb3BlbmVyLm9wZW4ocmVxLHBvc3QsdGltZW91dD10aW1lb3V0KQogICAgbGluaz1yZXNwb25z
- ZS5yZWFkKCkKICAgIHJlc3BvbnNlLmNsb3NlKCkKICAgIHJldHVybiBsaW5rOwoKZGVmIGdldF9k
- ZWNvZGUoc3RyLHJlZz1Ob25lKToKICAgIGlmIHJlZzoKICAgICAgICBzdHI9cmUuZmluZGFsbChy
- ZWcsIHN0cilbMF0KICAgIHMxID0gdXJsbGliLnVucXVvdGUoc3RyWzA6IGxlbihzdHIpLTFdKTsK
- ICAgIHQgPSAnJzsKICAgIGZvciBpIGluIHJhbmdlKCBsZW4oczEpKToKICAgICAgICB0ICs9IGNo
- cihvcmQoczFbaV0pIC0gczFbbGVuKHMxKS0xXSk7CiAgICB0PXVybGxpYi51bnF1b3RlKHQpCiMg
- ICAgcHJpbnQgdAogICAgcmV0dXJuIHQKCmRlZiBqYXZhc2NyaXB0VW5Fc2NhcGUoc3RyKToKICAg
- IGpzPXJlLmZpbmRhbGwoJ3VuZXNjYXBlXChcJyguKj8pXCcnLHN0cikKIyAgICBwcmludCAnanMn
- LGpzCiAgICBpZiAobm90IGpzPT1Ob25lKSBhbmQgbGVuKGpzKT4wOgogICAgICAgIGZvciBqIGlu
- IGpzOgogICAgICAgICAgICAjcHJpbnQgdXJsbGliLnVucXVvdGUoaikKICAgICAgICAgICAgc3Ry
- PXN0ci5yZXBsYWNlKGogLHVybGxpYi51bnF1b3RlKGopKQogICAgcmV0dXJuIHN0cgoKaWlkPTAK
- ZGVmIGFza0NhcHRjaGEobSxodG1sX3BhZ2UsIGNvb2tpZUphcik6CiAgICBnbG9iYWwgaWlkCiAg
- ICBpaWQrPTEKICAgIGV4cHJlPSBtWydleHByZXMnXQogICAgcGFnZV91cmwgPSBtWydwYWdlJ10K
- ICAgIGNhcHRjaGFfcmVnZXg9cmUuY29tcGlsZSgnXCRMaXZlU3RyZWFtQ2FwdGNoYVxbKFteXF1d
- KilcXScpLmZpbmRhbGwoZXhwcmUpWzBdCgogICAgY2FwdGNoYV91cmw9cmUuY29tcGlsZShjYXB0
- Y2hhX3JlZ2V4KS5maW5kYWxsKGh0bWxfcGFnZSlbMF0KIyAgICBwcmludCBleHByZSxjYXB0Y2hh
- X3JlZ2V4LGNhcHRjaGFfdXJsCiAgICBpZiBub3QgY2FwdGNoYV91cmwuc3RhcnRzd2l0aCgiaHR0
- cCIpOgogICAgICAgIHBhZ2VfPSdodHRwOi8vJysiIi5qb2luKHBhZ2VfdXJsLnNwbGl0KCcvJylb
- MjozXSkKICAgICAgICBpZiBjYXB0Y2hhX3VybC5zdGFydHN3aXRoKCIvIik6CiAgICAgICAgICAg
- IGNhcHRjaGFfdXJsPXBhZ2VfK2NhcHRjaGFfdXJsCiAgICAgICAgZWxzZToKICAgICAgICAgICAg
- Y2FwdGNoYV91cmw9cGFnZV8rJy8nK2NhcHRjaGFfdXJsCgogICAgbG9jYWxfY2FwdGNoYSA9IG9z
- LnBhdGguam9pbihwcm9maWxlLCBzdHIoaWlkKSsiY2FwdGNoYS5qcGciICkKICAgIGxvY2FsRmls
- ZSA9IG9wZW4obG9jYWxfY2FwdGNoYSwgIndiIikKIyAgICBwcmludCAnIGMgY2FwdXJsJyxjYXB0
- Y2hhX3VybAogICAgcmVxID0gdXJsbGliMi5SZXF1ZXN0KGNhcHRjaGFfdXJsKQogICAgcmVxLmFk
- ZF9oZWFkZXIoJ1VzZXItQWdlbnQnLCAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBydjox
- NC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzE0LjAuMScpCiAgICBpZiAncmVmZXJlcicgaW4g
- bToKICAgICAgICByZXEuYWRkX2hlYWRlcignUmVmZXJlcicsIG1bJ3JlZmVyZXInXSkKICAgIGlm
- ICdhZ2VudCcgaW4gbToKICAgICAgICByZXEuYWRkX2hlYWRlcignVXNlci1hZ2VudCcsIG1bJ2Fn
- ZW50J10pCiAgICBpZiAnc2V0Y29va2llJyBpbiBtOgojICAgICAgICBwcmludCAnYWRkaW5nIGNv
- b2tpZScsbVsnc2V0Y29va2llJ10KICAgICAgICByZXEuYWRkX2hlYWRlcignQ29va2llJywgbVsn
- c2V0Y29va2llJ10pCgogICAgI2Nvb2tpZV9oYW5kbGVyID0gdXJsbGliMi5IVFRQQ29va2llUHJv
- Y2Vzc29yKGNvb2tpZUphcikKICAgICNvcGVuZXIgPSB1cmxsaWIyLmJ1aWxkX29wZW5lcihjb29r
- aWVfaGFuZGxlciwgdXJsbGliMi5IVFRQQmFzaWNBdXRoSGFuZGxlcigpLCB1cmxsaWIyLkhUVFBI
- YW5kbGVyKCkpCiAgICAjb3BlbmVyID0gdXJsbGliMi5pbnN0YWxsX29wZW5lcihvcGVuZXIpCiAg
- ICB1cmxsaWIyLnVybG9wZW4ocmVxKQogICAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9wZW4ocmVx
- KQoKICAgIGxvY2FsRmlsZS53cml0ZShyZXNwb25zZS5yZWFkKCkpCiAgICByZXNwb25zZS5jbG9z
- ZSgpCiAgICBsb2NhbEZpbGUuY2xvc2UoKQogICAgc29sdmVyID0gSW5wdXRXaW5kb3coY2FwdGNo
- YT1sb2NhbF9jYXB0Y2hhKQogICAgc29sdXRpb24gPSBzb2x2ZXIuZ2V0KCkKICAgIHJldHVybiBz
- b2x1dGlvbgoKZGVmIGFza0NhcHRjaGFOZXcoaW1hZ2VyZWdleCxodG1sX3BhZ2UsY29va2llSmFy
- LG0pOgogICAgZ2xvYmFsIGlpZAogICAgaWlkKz0xCgoKICAgIGlmIG5vdCBpbWFnZXJlZ2V4PT0n
- JzoKICAgICAgICBpZiBodG1sX3BhZ2Uuc3RhcnRzd2l0aCgiaHR0cCIpOgogICAgICAgICAgICBw
- YWdlXz1nZXRVcmwoaHRtbF9wYWdlLGNvb2tpZUphcj1jb29raWVKYXIpCiAgICAgICAgZWxzZToK
- ICAgICAgICAgICAgcGFnZV89aHRtbF9wYWdlCiAgICAgICAgY2FwdGNoYV91cmw9cmUuY29tcGls
- ZShpbWFnZXJlZ2V4KS5maW5kYWxsKGh0bWxfcGFnZSlbMF0KICAgIGVsc2U6CiAgICAgICAgY2Fw
- dGNoYV91cmw9aHRtbF9wYWdlCiAgICAgICAgaWYgJ29uZXBsYXkudHYvZW1iZWQnIGluIGh0bWxf
- cGFnZToKICAgICAgICAgICAgaW1wb3J0IG9uZXBsYXkKICAgICAgICAgICAgcGFnZV89Z2V0VXJs
- KGh0bWxfcGFnZSxjb29raWVKYXI9Y29va2llSmFyKQogICAgICAgICAgICBjYXB0Y2hhX3VybD1v
- bmVwbGF5LmdldENhcHRjaGFVcmwocGFnZV8pCgogICAgbG9jYWxfY2FwdGNoYSA9IG9zLnBhdGgu
- am9pbihwcm9maWxlLCBzdHIoaWlkKSsiY2FwdGNoYS5qcGciICkKICAgIGxvY2FsRmlsZSA9IG9w
- ZW4obG9jYWxfY2FwdGNoYSwgIndiIikKIyAgICBwcmludCAnIGMgY2FwdXJsJyxjYXB0Y2hhX3Vy
- bAogICAgcmVxID0gdXJsbGliMi5SZXF1ZXN0KGNhcHRjaGFfdXJsKQogICAgcmVxLmFkZF9oZWFk
- ZXIoJ1VzZXItQWdlbnQnLCAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBydjoxNC4wKSBH
- ZWNrby8yMDEwMDEwMSBGaXJlZm94LzE0LjAuMScpCiAgICBpZiAncmVmZXJlcicgaW4gbToKICAg
- ICAgICByZXEuYWRkX2hlYWRlcignUmVmZXJlcicsIG1bJ3JlZmVyZXInXSkKICAgIGlmICdhZ2Vu
- dCcgaW4gbToKICAgICAgICByZXEuYWRkX2hlYWRlcignVXNlci1hZ2VudCcsIG1bJ2FnZW50J10p
- CiAgICBpZiAnYWNjZXB0JyBpbiBtOgogICAgICAgIHJlcS5hZGRfaGVhZGVyKCdBY2NlcHQnLCBt
- WydhY2NlcHQnXSkKICAgIGlmICdzZXRjb29raWUnIGluIG06CiMgICAgICAgIHByaW50ICdhZGRp
- bmcgY29va2llJyxtWydzZXRjb29raWUnXQogICAgICAgIHJlcS5hZGRfaGVhZGVyKCdDb29raWUn
- LCBtWydzZXRjb29raWUnXSkKCiAgICAjY29va2llX2hhbmRsZXIgPSB1cmxsaWIyLkhUVFBDb29r
- aWVQcm9jZXNzb3IoY29va2llSmFyKQogICAgI29wZW5lciA9IHVybGxpYjIuYnVpbGRfb3BlbmVy
- KGNvb2tpZV9oYW5kbGVyLCB1cmxsaWIyLkhUVFBCYXNpY0F1dGhIYW5kbGVyKCksIHVybGxpYjIu
- SFRUUEhhbmRsZXIoKSkKICAgICNvcGVuZXIgPSB1cmxsaWIyLmluc3RhbGxfb3BlbmVyKG9wZW5l
- cikKICAgICN1cmxsaWIyLnVybG9wZW4ocmVxKQogICAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9w
- ZW4ocmVxKQoKICAgIGxvY2FsRmlsZS53cml0ZShyZXNwb25zZS5yZWFkKCkpCiAgICByZXNwb25z
- ZS5jbG9zZSgpCiAgICBsb2NhbEZpbGUuY2xvc2UoKQogICAgc29sdmVyID0gSW5wdXRXaW5kb3co
- Y2FwdGNoYT1sb2NhbF9jYXB0Y2hhKQogICAgc29sdXRpb24gPSBzb2x2ZXIuZ2V0KCkKICAgIHJl
- dHVybiBzb2x1dGlvbgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
- IyMjIyMjIyMjIyMjIyMjCiMgRnVuY3Rpb24gIDogR1VJRWRpdEV4cG9ydE5hbWUgICAgICAgICAg
- ICAgICAgICAgICAgICAgIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
- IyMjIyMjIyMjIyMjIyMjIyMKIyBQYXJhbWV0ZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAjCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgIwojIG5hbWUgICAgICAgIHN1Z2VzdGVkIG5hbWUgZm9yIGV4cG9y
- dCAgICAgICAgICAgICAgICAgICMKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAjIAojIFJldHVybnMgICA6ICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICMKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAjCiMgbmFtZSAgICAgICAgbmFtZSBvZiBleHBvcnQgZXhj
- bHVkaW5nIGFueSBleHRlbnNpb24gICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
- IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRlZiBUYWtlSW5wdXQobmFtZSwgaGVhZG5hbWUp
- OgoKCiAgICBrYiA9IHhibWMuS2V5Ym9hcmQoJ2RlZmF1bHQnLCAnaGVhZGluZycsIFRydWUpCiAg
- ICBrYi5zZXREZWZhdWx0KG5hbWUpCiAgICBrYi5zZXRIZWFkaW5nKGhlYWRuYW1lKQogICAga2Iu
- c2V0SGlkZGVuSW5wdXQoRmFsc2UpCiAgICByZXR1cm4ga2IuZ2V0VGV4dCgpCgogICAKIyMjIyMj
- IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpjbGFz
- cyBJbnB1dFdpbmRvdyh4Ym1jZ3VpLldpbmRvd0RpYWxvZyk6CiAgICBkZWYgX19pbml0X18oc2Vs
- ZiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmNwdGxvYyA9IGt3YXJncy5nZXQoJ2Nh
- cHRjaGEnKQogICAgICAgIHNlbGYuaW1nID0geGJtY2d1aS5Db250cm9sSW1hZ2UoMzM1LDMwLDYy
- NCw2MCxzZWxmLmNwdGxvYykKICAgICAgICBzZWxmLmFkZENvbnRyb2woc2VsZi5pbWcpCiAgICAg
- ICAgc2VsZi5rYmQgPSB4Ym1jLktleWJvYXJkKCkKCiAgICBkZWYgZ2V0KHNlbGYpOgogICAgICAg
- IHNlbGYuc2hvdygpCiAgICAgICAgdGltZS5zbGVlcCgyKQogICAgICAgIHNlbGYua2JkLmRvTW9k
- YWwoKQogICAgICAgIGlmIChzZWxmLmtiZC5pc0NvbmZpcm1lZCgpKToKICAgICAgICAgICAgdGV4
- dCA9IHNlbGYua2JkLmdldFRleHQoKQogICAgICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICAg
- ICAgcmV0dXJuIHRleHQKICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICByZXR1cm4gRmFsc2UK
- CmRlZiBnZXRFcG9jVGltZSgpOgogICAgaW1wb3J0IHRpbWUKICAgIHJldHVybiBzdHIoaW50KHRp
- bWUudGltZSgpKjEwMDApKQoKZGVmIGdldEVwb2NUaW1lMigpOgogICAgaW1wb3J0IHRpbWUKICAg
- IHJldHVybiBzdHIoaW50KHRpbWUudGltZSgpKSkKCmRlZiBnZXRfcGFyYW1zKCk6CiAgICAgICAg
- cGFyYW09W10KICAgICAgICBwYXJhbXN0cmluZz1zeXMuYXJndlsyXQogICAgICAgIGlmIGxlbihw
- YXJhbXN0cmluZyk+PTI6CiAgICAgICAgICAgIHBhcmFtcz1zeXMuYXJndlsyXQogICAgICAgICAg
- ICBjbGVhbmVkcGFyYW1zPXBhcmFtcy5yZXBsYWNlKCc/JywnJykKICAgICAgICAgICAgaWYgKHBh
- cmFtc1tsZW4ocGFyYW1zKS0xXT09Jy8nKToKICAgICAgICAgICAgICAgIHBhcmFtcz1wYXJhbXNb
- MDpsZW4ocGFyYW1zKS0yXQogICAgICAgICAgICBwYWlyc29mcGFyYW1zPWNsZWFuZWRwYXJhbXMu
- c3BsaXQoJyYnKQogICAgICAgICAgICBwYXJhbT17fQogICAgICAgICAgICBmb3IgaSBpbiByYW5n
- ZShsZW4ocGFpcnNvZnBhcmFtcykpOgogICAgICAgICAgICAgICAgc3BsaXRwYXJhbXM9e30KICAg
- ICAgICAgICAgICAgIHNwbGl0cGFyYW1zPXBhaXJzb2ZwYXJhbXNbaV0uc3BsaXQoJz0nKQogICAg
- ICAgICAgICAgICAgaWYgKGxlbihzcGxpdHBhcmFtcykpPT0yOgogICAgICAgICAgICAgICAgICAg
- IHBhcmFtW3NwbGl0cGFyYW1zWzBdXT1zcGxpdHBhcmFtc1sxXQogICAgICAgIHJldHVybiBwYXJh
- bQoKCmRlZiBnZXRGYXZvcml0ZXMoKToKICAgICAgICBpdGVtcyA9IGpzb24ubG9hZHMob3Blbihm
- YXZvcml0ZXMpLnJlYWQoKSkKICAgICAgICB0b3RhbCA9IGxlbihpdGVtcykKICAgICAgICBmb3Ig
- aSBpbiBpdGVtczoKICAgICAgICAgICAgbmFtZSA9IGlbMF0KICAgICAgICAgICAgdXJsID0gaVsx
- XQogICAgICAgICAgICBpY29uaW1hZ2UgPSBpWzJdCiAgICAgICAgICAgIHRyeToKICAgICAgICAg
- ICAgICAgIGZhbkFydCA9IGlbM10KICAgICAgICAgICAgICAgIGlmIGZhbkFydCA9PSBOb25lOgog
- ICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAg
- ICAgIGlmIGFkZG9uLmdldFNldHRpbmcoJ3VzZV90aHVtYicpID09ICJ0cnVlIjoKICAgICAgICAg
- ICAgICAgICAgICBmYW5BcnQgPSBpY29uaW1hZ2UKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAg
- ICAgICAgICAgICAgICAgZmFuQXJ0ID0gZmFuYXJ0CiAgICAgICAgICAgIHRyeTogcGxheWxpc3Qg
- PSBpWzVdCiAgICAgICAgICAgIGV4Y2VwdDogcGxheWxpc3QgPSBOb25lCiAgICAgICAgICAgIHRy
- eTogcmVnZXhzID0gaVs2XQogICAgICAgICAgICBleGNlcHQ6IHJlZ2V4cyA9IE5vbmUKCiAgICAg
- ICAgICAgIGlmIGlbNF0gPT0gMDoKICAgICAgICAgICAgICAgIGFkZExpbmsodXJsLG5hbWUsaWNv
- bmltYWdlLGZhbkFydCwnJywnJywnJywnZmF2JyxwbGF5bGlzdCxyZWdleHMsdG90YWwpCiAgICAg
- ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBhZGREaXIobmFtZSx1cmwsaVs0XSxpY29uaW1h
- Z2UsZmFuYXJ0LCcnLCcnLCcnLCcnLCdmYXYnKQoKCmRlZiBhZGRGYXZvcml0ZShuYW1lLHVybCxp
- Y29uaW1hZ2UsZmFuYXJ0LG1vZGUscGxheWxpc3Q9Tm9uZSxyZWdleHM9Tm9uZSk6CiAgICAgICAg
- ZmF2TGlzdCA9IFtdCiAgICAgICAgdHJ5OgogICAgICAgICAgICAjIHNlZW1zIHRoYXQgYWZ0ZXIK
- ICAgICAgICAgICAgbmFtZSA9IG5hbWUuZW5jb2RlKCd1dGYtOCcsICdpZ25vcmUnKQogICAgICAg
- IGV4Y2VwdDoKICAgICAgICAgICAgcGFzcwogICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGZhdm9y
- aXRlcyk9PUZhbHNlOgogICAgICAgICAgICBhZGRvbl9sb2coJ01ha2luZyBGYXZvcml0ZXMgRmls
- ZScpCiAgICAgICAgICAgIGZhdkxpc3QuYXBwZW5kKChuYW1lLHVybCxpY29uaW1hZ2UsZmFuYXJ0
- LG1vZGUscGxheWxpc3QscmVnZXhzKSkKICAgICAgICAgICAgYSA9IG9wZW4oZmF2b3JpdGVzLCAi
- dyIpCiAgICAgICAgICAgIGEud3JpdGUoanNvbi5kdW1wcyhmYXZMaXN0KSkKICAgICAgICAgICAg
- YS5jbG9zZSgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgYWRkb25fbG9nKCdBcHBlbmRpbmcg
- RmF2b3JpdGVzJykKICAgICAgICAgICAgYSA9IG9wZW4oZmF2b3JpdGVzKS5yZWFkKCkKICAgICAg
- ICAgICAgZGF0YSA9IGpzb24ubG9hZHMoYSkKICAgICAgICAgICAgZGF0YS5hcHBlbmQoKG5hbWUs
- dXJsLGljb25pbWFnZSxmYW5hcnQsbW9kZSkpCiAgICAgICAgICAgIGIgPSBvcGVuKGZhdm9yaXRl
- cywgInciKQogICAgICAgICAgICBiLndyaXRlKGpzb24uZHVtcHMoZGF0YSkpCiAgICAgICAgICAg
- IGIuY2xvc2UoKQoKCmRlZiBybUZhdm9yaXRlKG5hbWUpOgogICAgICAgIGRhdGEgPSBqc29uLmxv
- YWRzKG9wZW4oZmF2b3JpdGVzKS5yZWFkKCkpCiAgICAgICAgZm9yIGluZGV4IGluIHJhbmdlKGxl
- bihkYXRhKSk6CiAgICAgICAgICAgIGlmIGRhdGFbaW5kZXhdWzBdPT1uYW1lOgogICAgICAgICAg
- ICAgICAgZGVsIGRhdGFbaW5kZXhdCiAgICAgICAgICAgICAgICBiID0gb3BlbihmYXZvcml0ZXMs
- ICJ3IikKICAgICAgICAgICAgICAgIGIud3JpdGUoanNvbi5kdW1wcyhkYXRhKSkKICAgICAgICAg
- ICAgICAgIGIuY2xvc2UoKQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICB4Ym1jLmV4ZWN1
- dGVidWlsdGluKCJYQk1DLkNvbnRhaW5lci5SZWZyZXNoIikKCmRlZiB1cmxzb2x2ZXIodXJsKToK
- ICAgIGltcG9ydCB1cmxyZXNvbHZlcgogICAgaG9zdCA9IHVybHJlc29sdmVyLkhvc3RlZE1lZGlh
- RmlsZSh1cmwpCiAgICBpZiBob3N0OgogICAgICAgIHJlc29sdmVyID0gdXJscmVzb2x2ZXIucmVz
- b2x2ZSh1cmwpCiAgICAgICAgcmVzb2x2ZWQgPSByZXNvbHZlcgogICAgICAgIGlmIGlzaW5zdGFu
- Y2UocmVzb2x2ZWQsbGlzdCk6CiAgICAgICAgICAgIGZvciBrIGluIHJlc29sdmVkOgogICAgICAg
- ICAgICAgICAgcXVhbGl0eSA9IGFkZG9uLmdldFNldHRpbmcoJ3F1YWxpdHknKQogICAgICAgICAg
- ICAgICAgaWYga1sncXVhbGl0eSddID09ICdIRCcgIDoKICAgICAgICAgICAgICAgICAgICByZXNv
- bHZlciA9IGtbJ3VybCddCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAg
- IGVsaWYga1sncXVhbGl0eSddID09ICdTRCcgOgogICAgICAgICAgICAgICAgICAgIHJlc29sdmVy
- ID0ga1sndXJsJ10KICAgICAgICAgICAgICAgIGVsaWYga1sncXVhbGl0eSddID09ICcxMDgwcCcg
- YW5kIGFkZG9uLmdldFNldHRpbmcoJzEwODBwcXVhbGl0eScpID09ICd0cnVlJyA6CiAgICAgICAg
- ICAgICAgICAgICAgcmVzb2x2ZXIgPSBrWyd1cmwnXQogICAgICAgICAgICAgICAgICAgIGJyZWFr
- CiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmVzb2x2ZXIgPSByZXNvbHZlZAogICAgZWxzZToK
- ICAgICAgICB4Ym1jLmV4ZWN1dGVidWlsdGluKCJYQk1DLk5vdGlmaWNhdGlvbihDb2NpbmFUdSxV
- cmxyZXNvbHZlciBkb25vdCBzdXBwb3J0IHRoaXMgZG9tYWluLiAtICw1MDAwKSIpCiAgICAgICAg
- cmVzb2x2ZXI9dXJsCiAgICByZXR1cm4gcmVzb2x2ZXIKZGVmIHRyeXBsYXkodXJsLGxpc3RpdGVt
- LHBkaWFsb2d1ZT1Ob25lKTogICAgCgogICAgaWYgdXJsLmxvd2VyKCkuc3RhcnRzd2l0aCgncGx1
- Z2luJykgYW5kICd5b3V0dWJlJyBub3QgaW4gIHVybC5sb3dlcigpOgogICAgICAgIHByaW50ICdw
- bGF5aW5nIHZpYSBydW5wbHVnaW4nCiAgICAgICAgeGJtYy5leGVjdXRlYnVpbHRpbignWEJNQy5S
- dW5QbHVnaW4oJyt1cmwrJyknKSAKICAgICAgICBmb3IgaSBpbiByYW5nZSg4KToKICAgICAgICAg
- ICAgeGJtYy5zbGVlcCg1MDApICMjc2xlZXAgZm9yIDEwIHNlY29uZHMsIGhhbGYgZWFjaCB0aW1l
- CiAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICNwcmludCAnY29uZGknCiAgICAgICAg
- ICAgICAgICBpZiB4Ym1jLmdldENvbmRWaXNpYmlsaXR5KCJQbGF5ZXIuSGFzTWVkaWEiKSBhbmQg
- eGJtYy5QbGF5ZXIoKS5pc1BsYXlpbmcoKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
- ZQogICAgICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICBwcmludCAncmV0dXJuaW5nIG5vdycK
- ICAgICAgICByZXR1cm4gRmFsc2UKICAgIGltcG9ydCAgQ3VzdG9tUGxheWVyLHRpbWUKCiAgICBw
- bGF5ZXIgPSBDdXN0b21QbGF5ZXIuTXlYQk1DUGxheWVyKCkKICAgIHBsYXllci5wZGlhbG9ndWU9
- cGRpYWxvZ3VlCiAgICBzdGFydCA9IHRpbWUudGltZSgpIAogICAgI3hibWMuUGxheWVyKCkucGxh
- eSggbGl2ZUxpbmssbGlzdGl0ZW0pCiAgICBwcmludCAnZ29pbmcgdG8gcGxheScKICAgIGltcG9y
- dCB0aW1lCiAgICBiZWZvcmVzdGFydD10aW1lLnRpbWUoKQogICAgcGxheWVyLnBsYXkoIHVybCwg
- bGlzdGl0ZW0pCiAgICB4Ym1jLnNsZWVwKDEwMDApCiAgICAKICAgIHRyeToKICAgICAgICB3aGls
- ZSBwbGF5ZXIuaXNfYWN0aXZlOgogICAgICAgICAgICB4Ym1jLnNsZWVwKDQwMCkKICAgICAgICAg
- ICAKICAgICAgICAgICAgaWYgcGxheWVyLnVybHBsYXllZDoKICAgICAgICAgICAgICAgIHByaW50
- ICd5ZXMgcGxheWVkJwogICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgICAgaWYg
- dGltZS50aW1lKCktYmVmb3Jlc3RhcnQ+NDogcmV0dXJuIEZhbHNlCiAgICAgICAgICAgICN4Ym1j
- LnNsZWVwKDEwMDApCiAgICBleGNlcHQ6IHBhc3MKICAgIHByaW50ICdub3QgcGxheWVkJyx1cmwK
- ICAgIHJldHVybiBGYWxzZQpkZWYgcGxheV9wbGF5bGlzdChuYW1lLCBtdV9wbGF5bGlzdCxxdWV1
- ZVZpZGVvPU5vbmUpOgogICAgICAgIHBsYXlsaXN0ID0geGJtYy5QbGF5TGlzdCh4Ym1jLlBMQVlM
- SVNUX1ZJREVPKQogICAgICAgICNwcmludCAnbXVfcGxheWxpc3QnLG11X3BsYXlsaXN0CiAgICAg
- ICAgaWYgJyQkTFNQbGF5T25seU9uZSQkJyBpbiBtdV9wbGF5bGlzdFswXToKICAgICAgICAgICAg
- bXVfcGxheWxpc3RbMF09bXVfcGxheWxpc3RbMF0ucmVwbGFjZSgnJCRMU1BsYXlPbmx5T25lJCQn
- LCcnKQogICAgICAgICAgICBpbXBvcnQgdXJscGFyc2UKICAgICAgICAgICAgbmFtZXMgPSBbXQog
- ICAgICAgICAgICBpbG9vcD0wCiAgICAgICAgICAgIHByb2dyZXNzID0geGJtY2d1aS5EaWFsb2dQ
- cm9ncmVzcygpCiAgICAgICAgICAgIHByb2dyZXNzLmNyZWF0ZSgnUHJvZ3Jlc3MnLCAnVHJ5aW5n
- IE11bHRpcGxlIExpbmtzJykKICAgICAgICAgICAgZm9yIGkgaW4gbXVfcGxheWxpc3Q6CiAgICAg
- ICAgICAgICAgICAKCiAgICAgICAgICAgICAgICBpZiAnJCRsc25hbWU9JyBpbiBpOgogICAgICAg
- ICAgICAgICAgICAgIGRfbmFtZT1pLnNwbGl0KCckJGxzbmFtZT0nKVsxXS5zcGxpdCgnJnJlZ2V4
- cycpWzBdCiAgICAgICAgICAgICAgICAgICAgbmFtZXMuYXBwZW5kKGRfbmFtZSkgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBtdV9wbGF5
- bGlzdFtpbG9vcF09aS5zcGxpdCgnJCRsc25hbWU9JylbMF0rKCcmcmVnZXhzJytpLnNwbGl0KCcm
- cmVnZXhzJylbMV0gaWYgJyZyZWdleHMnIGluIGkgZWxzZSAnJykgICAgICAgICAgICAgICAgICAg
- IAogICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICBkX25hbWU9dXJscGFy
- c2UudXJscGFyc2UoaSkubmV0bG9jCiAgICAgICAgICAgICAgICAgICAgaWYgZF9uYW1lID09ICcn
- OgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQobmFtZSkKICAgICAgICAgICAg
- ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQoZF9uYW1l
- KQogICAgICAgICAgICAgICAgaW5kZXg9aWxvb3AKICAgICAgICAgICAgICAgIGlsb29wKz0xCiAg
- ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHBsYXluYW1lPW5hbWVzW2luZGV4XQogICAg
- ICAgICAgICAgICAgaWYgcHJvZ3Jlc3MuaXNjYW5jZWxlZCgpOiByZXR1cm4gCiAgICAgICAgICAg
- ICAgICBwcm9ncmVzcy51cGRhdGUoIGlsb29wL2xlbihtdV9wbGF5bGlzdCkqMTAwLCIiLCAiTGlu
- ayMlZCIlKGlsb29wKSxwbGF5bmFtZSAgKQogICAgICAgICAgICAgICAgcHJpbnQgJ2F1dG8gcGxh
- eW5hbWV4eCcscGxheW5hbWUKICAgICAgICAgICAgICAgIGlmICImbW9kZT0xOSIgaW4gbXVfcGxh
- eWxpc3RbaW5kZXhdOgogICAgICAgICAgICAgICAgICAgICAgICAjcGxheXNldHJlc29sdmVkICh1
- cmxzb2x2ZXIobXVfcGxheWxpc3RbaW5kZXhdLnJlcGxhY2UoJyZtb2RlPTE5JywnJykpLG5hbWUs
- aWNvbmltYWdlLFRydWUpCiAgICAgICAgICAgICAgICAgICAgbGl6ID0geGJtY2d1aS5MaXN0SXRl
- bShwbGF5bmFtZSwgaWNvbkltYWdlPWljb25pbWFnZSwgdGh1bWJuYWlsSW1hZ2U9aWNvbmltYWdl
- KQogICAgICAgICAgICAgICAgICAgIGxpei5zZXRJbmZvKHR5cGU9J1ZpZGVvJywgaW5mb0xhYmVs
- cz17J1RpdGxlJzpwbGF5bmFtZX0pCiAgICAgICAgICAgICAgICAgICAgbGl6LnNldFByb3BlcnR5
- KCJJc1BsYXlhYmxlIiwidHJ1ZSIpCiAgICAgICAgICAgICAgICAgICAgdXJsdG9wbGF5PXVybHNv
- bHZlcihtdV9wbGF5bGlzdFtpbmRleF0ucmVwbGFjZSgnJm1vZGU9MTknLCcnKS5yZXBsYWNlKCc7
- JywnJykpCiAgICAgICAgICAgICAgICAgICAgbGl6LnNldFBhdGgodXJsdG9wbGF5KQogICAgICAg
- ICAgICAgICAgICAgICN4Ym1jLlBsYXllcigpLnBsYXkodXJsdG9wbGF5LGxpeikKICAgICAgICAg
- ICAgICAgICAgICBwbGF5ZWQ9dHJ5cGxheSh1cmx0b3BsYXksbGl6KQogICAgICAgICAgICAgICAg
- ZWxpZiAiJGRvcmVnZXgiIGluIG11X3BsYXlsaXN0W2luZGV4XSA6CiMgICAgICAgICAgICAgICAg
- ICAgIHByaW50IG11X3BsYXlsaXN0W2luZGV4XQogICAgICAgICAgICAgICAgICAgIHNlcGF0ZSA9
- IG11X3BsYXlsaXN0W2luZGV4XS5zcGxpdCgnJnJlZ2V4cz0nKQojICAgICAgICAgICAgICAgICAg
- ICBwcmludCBzZXBhdGUKICAgICAgICAgICAgICAgICAgICB1cmwsc2V0cmVzb2x2ZWQgPSBnZXRS
- ZWdleFBhcnNlZChzZXBhdGVbMV0sIHNlcGF0ZVswXSkKICAgICAgICAgICAgICAgICAgICB1cmwy
- ID0gdXJsLnJlcGxhY2UoJzsnLCcnKQogICAgICAgICAgICAgICAgICAgIGxpeiA9IHhibWNndWku
- TGlzdEl0ZW0ocGxheW5hbWUsIGljb25JbWFnZT1pY29uaW1hZ2UsIHRodW1ibmFpbEltYWdlPWlj
- b25pbWFnZSkKICAgICAgICAgICAgICAgICAgICBsaXouc2V0SW5mbyh0eXBlPSdWaWRlbycsIGlu
- Zm9MYWJlbHM9eydUaXRsZSc6cGxheW5hbWV9KQogICAgICAgICAgICAgICAgICAgIGxpei5zZXRQ
- cm9wZXJ0eSgiSXNQbGF5YWJsZSIsInRydWUiKQogICAgICAgICAgICAgICAgICAgIGxpei5zZXRQ
- YXRoKHVybDIpCiAgICAgICAgICAgICAgICAgICAgI3hibWMuUGxheWVyKCkucGxheSh1cmwyLGxp
- eikKICAgICAgICAgICAgICAgICAgICBwbGF5ZWQ9dHJ5cGxheSh1cmwyLGxpeikKCiAgICAgICAg
- ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgIHVybCA9IG11X3BsYXlsaXN0W2luZGV4
- XQogICAgICAgICAgICAgICAgICAgIHVybD11cmwuc3BsaXQoJyZyZWdleHM9JylbMF0KICAgICAg
- ICAgICAgICAgICAgICBsaXogPSB4Ym1jZ3VpLkxpc3RJdGVtKHBsYXluYW1lLCBpY29uSW1hZ2U9
- aWNvbmltYWdlLCB0aHVtYm5haWxJbWFnZT1pY29uaW1hZ2UpCiAgICAgICAgICAgICAgICAgICAg
- bGl6LnNldEluZm8odHlwZT0nVmlkZW8nLCBpbmZvTGFiZWxzPXsnVGl0bGUnOnBsYXluYW1lfSkK
- ICAgICAgICAgICAgICAgICAgICBsaXouc2V0UHJvcGVydHkoIklzUGxheWFibGUiLCJ0cnVlIikK
- ICAgICAgICAgICAgICAgICAgICBsaXouc2V0UGF0aCh1cmwpCiAgICAgICAgICAgICAgICAgICAg
- I3hibWMuUGxheWVyKCkucGxheSh1cmwsbGl6KQogICAgICAgICAgICAgICAgICAgIHBsYXllZD10
- cnlwbGF5KHVybCxsaXopCiAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ3BsYXllZCcscGxheWVk
- CiAgICAgICAgICAgICAgICBwcmludCAncGxheWVkJyxwbGF5ZWQKICAgICAgICAgICAgICAgIGlm
- IHBsYXllZDogcmV0dXJuCiAgICAgICAgICAgIHJldHVybiAgICAgCiAgICAgICAgaWYgYWRkb24u
- Z2V0U2V0dGluZygnYXNrX3BsYXlsaXN0X2l0ZW1zJykgPT0gJ3RydWUnIGFuZCBub3QgcXVldWVW
- aWRlbyA6CiAgICAgICAgICAgIGltcG9ydCB1cmxwYXJzZQogICAgICAgICAgICBuYW1lcyA9IFtd
- CiAgICAgICAgICAgIGlsb29wPTAKICAgICAgICAgICAgZm9yIGkgaW4gbXVfcGxheWxpc3Q6CiAg
- ICAgICAgICAgICAgICBpZiAnJCRsc25hbWU9JyBpbiBpOgogICAgICAgICAgICAgICAgICAgIGRf
- bmFtZT1pLnNwbGl0KCckJGxzbmFtZT0nKVsxXS5zcGxpdCgnJnJlZ2V4cycpWzBdCiAgICAgICAg
- ICAgICAgICAgICAgbmFtZXMuYXBwZW5kKGRfbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBtdV9wbGF5bGlzdFtpbG9vcF09aS5z
- cGxpdCgnJCRsc25hbWU9JylbMF0rKCcmcmVnZXhzJytpLnNwbGl0KCcmcmVnZXhzJylbMV0gaWYg
- JyZyZWdleHMnIGluIGkgZWxzZSAnJykgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
- ICAgZWxzZToKICAgICAgICAgICAgICAgICAgICBkX25hbWU9dXJscGFyc2UudXJscGFyc2UoaSku
- bmV0bG9jCiAgICAgICAgICAgICAgICAgICAgaWYgZF9uYW1lID09ICcnOgogICAgICAgICAgICAg
- ICAgICAgICAgICBuYW1lcy5hcHBlbmQobmFtZSkKICAgICAgICAgICAgICAgICAgICBlbHNlOgog
- ICAgICAgICAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQoZF9uYW1lKQogICAgICAgICAgICAg
- ICAgICAgIAogICAgICAgICAgICAgICAgaWxvb3ArPTEKICAgICAgICAgICAgZGlhbG9nID0geGJt
- Y2d1aS5EaWFsb2coKQogICAgICAgICAgICBpbmRleCA9IGRpYWxvZy5zZWxlY3QoJ0Nob29zZSBh
- IHZpZGVvIHNvdXJjZScsIG5hbWVzKQogICAgICAgICAgICBpZiBpbmRleCA+PSAwOgogICAgICAg
- ICAgICAgICAgcGxheW5hbWU9bmFtZXNbaW5kZXhdCiAgICAgICAgICAgICAgICBwcmludCAncGxh
- eW5hbWV4eCcscGxheW5hbWUKICAgICAgICAgICAgICAgIGlmICImbW9kZT0xOSIgaW4gbXVfcGxh
- eWxpc3RbaW5kZXhdOgogICAgICAgICAgICAgICAgICAgICAgICAjcGxheXNldHJlc29sdmVkICh1
- cmxzb2x2ZXIobXVfcGxheWxpc3RbaW5kZXhdLnJlcGxhY2UoJyZtb2RlPTE5JywnJykpLG5hbWUs
- aWNvbmltYWdlLFRydWUpCiAgICAgICAgICAgICAgICAgICAgbGl6ID0geGJtY2d1aS5MaXN0SXRl
- bShwbGF5bmFtZSwgaWNvbkltYWdlPWljb25pbWFnZSwgdGh1bWJuYWlsSW1hZ2U9aWNvbmltYWdl
- KQogICAgICAgICAgICAgICAgICAgIGxpei5zZXRJbmZvKHR5cGU9J1ZpZGVvJywgaW5mb0xhYmVs
- cz17J1RpdGxlJzpwbGF5bmFtZX0pCiAgICAgICAgICAgICAgICAgICAgbGl6LnNldFByb3BlcnR5
- KCJJc1BsYXlhYmxlIiwidHJ1ZSIpCiAgICAgICAgICAgICAgICAgICAgdXJsdG9wbGF5PXVybHNv
- bHZlcihtdV9wbGF5bGlzdFtpbmRleF0ucmVwbGFjZSgnJm1vZGU9MTknLCcnKS5yZXBsYWNlKCc7
- JywnJykpCiAgICAgICAgICAgICAgICAgICAgbGl6LnNldFBhdGgodXJsdG9wbGF5KQogICAgICAg
- ICAgICAgICAgICAgIHhibWMuUGxheWVyKCkucGxheSh1cmx0b3BsYXksbGl6KQogICAgICAgICAg
- ICAgICAgZWxpZiAiJGRvcmVnZXgiIGluIG11X3BsYXlsaXN0W2luZGV4XSA6CiMgICAgICAgICAg
- ICAgICAgICAgIHByaW50IG11X3BsYXlsaXN0W2luZGV4XQogICAgICAgICAgICAgICAgICAgIHNl
- cGF0ZSA9IG11X3BsYXlsaXN0W2luZGV4XS5zcGxpdCgnJnJlZ2V4cz0nKQojICAgICAgICAgICAg
- ICAgICAgICBwcmludCBzZXBhdGUKICAgICAgICAgICAgICAgICAgICB1cmwsc2V0cmVzb2x2ZWQg
- PSBnZXRSZWdleFBhcnNlZChzZXBhdGVbMV0sIHNlcGF0ZVswXSkKICAgICAgICAgICAgICAgICAg
- ICB1cmwyID0gdXJsLnJlcGxhY2UoJzsnLCcnKQogICAgICAgICAgICAgICAgICAgIGxpeiA9IHhi
- bWNndWkuTGlzdEl0ZW0ocGxheW5hbWUsIGljb25JbWFnZT1pY29uaW1hZ2UsIHRodW1ibmFpbElt
- YWdlPWljb25pbWFnZSkKICAgICAgICAgICAgICAgICAgICBsaXouc2V0SW5mbyh0eXBlPSdWaWRl
- bycsIGluZm9MYWJlbHM9eydUaXRsZSc6cGxheW5hbWV9KQogICAgICAgICAgICAgICAgICAgIGxp
- ei5zZXRQcm9wZXJ0eSgiSXNQbGF5YWJsZSIsInRydWUiKQogICAgICAgICAgICAgICAgICAgIGxp
- ei5zZXRQYXRoKHVybDIpCiAgICAgICAgICAgICAgICAgICAgeGJtYy5QbGF5ZXIoKS5wbGF5KHVy
- bDIsbGl6KQoKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgdXJsID0g
- bXVfcGxheWxpc3RbaW5kZXhdCiAgICAgICAgICAgICAgICAgICAgdXJsPXVybC5zcGxpdCgnJnJl
- Z2V4cz0nKVswXQogICAgICAgICAgICAgICAgICAgIGxpeiA9IHhibWNndWkuTGlzdEl0ZW0ocGxh
- eW5hbWUsIGljb25JbWFnZT1pY29uaW1hZ2UsIHRodW1ibmFpbEltYWdlPWljb25pbWFnZSkKICAg
- ICAgICAgICAgICAgICAgICBsaXouc2V0SW5mbyh0eXBlPSdWaWRlbycsIGluZm9MYWJlbHM9eydU
- aXRsZSc6cGxheW5hbWV9KQogICAgICAgICAgICAgICAgICAgIGxpei5zZXRQcm9wZXJ0eSgiSXNQ
- bGF5YWJsZSIsInRydWUiKQogICAgICAgICAgICAgICAgICAgIGxpei5zZXRQYXRoKHVybCkKICAg
- ICAgICAgICAgICAgICAgICB4Ym1jLlBsYXllcigpLnBsYXkodXJsLGxpeikKICAgICAgICBlbGlm
- IG5vdCBxdWV1ZVZpZGVvOgogICAgICAgICAgICAjcGxheWxpc3QgPSB4Ym1jLlBsYXlMaXN0KDEp
- ICMgMSBtZWFucyB2aWRlbwogICAgICAgICAgICBwbGF5bGlzdC5jbGVhcigpCiAgICAgICAgICAg
- IGl0ZW0gPSAwCiAgICAgICAgICAgIGZvciBpIGluIG11X3BsYXlsaXN0OgogICAgICAgICAgICAg
- ICAgaXRlbSArPSAxCiAgICAgICAgICAgICAgICBpbmZvID0geGJtY2d1aS5MaXN0SXRlbSgnJXMp
- ICVzJyAlKHN0cihpdGVtKSxuYW1lKSkKICAgICAgICAgICAgICAgICMgRG9uJ3QgZG8gdGhpcyBh
- cyByZWdleCBwYXJzZWQgbWlnaHQgdGFrZSBsb25nZXIKICAgICAgICAgICAgICAgIHRyeToKICAg
- ICAgICAgICAgICAgICAgICBpZiAiJGRvcmVnZXgiIGluIGk6CiAgICAgICAgICAgICAgICAgICAg
- ICAgIHNlcGF0ZSA9IGkuc3BsaXQoJyZyZWdleHM9JykKIyAgICAgICAgICAgICAgICAgICAgICAg
- IHByaW50IHNlcGF0ZQogICAgICAgICAgICAgICAgICAgICAgICB1cmwsc2V0cmVzb2x2ZWQgPSBn
- ZXRSZWdleFBhcnNlZChzZXBhdGVbMV0sIHNlcGF0ZVswXSkKICAgICAgICAgICAgICAgICAgICBl
- bGlmICImbW9kZT0xOSIgaW4gaToKICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsc29s
- dmVyKGkucmVwbGFjZSgnJm1vZGU9MTknLCcnKS5yZXBsYWNlKCc7JywnJykpICAgICAgICAgICAg
- ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgaWYgdXJsOgogICAgICAgICAgICAgICAg
- ICAgICAgICBwbGF5bGlzdC5hZGQodXJsLCBpbmZvKQogICAgICAgICAgICAgICAgICAgIGVsc2U6
- CiAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICBleGNlcHQgRXhj
- ZXB0aW9uOgogICAgICAgICAgICAgICAgICAgIHBsYXlsaXN0LmFkZChpLCBpbmZvKQogICAgICAg
- ICAgICAgICAgICAgIHBhc3MgI3hibWMuUGxheWVyKCkucGxheSh1cmwpCgogICAgICAgICAgICB4
- Ym1jLmV4ZWN1dGVidWlsdGluKCdwbGF5bGlzdC5wbGF5b2Zmc2V0KHZpZGVvLDApJykKICAgICAg
- ICBlbHNlOgoKICAgICAgICAgICAgICAgIGxpc3RpdGVtID0geGJtY2d1aS5MaXN0SXRlbShuYW1l
- KQogICAgICAgICAgICAgICAgcGxheWxpc3QuYWRkKG11X3BsYXlsaXN0LCBsaXN0aXRlbSkKCgpk
- ZWYgZG93bmxvYWRfZmlsZShuYW1lLCB1cmwpOgogICAgICAgIAogICAgICAgIGlmIGFkZG9uLmdl
- dFNldHRpbmcoJ3NhdmVfbG9jYXRpb24nKSA9PSAiIjoKICAgICAgICAgICAgeGJtYy5leGVjdXRl
- YnVpbHRpbigiWEJNQy5Ob3RpZmljYXRpb24oJ0NvY2luYVR1JywnQ2hvb3NlIGEgbG9jYXRpb24g
- dG8gc2F2ZSBmaWxlcy4nLDE1MDAwLCIraWNvbisiKSIpCiAgICAgICAgICAgIGFkZG9uLm9wZW5T
- ZXR0aW5ncygpCiAgICAgICAgcGFyYW1zID0geyd1cmwnOiB1cmwsICdkb3dubG9hZF9wYXRoJzog
- YWRkb24uZ2V0U2V0dGluZygnc2F2ZV9sb2NhdGlvbicpfQogICAgICAgIGRvd25sb2FkZXIuZG93
- bmxvYWQobmFtZSwgcGFyYW1zKQogICAgICAgIGRpYWxvZyA9IHhibWNndWkuRGlhbG9nKCkKICAg
- ICAgICByZXQgPSBkaWFsb2cueWVzbm8oJ0NvY2luYVR1JywgJ0RvIHlvdSB3YW50IHRvIGFkZCB0
- aGlzIGZpbGUgYXMgYSBzb3VyY2U/JykKICAgICAgICBpZiByZXQ6CiAgICAgICAgICAgIGFkZFNv
- dXJjZShvcy5wYXRoLmpvaW4oYWRkb24uZ2V0U2V0dGluZygnc2F2ZV9sb2NhdGlvbicpLCBuYW1l
- KSkKCmRlZiBfc2VhcmNoKHVybCxuYW1lKToKICAgIyBwcmludCB1cmwsbmFtZQogICAgcGx1Z2lu
- c2VhcmNodXJscyA9IFsncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmdlbmVzaXMvP2FjdGlvbj1zaG93
- c19zZWFyY2gnLFwKICAgICAgICAgICAgICdwbHVnaW46Ly9wbHVnaW4udmlkZW8uZ2VuZXNpcy8/
- YWN0aW9uPW1vdmllc19zZWFyY2gnLFwKICAgICAgICAgICAgICdwbHVnaW46Ly9wbHVnaW4udmlk
- ZW8uc2FsdHMvP21vZGU9c2VhcmNoJmFtcDtzZWN0aW9uPU1vdmllcycsXAogICAgICAgICAgICAg
- J3BsdWdpbjovL3BsdWdpbi52aWRlby5zYWx0cy8/bW9kZT1zZWFyY2gmYW1wO3NlY3Rpb249VFYn
- LFwKICAgICAgICAgICAgICdwbHVnaW46Ly9wbHVnaW4udmlkZW8ubXVjaG1vdmllcy5oZC8/YWN0
- aW9uPW1vdmllc19zZWFyY2gnLFwKICAgICAgICAgICAgICdwbHVnaW46Ly9wbHVnaW4udmlkZW8u
- dmlvb3ouY28vP2FjdGlvbj1yb290X3NlYXJjaCcsXAogICAgICAgICAgICAgJ3BsdWdpbjovL3Bs
- dWdpbi52aWRlby5vcm9yb3R2Lz9hY3Rpb249c2hvd3Nfc2VhcmNoJyxcCiAgICAgICAgICAgICAn
- cGx1Z2luOi8vcGx1Z2luLnZpZGVvLnlpZnltb3ZpZXMuaGQvP2FjdGlvbj1tb3ZpZXNfc2VhcmNo
- JyxcCiAgICAgICAgICAgICAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmNhcnRvb25oZHR3by8/ZGVz
- Y3JpcHRpb24mYW1wO2ZhbmFydCZhbXA7aWNvbmltYWdlJmFtcDttb2RlPTMmYW1wO25hbWU9U2Vh
- cmNoJmFtcDt1cmw9dXJsJyxcCiAgICAgICAgICAgICAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLnlv
- dXR1YmUva29kaW9uL3NlYXJjaC9saXN0LycsXAogICAgICAgICAgICAgJ3BsdWdpbjovL3BsdWdp
- bi52aWRlby5kYWlseW1vdGlvbl9jb20vP21vZGU9c2VhcmNoJmFtcDt1cmwnLFwKICAgICAgICAg
- ICAgICdwbHVnaW46Ly9wbHVnaW4udmlkZW8udmltZW8va29kaW9uL3NlYXJjaC9saXN0LydcCiAg
- ICAgICAgICAgICBdCiAgICBuYW1lcyA9IFsnR2Vuc2lzIFRWJywnR2VuZXNpcyBNb3ZpZScsJ1Nh
- bHQgbW92aWUnLCdzYWx0IFRWJywnTXVjaG1vdmllcycsJ3Zpb296JywnT1Jvcm9UVicsXAogICAg
- ICAgICAgICAgJ1lpZnltb3ZpZXMnLCdjYXJ0b29uSEQnLCdZb3V0dWJlJywnRGFpbHlNb3Rpb24n
- LCdWaW1lbyddCiAgICBkaWFsb2cgPSB4Ym1jZ3VpLkRpYWxvZygpCiAgICBpbmRleCA9IGRpYWxv
- Zy5zZWxlY3QoJ0Nob29zZSBhIHZpZGVvIHNvdXJjZScsIG5hbWVzKQoKICAgIGlmIGluZGV4ID49
- IDA6CiAgICAgICAgdXJsID0gcGx1Z2luc2VhcmNodXJsc1tpbmRleF0KIyAgICAgICAgcHJpbnQg
- J3VybCcsdXJsCiAgICAgICAgcGx1Z2lucXVlcnlieUpTT04odXJsKQoKZGVmIGFkZERpcihuYW1l
- LHVybCxtb2RlLGljb25pbWFnZSxmYW5hcnQsZGVzY3JpcHRpb24sZ2VucmUsZGF0ZSxjcmVkaXRz
- LHNob3djb250ZXh0PUZhbHNlLHJlZ2V4cz1Ob25lLHJlZ191cmw9Tm9uZSxhbGxpbmZvPXt9KToK
- CgoKICAgICAgICBpZiByZWdleHMgYW5kIGxlbihyZWdleHMpPjA6CiAgICAgICAgICAgIHU9c3lz
- LmFyZ3ZbMF0rIj91cmw9Iit1cmxsaWIucXVvdGVfcGx1cyh1cmwpKyImbW9kZT0iK3N0cihtb2Rl
- KSsiJm5hbWU9Iit1cmxsaWIucXVvdGVfcGx1cyhuYW1lKSsiJmZhbmFydD0iK3VybGxpYi5xdW90
- ZV9wbHVzKGZhbmFydCkrIiZyZWdleHM9IityZWdleHMKICAgICAgICBlbHNlOgogICAgICAgICAg
- ICB1PXN5cy5hcmd2WzBdKyI/dXJsPSIrdXJsbGliLnF1b3RlX3BsdXModXJsKSsiJm1vZGU9Iitz
- dHIobW9kZSkrIiZuYW1lPSIrdXJsbGliLnF1b3RlX3BsdXMobmFtZSkrIiZmYW5hcnQ9Iit1cmxs
- aWIucXVvdGVfcGx1cyhmYW5hcnQpCiAgICAgICAgCiAgICAgICAgb2s9VHJ1ZQogICAgICAgIGlm
- IGRhdGUgPT0gJyc6CiAgICAgICAgICAgIGRhdGUgPSBOb25lCiAgICAgICAgZWxzZToKICAgICAg
- ICAgICAgZGVzY3JpcHRpb24gKz0gJ1xuXG5EYXRlOiAlcycgJWRhdGUKICAgICAgICBsaXo9eGJt
- Y2d1aS5MaXN0SXRlbShuYW1lLCBpY29uSW1hZ2U9IkRlZmF1bHRGb2xkZXIucG5nIiwgdGh1bWJu
- YWlsSW1hZ2U9aWNvbmltYWdlKQogICAgICAgIGlmIGxlbihhbGxpbmZvKSA8MSA6CiAgICAgICAg
- ICAgIGxpei5zZXRJbmZvKHR5cGU9IlZpZGVvIiwgaW5mb0xhYmVscz17ICJUaXRsZSI6IG5hbWUs
- ICJQbG90IjogZGVzY3JpcHRpb24sICJHZW5yZSI6IGdlbnJlLCAiZGF0ZWFkZGVkIjogZGF0ZSwg
- ImNyZWRpdHMiOiBjcmVkaXRzIH0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbGl6LnNldElu
- Zm8odHlwZT0iVmlkZW8iLCBpbmZvTGFiZWxzPSBhbGxpbmZvKQogICAgICAgIGxpei5zZXRQcm9w
- ZXJ0eSgiRmFuYXJ0X0ltYWdlIiwgZmFuYXJ0KQogICAgICAgIGlmIHNob3djb250ZXh0OgogICAg
- ICAgICAgICBjb250ZXh0TWVudSA9IFtdCiAgICAgICAgICAgIHBhcmVudGFsYmxvY2sgPWFkZG9u
- LmdldFNldHRpbmcoJ3BhcmVudGFsYmxvY2tlZCcpCiAgICAgICAgICAgIHBhcmVudGFsYmxvY2s9
- IHBhcmVudGFsYmxvY2s9PSJ0cnVlIgogICAgICAgICAgICBwYXJlbnRhbGJsb2NrZWRwaW4gPWFk
- ZG9uLmdldFNldHRpbmcoJ3BhcmVudGFsYmxvY2tlZHBpbicpCiMgICAgICAgICAgICBwcmludCAn
- cGFyZW50YWxibG9ja2VkcGluJyxwYXJlbnRhbGJsb2NrZWRwaW4KICAgICAgICAgICAgaWYgbGVu
- KHBhcmVudGFsYmxvY2tlZHBpbik+MDoKICAgICAgICAgICAgICAgIGlmIHBhcmVudGFsYmxvY2s6
- CiAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnQ29jaW5hVHUgQWN0aXZh
- ciBCbG9xdWVvIFBhcmVudGFsJywnWEJNQy5SdW5QbHVnaW4oJXM/bW9kZT01NSZuYW1lPSVzKScg
- JShzeXMuYXJndlswXSwgdXJsbGliLnF1b3RlX3BsdXMobmFtZSkpKSkKICAgICAgICAgICAgICAg
- IGVsc2U6CiAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnQ29jaW5hVHUg
- QmxvcXVlbyBQYXJlbnRhbCBEZXNhY3RpdmFkbycsJ1hCTUMuUnVuUGx1Z2luKCVzP21vZGU9NTYm
- bmFtZT0lcyknICUoc3lzLmFyZ3ZbMF0sIHVybGxpYi5xdW90ZV9wbHVzKG5hbWUpKSkpCiAgICAg
- ICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIHNob3djb250ZXh0ID09ICdzb3VyY2UnOgog
- ICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIG5hbWUgaW4gc3RyKFNPVVJDRVMpOgogICAg
- ICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZCgoJ1JlbW92ZSBmcm9tIFNvdXJjZXMn
- LCdYQk1DLlJ1blBsdWdpbiglcz9tb2RlPTgmbmFtZT0lcyknICUoc3lzLmFyZ3ZbMF0sIHVybGxp
- Yi5xdW90ZV9wbHVzKG5hbWUpKSkpCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
- ICAgICAgCiAgICAgICAgICAgIGVsaWYgc2hvd2NvbnRleHQgPT0gJ2Rvd25sb2FkJzoKICAgICAg
- ICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZCgoJ0Rvd25sb2FkJywnWEJNQy5SdW5QbHVnaW4o
- JXM/dXJsPSVzJm1vZGU9OSZuYW1lPSVzKScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgJShzeXMuYXJndlswXSwgdXJsbGliLnF1b3RlX3BsdXModXJsKSwgdXJsbGliLnF1b3Rl
- X3BsdXMobmFtZSkpKSkKICAgICAgICAgICAgZWxpZiBzaG93Y29udGV4dCA9PSAnZmF2JzoKICAg
- ICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZCgoJ0JvcnJhciBkZSBGYXZvcml0b3MgQ29j
- aW5hVHUnLCdYQk1DLlJ1blBsdWdpbiglcz9tb2RlPTYmbmFtZT0lcyknCiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICUoc3lzLmFyZ3ZbMF0sIHVybGxpYi5xdW90ZV9wbHVzKG5h
- bWUpKSkpCiAgICAgICAgICAgIGlmIHNob3djb250ZXh0ID09ICchIXVwZGF0ZSc6CiAgICAgICAg
- ICAgICAgICBmYXZfcGFyYW1zMiA9ICgKICAgICAgICAgICAgICAgICAgICAnJXM/dXJsPSVzJm1v
- ZGU9MTcmcmVnZXhzPSVzJwogICAgICAgICAgICAgICAgICAgICUoc3lzLmFyZ3ZbMF0sIHVybGxp
- Yi5xdW90ZV9wbHVzKHJlZ191cmwpLCByZWdleHMpCiAgICAgICAgICAgICAgICAgICAgKQogICAg
- ICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnW0NPTE9SIGdvbGRdQ29jaW5hVHVbL0NP
- TE9SXScsJ1hCTUMuUnVuUGx1Z2luKCVzKScgJWZhdl9wYXJhbXMyKSkKICAgICAgICAgICAgaWYg
- bm90IG5hbWUgaW4gRkFWOgogICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnQWdy
- ZWdhciBhIEZhdm9yaXRvcyBkZSBDb2NpbmFUdScsJ1hCTUMuUnVuUGx1Z2luKCVzP21vZGU9NSZu
- YW1lPSVzJnVybD0lcyZpY29uaW1hZ2U9JXMmZmFuYXJ0PSVzJmZhdl9tb2RlPSVzKScKICAgICAg
- ICAgICAgICAgICAgICAgICAgICUoc3lzLmFyZ3ZbMF0sIHVybGxpYi5xdW90ZV9wbHVzKG5hbWUp
- LCB1cmxsaWIucXVvdGVfcGx1cyh1cmwpLCB1cmxsaWIucXVvdGVfcGx1cyhpY29uaW1hZ2UpLCB1
- cmxsaWIucXVvdGVfcGx1cyhmYW5hcnQpLCBtb2RlKSkpCiAgICAgICAgICAgIGxpei5hZGRDb250
- ZXh0TWVudUl0ZW1zKGNvbnRleHRNZW51KQogICAgICAgIG9rPXhibWNwbHVnaW4uYWRkRGlyZWN0
- b3J5SXRlbShoYW5kbGU9aW50KHN5cy5hcmd2WzFdKSx1cmw9dSxsaXN0aXRlbT1saXosaXNGb2xk
- ZXI9VHJ1ZSkKICAgICAgICByZXR1cm4gb2sKZGVmIHl0ZGxfZG93bmxvYWQodXJsLHRpdGxlLG1l
- ZGlhX3R5cGU9J3ZpZGVvJyk6CiAgICAjIHBsYXkgaW4geGJtYyB3aGlsZSBwbGF5aW5nIGdvIGJh
- Y2sgdG8gY29udGV4dE1lbnUoYykgdG8gIiEhRG93bmxvYWQhISIKICAgICMgVHJpYWwgeWFzY2Vl
- bjogc2VwZXJhdGUgfFVzZXItQWdlbnQ9CiAgICBpbXBvcnQgeW91dHViZWRsCiAgICAKICAgIGlm
- IG5vdCB1cmwgPT0gJyc6CiAgICAgICAgaWYgbWVkaWFfdHlwZT09ICdhdWRpbyc6CiAgICAgICAg
- ICAgIHlvdXR1YmVkbC5zaW5nbGVfWUQodXJsLGRvd25sb2FkPVRydWUsYXVkaW89VHJ1ZSkKICAg
- ICAgICBlbHNlOgogICAgICAgICAgICB5b3V0dWJlZGwuc2luZ2xlX1lEKHVybCxkb3dubG9hZD1U
- cnVlKQogICAgZWxpZiB4Ym1jLlBsYXllcigpLmlzUGxheWluZygpID09IFRydWUgOgogICAgICAg
- IGltcG9ydCBZRFN0cmVhbUV4dHJhY3RvcgogICAgICAgIGlmIFlEU3RyZWFtRXh0cmFjdG9yLmlz
- RG93bmxvYWRpbmcoKSA9PSBUcnVlOgoKICAgICAgICAgICAgWURTdHJlYW1FeHRyYWN0b3IubWFu
- YWdlRG93bmxvYWRzKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICB4Ym1jX3VybCA9IHhibWMu
- UGxheWVyKCkuZ2V0UGxheWluZ0ZpbGUoKQoKICAgICAgICAgICAgeGJtY191cmwgPSB4Ym1jX3Vy
- bC5zcGxpdCgnfFVzZXItQWdlbnQ9JylbMF0KICAgICAgICAgICAgaW5mbyA9IHsndXJsJzp4Ym1j
- X3VybCwndGl0bGUnOnRpdGxlLCdtZWRpYV90eXBlJzptZWRpYV90eXBlfQogICAgICAgICAgICB5
- b3V0dWJlZGwuc2luZ2xlX1lEKCcnLGRvd25sb2FkPVRydWUsZGxfaW5mbz1pbmZvKQogICAgZWxz
- ZToKICAgICAgICB4Ym1jLmV4ZWN1dGVidWlsdGluKCJYQk1DLk5vdGlmaWNhdGlvbihET1dOTE9B
- RCxGaXJzdCBQbGF5IFtDT0xPUiB5ZWxsb3ddV0hJTEUgcGxheWluZyBkb3dubG9hZFsvQ09MT1Jd
- ICwxMDAwMCkiKQoKIyMgTHVuYXRpeHogUHNldWRvVFYgZmVhdHVyZQpkZWYgYXNjaWkoc3RyaW5n
- KToKICAgIGlmIGlzaW5zdGFuY2Uoc3RyaW5nLCBiYXNlc3RyaW5nKToKICAgICAgICBpZiBpc2lu
- c3RhbmNlKHN0cmluZywgdW5pY29kZSk6CiAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLmVuY29k
- ZSgnYXNjaWknLCAnaWdub3JlJykKICAgIHJldHVybiBzdHJpbmcKZGVmIHVuaShzdHJpbmcsIGVu
- Y29kaW5nID0gJ3V0Zi04Jyk6CiAgICBpZiBpc2luc3RhbmNlKHN0cmluZywgYmFzZXN0cmluZyk6
- CiAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3RyaW5nLCB1bmljb2RlKToKICAgICAgICAgICAg
- c3RyaW5nID0gdW5pY29kZShzdHJpbmcsIGVuY29kaW5nLCAnaWdub3JlJykKICAgIHJldHVybiBz
- dHJpbmcKZGVmIHJlbW92ZU5vbkFzY2lpKHMpOiByZXR1cm4gIiIuam9pbihmaWx0ZXIobGFtYmRh
- IHg6IG9yZCh4KTwxMjgsIHMpKQoKZGVmIHNlbmRKU09OKCBjb21tYW5kKToKICAgIGRhdGEgPSAn
- JwogICAgdHJ5OgogICAgICAgIGRhdGEgPSB4Ym1jLmV4ZWN1dGVKU09OUlBDKHVuaShjb21tYW5k
- KSkKICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CiAgICAgICAgZGF0YSA9IHhibWMuZXhl
- Y3V0ZUpTT05SUEMoYXNjaWkoY29tbWFuZCkpCgogICAgcmV0dXJuIHVuaShkYXRhKQoKZGVmIHBs
- dWdpbnF1ZXJ5YnlKU09OKHVybCxnaXZlX21lX3Jlc3VsdD1Ob25lLHBsYXlsaXN0PUZhbHNlKToK
- ICAgIGlmICdhdWRpbycgaW4gdXJsOgogICAgICAgIGpzb25fcXVlcnkgPSB1bmkoJ3sianNvbnJw
- YyI6IjIuMCIsIm1ldGhvZCI6IkZpbGVzLkdldERpcmVjdG9yeSIsInBhcmFtcyI6IHsiZGlyZWN0
- b3J5IjoiJXMiLCJtZWRpYSI6InZpZGVvIiwgInByb3BlcnRpZXMiOiBbInRpdGxlIiwgImFsYnVt
- IiwgImFydGlzdCIsICJkdXJhdGlvbiIsInRodW1ibmFpbCIsICJ5ZWFyIl19LCAiaWQiOiAxfScp
- ICV1cmwKICAgIGVsc2U6CiAgICAgICAganNvbl9xdWVyeSA9IHVuaSgneyJqc29ucnBjIjoiMi4w
- IiwibWV0aG9kIjoiRmlsZXMuR2V0RGlyZWN0b3J5IiwicGFyYW1zIjp7ImRpcmVjdG9yeSI6IiVz
- IiwibWVkaWEiOiJ2aWRlbyIsInByb3BlcnRpZXMiOlsgInBsb3QiLCJwbGF5Y291bnQiLCJkaXJl
- Y3RvciIsICJnZW5yZSIsInZvdGVzIiwiZHVyYXRpb24iLCJ0cmFpbGVyIiwicHJlbWllcmVkIiwi
- dGh1bWJuYWlsIiwidGl0bGUiLCJ5ZWFyIiwiZGF0ZWFkZGVkIiwiZmFuYXJ0IiwicmF0aW5nIiwi
- c2Vhc29uIiwiZXBpc29kZSIsInN0dWRpbyIsIm1wYWEiXX0sImlkIjoxfScpICV1cmwKICAgIGpz
- b25fZm9sZGVyX2RldGFpbCA9IGpzb24ubG9hZHMoc2VuZEpTT04oanNvbl9xdWVyeSkpCiAgICAj
- cHJpbnQganNvbl9mb2xkZXJfZGV0YWlsCiAgICBpZiBnaXZlX21lX3Jlc3VsdDoKICAgICAgICBy
- ZXR1cm4ganNvbl9mb2xkZXJfZGV0YWlsCiAgICBpZiBqc29uX2ZvbGRlcl9kZXRhaWwuaGFzX2tl
- eSgnZXJyb3InKToKICAgICAgICByZXR1cm4KICAgIGVsc2U6CgogICAgICAgIGZvciBpIGluIGpz
- b25fZm9sZGVyX2RldGFpbFsncmVzdWx0J11bJ2ZpbGVzJ10gOgogICAgICAgICAgICBtZXRhID17
- fQogICAgICAgICAgICB1cmwgPSBpWydmaWxlJ10KICAgICAgICAgICAgbmFtZSA9IHJlbW92ZU5v
- bkFzY2lpKGlbJ2xhYmVsJ10pCiAgICAgICAgICAgIHRodW1ibmFpbCA9IHJlbW92ZU5vbkFzY2lp
- KGlbJ3RodW1ibmFpbCddKQogICAgICAgICAgICBmYW5hcnQgPSByZW1vdmVOb25Bc2NpaShpWydm
- YW5hcnQnXSkKICAgICAgICAgICAgbWV0YSA9IGRpY3QoKGssdikgZm9yIGssIHYgaW4gaS5pdGVy
- aXRlbXMoKSBpZiBub3QgdiA9PSAnMCcgb3Igbm90IHYgPT0gLTEgb3IgdiA9PSAnJykKICAgICAg
- ICAgICAgbWV0YS5wb3AoImZpbGUiLCBOb25lKQogICAgICAgICAgICBpZiBpWydmaWxldHlwZSdd
- ID09ICdmaWxlJzoKICAgICAgICAgICAgICAgIGlmIHBsYXlsaXN0OgogICAgICAgICAgICAgICAg
- ICAgIHBsYXlfcGxheWxpc3QobmFtZSx1cmwscXVldWVWaWRlbz0nMScpCiAgICAgICAgICAgICAg
- ICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAg
- YWRkTGluayh1cmwsbmFtZSx0aHVtYm5haWwsZmFuYXJ0LCcnLCcnLCcnLCcnLE5vbmUsJycsdG90
- YWw9bGVuKGpzb25fZm9sZGVyX2RldGFpbFsncmVzdWx0J11bJ2ZpbGVzJ10pLGFsbGluZm89bWV0
- YSkKICAgICAgICAgICAgICAgICAgICAjeGJtYy5leGVjdXRlYnVpbHRpbigiQ29udGFpbmVyLlNl
- dFZpZXdNb2RlKDUwMCkiKQogICAgICAgICAgICAgICAgICAgIGlmIGlbJ3R5cGUnXSBhbmQgaVsn
- dHlwZSddID09ICd0dnNob3cnIDoKICAgICAgICAgICAgICAgICAgICAgICAgeGJtY3BsdWdpbi5z
- ZXRDb250ZW50KGludChzeXMuYXJndlsxXSksICd0dnNob3dzJykKICAgICAgICAgICAgICAgICAg
- ICBlbGlmIGlbJ2VwaXNvZGUnXSA+IDAgOgogICAgICAgICAgICAgICAgICAgICAgICB4Ym1jcGx1
- Z2luLnNldENvbnRlbnQoaW50KHN5cy5hcmd2WzFdKSwgJ2VwaXNvZGVzJykKCiAgICAgICAgICAg
- IGVsc2U6CiAgICAgICAgICAgICAgICBhZGREaXIobmFtZSx1cmwsNTMsdGh1bWJuYWlsLGZhbmFy
- dCwnJywnJywnJywnJyxhbGxpbmZvPW1ldGEpCiAgICAgICAgeGJtY3BsdWdpbi5lbmRPZkRpcmVj
- dG9yeShpbnQoc3lzLmFyZ3ZbMV0pKQoKZGVmIGFkZExpbmsodXJsLG5hbWUsaWNvbmltYWdlLGZh
- bmFydCxkZXNjcmlwdGlvbixnZW5yZSxkYXRlLHNob3djb250ZXh0LHBsYXlsaXN0LHJlZ2V4cyx0
- b3RhbCxzZXRDb29raWU9IiIsYWxsaW5mbz17fSk6CiAgICAgICAgI3ByaW50ICd1cmwsbmFtZScs
- dXJsLG5hbWUsaWNvbmltYWdlCiAgICAgICAgY29udGV4dE1lbnUgPVtdCiAgICAgICAgcGFyZW50
- YWxibG9jayA9YWRkb24uZ2V0U2V0dGluZygncGFyZW50YWxibG9ja2VkJykKICAgICAgICBwYXJl
- bnRhbGJsb2NrPSBwYXJlbnRhbGJsb2NrPT0idHJ1ZSIKICAgICAgICBwYXJlbnRhbGJsb2NrZWRw
- aW4gPWFkZG9uLmdldFNldHRpbmcoJ3BhcmVudGFsYmxvY2tlZHBpbicpCiMgICAgICAgIHByaW50
- ICdwYXJlbnRhbGJsb2NrZWRwaW4nLHBhcmVudGFsYmxvY2tlZHBpbgogICAgICAgIGlmIGxlbihw
- YXJlbnRhbGJsb2NrZWRwaW4pPjA6CiAgICAgICAgICAgIGlmIHBhcmVudGFsYmxvY2s6CiAgICAg
- ICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmQoKCdDb2NpbmFUdSBBY3RpdmFyIEJsb3F1ZW8g
- UGFyZW50YWwnLCdYQk1DLlJ1blBsdWdpbiglcz9tb2RlPTU1Jm5hbWU9JXMpJyAlKHN5cy5hcmd2
- WzBdLCB1cmxsaWIucXVvdGVfcGx1cyhuYW1lKSkpKQogICAgICAgICAgICBlbHNlOgogICAgICAg
- ICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnQ29jaW5hVHUgRGVzYWN0aXZhciBCbG9xdWVv
- IFBhcmVudGFsJywnWEJNQy5SdW5QbHVnaW4oJXM/bW9kZT01NiZuYW1lPSVzKScgJShzeXMuYXJn
- dlswXSwgdXJsbGliLnF1b3RlX3BsdXMobmFtZSkpKSkKICAgICAgICAgICAgICAgICAgICAKICAg
- ICAgICB0cnk6CiAgICAgICAgICAgIG5hbWUgPSBuYW1lLmVuY29kZSgndXRmLTgnKQogICAgICAg
- IGV4Y2VwdDogcGFzcwogICAgICAgIG9rID0gVHJ1ZQogICAgICAgIGlzRm9sZGVyPUZhbHNlCiAg
- ICAgICAgaWYgcmVnZXhzOgogICAgICAgICAgICBtb2RlID0gJzE3JwogICAgICAgICAgICBpZiAn
- bGlzdHJlcGVhdCcgaW4gcmVnZXhzOgogICAgICAgICAgICAgICAgaXNGb2xkZXI9VHJ1ZQojICAg
- ICAgICAgICAgICAgIHByaW50ICdzZXR0aW5nIGFzIGZvbGRlciBpbiBsaW5rJwogICAgICAgICAg
- ICBjb250ZXh0TWVudS5hcHBlbmQoKCdbQ09MT1Igd2hpdGVdISFEb3dubG9hZCBDdXJyZW50bHkg
- UGxheWluZyEhWy9DT0xPUl0nLCdYQk1DLlJ1blBsdWdpbiglcz91cmw9JXMmbW9kZT0yMSZuYW1l
- PSVzKScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJShzeXMuYXJndlswXSwg
- dXJsbGliLnF1b3RlX3BsdXModXJsKSwgdXJsbGliLnF1b3RlX3BsdXMobmFtZSkpKSkKICAgICAg
- ICBlbGlmICAoYW55KHggaW4gdXJsIGZvciB4IGluIHJlc29sdmVfdXJsKSBhbmQgIHVybC5zdGFy
- dHN3aXRoKCdodHRwJykpIG9yIHVybC5lbmRzd2l0aCgnJm1vZGU9MTknKToKICAgICAgICAgICAg
- dXJsPXVybC5yZXBsYWNlKCcmbW9kZT0xOScsJycpCiAgICAgICAgICAgIG1vZGUgPSAnMTknCiAg
- ICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZCgoJ1tDT0xPUiB3aGl0ZV0hIURvd25sb2FkIEN1
- cnJlbnRseSBQbGF5aW5nISFbL0NPTE9SXScsJ1hCTUMuUnVuUGx1Z2luKCVzP3VybD0lcyZtb2Rl
- PTIxJm5hbWU9JXMpJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlKHN5cy5h
- cmd2WzBdLCB1cmxsaWIucXVvdGVfcGx1cyh1cmwpLCB1cmxsaWIucXVvdGVfcGx1cyhuYW1lKSkp
- KQogICAgICAgIGVsaWYgdXJsLmVuZHN3aXRoKCcmbW9kZT0xOCcpOgogICAgICAgICAgICB1cmw9
- dXJsLnJlcGxhY2UoJyZtb2RlPTE4JywnJykKICAgICAgICAgICAgbW9kZSA9ICcxOCcKICAgICAg
- ICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnW0NPTE9SIHdoaXRlXSEhRG93bmxvYWQhIVsvQ09M
- T1JdJywnWEJNQy5SdW5QbHVnaW4oJXM/dXJsPSVzJm1vZGU9MjMmbmFtZT0lcyknCiAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICUoc3lzLmFyZ3ZbMF0sIHVybGxpYi5xdW90ZV9w
- bHVzKHVybCksIHVybGxpYi5xdW90ZV9wbHVzKG5hbWUpKSkpCiAgICAgICAgICAgIGlmIGFkZG9u
- LmdldFNldHRpbmcoJ2RsYXVkaW9vbmx5JykgPT0gJ3RydWUnOgogICAgICAgICAgICAgICAgY29u
- dGV4dE1lbnUuYXBwZW5kKCgnISFEb3dubG9hZCBbQ09MT1Igc2VhYmx1ZV1BdWRpbyEhWy9DT0xP
- Ul0nLCdYQk1DLlJ1blBsdWdpbiglcz91cmw9JXMmbW9kZT0yNCZuYW1lPSVzKScKICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUoc3lzLmFyZ3ZbMF0sIHVybGxpYi5xdW90
- ZV9wbHVzKHVybCksIHVybGxpYi5xdW90ZV9wbHVzKG5hbWUpKSkpCiAgICAgICAgZWxpZiB1cmwu
- c3RhcnRzd2l0aCgnbWFnbmV0Oj94dD0nKToKICAgICAgICAgICAgaWYgJyYnIGluIHVybCBhbmQg
- bm90ICcmYW1wOycgaW4gdXJsIDoKICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCcm
- JywnJmFtcDsnKQogICAgICAgICAgICB1cmwgPSAncGx1Z2luOi8vcGx1Z2luLnZpZGVvLnB1bHNh
- ci9wbGF5P3VyaT0nICsgdXJsCiAgICAgICAgICAgIG1vZGUgPSAnMTInCiAgICAgICAgZWxzZToK
- ICAgICAgICAgICAgbW9kZSA9ICcxMicKICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgn
- W0NPTE9SIHdoaXRlXSEhRG93bmxvYWQgQ3VycmVudGx5IFBsYXlpbmchIVsvQ09MT1JdJywnWEJN
- Qy5SdW5QbHVnaW4oJXM/dXJsPSVzJm1vZGU9MjEmbmFtZT0lcyknCiAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICUoc3lzLmFyZ3ZbMF0sIHVybGxpYi5xdW90ZV9wbHVzKHVybCks
- IHVybGxpYi5xdW90ZV9wbHVzKG5hbWUpKSkpCiAgICAgICAgaWYgJ3BsdWdpbjovL3BsdWdpbi52
- aWRlby55b3V0dWJlL3BsYXkvP3ZpZGVvX2lkPScgaW4gdXJsOgogICAgICAgICAgICAgIHl0X2F1
- ZGlvX3VybCA9IHVybC5yZXBsYWNlKCdwbHVnaW46Ly9wbHVnaW4udmlkZW8ueW91dHViZS9wbGF5
- Lz92aWRlb19pZD0nLCdodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PScpCiAgICAgICAg
- ICAgICAgY29udGV4dE1lbnUuYXBwZW5kKCgnISFEb3dubG9hZCBbQ09MT1IgYmx1ZV1BdWRpbyEh
- Wy9DT0xPUl0nLCdYQk1DLlJ1blBsdWdpbiglcz91cmw9JXMmbW9kZT0yNCZuYW1lPSVzKScKICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlKHN5cy5hcmd2WzBdLCB1cmxsaWIu
- cXVvdGVfcGx1cyh5dF9hdWRpb191cmwpLCB1cmxsaWIucXVvdGVfcGx1cyhuYW1lKSkpKQogICAg
- ICAgIHU9c3lzLmFyZ3ZbMF0rIj8iCiAgICAgICAgcGxheV9saXN0ID0gRmFsc2UKICAgICAgICBp
- ZiBwbGF5bGlzdDoKICAgICAgICAgICAgaWYgYWRkb24uZ2V0U2V0dGluZygnYWRkX3BsYXlsaXN0
- JykgPT0gImZhbHNlIiBhbmQgJyQkTFNQbGF5T25seU9uZSQkJyBub3QgaW4gcGxheWxpc3RbMF0g
- OgogICAgICAgICAgICAgICAgdSArPSAidXJsPSIrdXJsbGliLnF1b3RlX3BsdXModXJsKSsiJm1v
- ZGU9Iittb2RlCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICB1ICs9ICJtb2RlPTEz
- Jm5hbWU9JXMmcGxheWxpc3Q9JXMiICUodXJsbGliLnF1b3RlX3BsdXMobmFtZSksIHVybGxpYi5x
- dW90ZV9wbHVzKHN0cihwbGF5bGlzdCkucmVwbGFjZSgnLCcsJ3x8JykpKQogICAgICAgICAgICAg
- ICAgbmFtZSA9IG5hbWUgKyAnW0NPTE9SIG1hZ2VudGFdICgnICsgc3RyKGxlbihwbGF5bGlzdCkp
- ICsgJyBpdGVtcyApWy9DT0xPUl0nCiAgICAgICAgICAgICAgICBwbGF5X2xpc3QgPSBUcnVlCiAg
- ICAgICAgZWxzZToKICAgICAgICAgICAgdSArPSAidXJsPSIrdXJsbGliLnF1b3RlX3BsdXModXJs
- KSsiJm1vZGU9Iittb2RlCiAgICAgICAgaWYgcmVnZXhzOgogICAgICAgICAgICB1ICs9ICImcmVn
- ZXhzPSIrcmVnZXhzCiAgICAgICAgaWYgbm90IHNldENvb2tpZSA9PSAnJzoKICAgICAgICAgICAg
- dSArPSAiJnNldENvb2tpZT0iK3VybGxpYi5xdW90ZV9wbHVzKHNldENvb2tpZSkKICAgICAgICBp
- ZiBpY29uaW1hZ2UgYW5kICBub3QgaWNvbmltYWdlID09ICcnOgogICAgICAgICAgICB1ICs9ICIm
- aWNvbmltYWdlPSIrdXJsbGliLnF1b3RlX3BsdXMoaWNvbmltYWdlKQogICAgICAgICAgICAKICAg
- ICAgICBpZiBkYXRlID09ICcnOgogICAgICAgICAgICBkYXRlID0gTm9uZQogICAgICAgIGVsc2U6
- CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9ICdcblxuRGF0ZTogJXMnICVkYXRlCiAgICAgICAg
- bGl6PXhibWNndWkuTGlzdEl0ZW0obmFtZSwgaWNvbkltYWdlPSJEZWZhdWx0VmlkZW8ucG5nIiwg
- dGh1bWJuYWlsSW1hZ2U9aWNvbmltYWdlKQogICAgICAgICNpZiBpc0ZvbGRlcjoKICAgICAgICBp
- ZiBhbGxpbmZvPT1Ob25lIG9yIGxlbihhbGxpbmZvKSA8MToKICAgICAgICAgICAgbGl6LnNldElu
- Zm8odHlwZT0iVmlkZW8iLCBpbmZvTGFiZWxzPXsgIlRpdGxlIjogbmFtZSwgIlBsb3QiOiBkZXNj
- cmlwdGlvbiwgIkdlbnJlIjogZ2VucmUsICJkYXRlYWRkZWQiOiBkYXRlIH0pCiAgICAgICAgZWxz
- ZToKICAgICAgICAgICAgbGl6LnNldEluZm8odHlwZT0iVmlkZW8iLCBpbmZvTGFiZWxzPWFsbGlu
- Zm8pCiAgICAgICAgbGl6LnNldFByb3BlcnR5KCJGYW5hcnRfSW1hZ2UiLCBmYW5hcnQpCiAgICAg
- ICAgCiAgICAgICAgaWYgKG5vdCBwbGF5X2xpc3QpIGFuZCBub3QgYW55KHggaW4gdXJsIGZvciB4
- IGluIGdfaWdub3JlU2V0UmVzb2x2ZWQpIGFuZCBub3QgJyRQTEFZRVJQUk9YWSQ9JyBpbiB1cmw6
- IyAgKG5vdCB1cmwuc3RhcnRzd2l0aCgncGx1Z2luOi8vcGx1Z2luLnZpZGVvLmY0bVRlc3Rlcicp
- KToKICAgICAgICAgICAgaWYgcmVnZXhzOgogICAgICAgICAgICAgICAgI3ByaW50IHVybGxpYi51
- bnF1b3RlX3BsdXMocmVnZXhzKQogICAgICAgICAgICAgICAgaWYgJyRweUZ1bmN0aW9uOnBsYXlt
- ZWRpYSgnIG5vdCBpbiB1cmxsaWIudW5xdW90ZV9wbHVzKHJlZ2V4cykgYW5kICdub3RwbGF5YWJs
- ZScgbm90IGluIHVybGxpYi51bnF1b3RlX3BsdXMocmVnZXhzKSBhbmQgJ2xpc3RyZXBlYXQnIG5v
- dCBpbiAgdXJsbGliLnVucXVvdGVfcGx1cyhyZWdleHMpIDoKICAgICAgICAgICAgICAgICAgICAj
- cHJpbnQgJ3NldHRpbmcgaXNwbGF5YWJsZScsdXJsLCB1cmxsaWIudW5xdW90ZV9wbHVzKHJlZ2V4
- cyksdXJsCiAgICAgICAgICAgICAgICAgICAgbGl6LnNldFByb3BlcnR5KCdJc1BsYXlhYmxlJywg
- J3RydWUnKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgbGl6LnNldFByb3BlcnR5
- KCdJc1BsYXlhYmxlJywgJ3RydWUnKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGFkZG9uX2xv
- ZyggJ05PVCBzZXR0aW5nIGlzcGxheWFibGUnK3VybCkKICAgICAgICBpZiBzaG93Y29udGV4dDoK
- ICAgICAgICAgICAgI2NvbnRleHRNZW51ID0gW10KICAgICAgICAgICAgaWYgc2hvd2NvbnRleHQg
- PT0gJ2Zhdic6CiAgICAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmQoCiAgICAgICAgICAg
- ICAgICAgICAgKCdCb3JyYWRvIGRlIEZhdm9ydGl0b3MgZGUgQ29jaW5hVHUnLCdYQk1DLlJ1blBs
- dWdpbiglcz9tb2RlPTYmbmFtZT0lcyknCiAgICAgICAgICAgICAgICAgICAgICUoc3lzLmFyZ3Zb
- MF0sIHVybGxpYi5xdW90ZV9wbHVzKG5hbWUpKSkKICAgICAgICAgICAgICAgICAgICAgKQogICAg
- ICAgICAgICBlbGlmIG5vdCBuYW1lIGluIEZBVjoKICAgICAgICAgICAgICAgIHRyeToKICAgICAg
- ICAgICAgICAgICAgICBmYXZfcGFyYW1zID0gKAogICAgICAgICAgICAgICAgICAgICAgICAnJXM/
- bW9kZT01Jm5hbWU9JXMmdXJsPSVzJmljb25pbWFnZT0lcyZmYW5hcnQ9JXMmZmF2X21vZGU9MCcK
- ICAgICAgICAgICAgICAgICAgICAgICAgJShzeXMuYXJndlswXSwgdXJsbGliLnF1b3RlX3BsdXMo
- bmFtZSksIHVybGxpYi5xdW90ZV9wbHVzKHVybCksIHVybGxpYi5xdW90ZV9wbHVzKGljb25pbWFn
- ZSksIHVybGxpYi5xdW90ZV9wbHVzKGZhbmFydCkpCiAgICAgICAgICAgICAgICAgICAgICAgICkK
- ICAgICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICAgICBmYXZfcGFyYW1zID0g
- KAogICAgICAgICAgICAgICAgICAgICAgICAnJXM/bW9kZT01Jm5hbWU9JXMmdXJsPSVzJmljb25p
- bWFnZT0lcyZmYW5hcnQ9JXMmZmF2X21vZGU9MCcKICAgICAgICAgICAgICAgICAgICAgICAgJShz
- eXMuYXJndlswXSwgdXJsbGliLnF1b3RlX3BsdXMobmFtZSksIHVybGxpYi5xdW90ZV9wbHVzKHVy
- bCksIHVybGxpYi5xdW90ZV9wbHVzKGljb25pbWFnZS5lbmNvZGUoInV0Zi04IikpLCB1cmxsaWIu
- cXVvdGVfcGx1cyhmYW5hcnQuZW5jb2RlKCJ1dGYtOCIpKSkKICAgICAgICAgICAgICAgICAgICAg
- ICAgKQogICAgICAgICAgICAgICAgaWYgcGxheWxpc3Q6CiAgICAgICAgICAgICAgICAgICAgZmF2
- X3BhcmFtcyArPSAncGxheWxpc3Q9Jyt1cmxsaWIucXVvdGVfcGx1cyhzdHIocGxheWxpc3QpLnJl
- cGxhY2UoJywnLCd8fCcpKQogICAgICAgICAgICAgICAgaWYgcmVnZXhzOgogICAgICAgICAgICAg
- ICAgICAgIGZhdl9wYXJhbXMgKz0gIiZyZWdleHM9IityZWdleHMKICAgICAgICAgICAgICAgIGNv
- bnRleHRNZW51LmFwcGVuZCgoJ0FncmVnYXIgYSBmYXZvcml0b3MgZGUgQ29jaW5hVHUnLCdYQk1D
- LlJ1blBsdWdpbiglcyknICVmYXZfcGFyYW1zKSkKICAgICAgICAgICAgbGl6LmFkZENvbnRleHRN
- ZW51SXRlbXMoY29udGV4dE1lbnUpCiAgICAgICAgdHJ5OgogICAgICAgICAgICBpZiBub3QgcGxh
- eWxpc3QgaXMgTm9uZToKICAgICAgICAgICAgICAgIGlmIGFkZG9uLmdldFNldHRpbmcoJ2FkZF9w
- bGF5bGlzdCcpID09ICJmYWxzZSI6CiAgICAgICAgICAgICAgICAgICAgcGxheWxpc3RfbmFtZSA9
- IG5hbWUuc3BsaXQoJykgJylbMV0KICAgICAgICAgICAgICAgICAgICBjb250ZXh0TWVudV8gPSBb
- CiAgICAgICAgICAgICAgICAgICAgICAgICgnUGxheSAnK3BsYXlsaXN0X25hbWUrJyBQbGF5TGlz
- dCcsJ1hCTUMuUnVuUGx1Z2luKCVzP21vZGU9MTMmbmFtZT0lcyZwbGF5bGlzdD0lcyknCiAgICAg
- ICAgICAgICAgICAgICAgICAgICAlKHN5cy5hcmd2WzBdLCB1cmxsaWIucXVvdGVfcGx1cyhwbGF5
- bGlzdF9uYW1lKSwgdXJsbGliLnF1b3RlX3BsdXMoc3RyKHBsYXlsaXN0KS5yZXBsYWNlKCcsJywn
- fHwnKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIGxp
- ei5hZGRDb250ZXh0TWVudUl0ZW1zKGNvbnRleHRNZW51XykKICAgICAgICBleGNlcHQ6IHBhc3MK
- ICAgICAgICAjcHJpbnQgJ2FkZGluZycsbmFtZQogICAgICAgIG9rPXhibWNwbHVnaW4uYWRkRGly
- ZWN0b3J5SXRlbShoYW5kbGU9aW50KHN5cy5hcmd2WzFdKSx1cmw9dSxsaXN0aXRlbT1saXosdG90
- YWxJdGVtcz10b3RhbCxpc0ZvbGRlcj1pc0ZvbGRlcikKCiAgICAgICAgI3ByaW50ICdhZGRlZCcs
- bmFtZQogICAgICAgIHJldHVybiBvawoKICAgICAgICAKZGVmIHBsYXlzZXRyZXNvbHZlZCh1cmws
- bmFtZSxpY29uaW1hZ2Usc2V0cmVzb2x2ZWQ9VHJ1ZSxyZWc9Tm9uZSk6CiAgICBwcmludCAncGxh
- eXNldHJlc29sdmVkJyx1cmwsc2V0cmVzb2x2ZWQKICAgIGlmIHVybD09Tm9uZTogCiAgICAgICAg
- eGJtY3BsdWdpbi5lbmRPZkRpcmVjdG9yeShpbnQoc3lzLmFyZ3ZbMV0pKQogICAgICAgIHJldHVy
- bgogICAgaWYgc2V0cmVzb2x2ZWQ6CiAgICAgICAgc2V0cmVzPVRydWUKICAgICAgICBpZiAnJCRM
- U0RpcmVjdCQkJyBpbiB1cmw6CiAgICAgICAgICAgIHVybD11cmwucmVwbGFjZSgnJCRMU0RpcmVj
- dCQkJywnJykKICAgICAgICAgICAgc2V0cmVzPUZhbHNlCiAgICAgICAgaWYgcmVnIGFuZCAnbm90
- cGxheWFibGUnIGluIHJlZzoKICAgICAgICAgICAgc2V0cmVzPUZhbHNlCgogICAgICAgIGxpeiA9
- IHhibWNndWkuTGlzdEl0ZW0obmFtZSwgaWNvbkltYWdlPWljb25pbWFnZSwgdGh1bWJuYWlsSW1h
- Z2U9aWNvbmltYWdlKQogICAgICAgIGxpei5zZXRJbmZvKHR5cGU9J1ZpZGVvJywgaW5mb0xhYmVs
- cz17J1RpdGxlJzpuYW1lfSkKICAgICAgICBsaXouc2V0UHJvcGVydHkoIklzUGxheWFibGUiLCJ0
- cnVlIikKICAgICAgICBsaXouc2V0UGF0aCh1cmwpCiAgICAgICAgaWYgbm90IHNldHJlczoKICAg
- ICAgICAgICAgeGJtYy5QbGF5ZXIoKS5wbGF5KHVybCkKICAgICAgICBlbHNlOgogICAgICAgICAg
- ICB4Ym1jcGx1Z2luLnNldFJlc29sdmVkVXJsKGludChzeXMuYXJndlsxXSksIFRydWUsIGxpeikK
- ICAgICAgICAgICAKICAgIGVsc2U6CiAgICAgICAgeGJtYy5leGVjdXRlYnVpbHRpbignWEJNQy5S
- dW5QbHVnaW4oJyt1cmwrJyknKQoKCiMjIFRoYW5rcyB0byBkYXNjaGFja2EsIGFuIGVwZyBzY3Jh
- cGVyIGZvciBodHRwOi8vaS50ZWxlYm95LmNoL3Byb2dyYW1tL3N0YXRpb25fc2VsZWN0LnBocAoj
- IyAgaHR0cDovL2ZvcnVtLnhibWMub3JnL3Bvc3QucGhwP3A9OTM2MjI4JnBvc3Rjb3VudD0xMDc2
- CmRlZiBnZXRlcGcobGluayk6CiAgICAgICAgdXJsPXVybGxpYi51cmxvcGVuKGxpbmspCiAgICAg
- ICAgc291cmNlPXVybC5yZWFkKCkKICAgICAgICB1cmwuY2xvc2UoKQogICAgICAgIHNvdXJjZTIg
- PSBzb3VyY2Uuc3BsaXQoIkpldHp0IikKICAgICAgICBzb3VyY2UzID0gc291cmNlMlsxXS5zcGxp
- dCgncHJvZ3JhbW0vZGV0YWlsLnBocD9jb25zdF9pZD0nKQogICAgICAgIHNvdXJjZXVocnplaXQg
- PSBzb3VyY2UzWzFdLnNwbGl0KCc8YnIgLz48YSBocmVmPSIvJykKICAgICAgICBub3d0aW1lID0g
- c291cmNldWhyemVpdFswXVs0MDpsZW4oc291cmNldWhyemVpdFswXSldCiAgICAgICAgc291cmNl
- dGl0bGUgPSBzb3VyY2UzWzJdLnNwbGl0KCI8L2E+PC9wPjwvZGl2PiIpCiAgICAgICAgbm93dGl0
- bGUgPSBzb3VyY2V0aXRsZVswXVsxNzpsZW4oc291cmNldGl0bGVbMF0pXQogICAgICAgIG5vd3Rp
- dGxlID0gbm93dGl0bGUuZW5jb2RlKCd1dGYtOCcpCiAgICAgICAgcmV0dXJuICIgIC0gIitub3d0
- aXRsZSsiIC0gIitub3d0aW1lCgoKZGVmIGdldF9lcGcodXJsLCByZWdleCk6CiAgICAgICAgZGF0
- YSA9IG1ha2VSZXF1ZXN0KHVybCkKICAgICAgICB0cnk6CiAgICAgICAgICAgIGl0ZW0gPSByZS5m
- aW5kYWxsKHJlZ2V4LCBkYXRhKVswXQogICAgICAgICAgICByZXR1cm4gaXRlbQogICAgICAgIGV4
- Y2VwdDoKICAgICAgICAgICAgYWRkb25fbG9nKCdyZWdleCBmYWlsZWQnKQogICAgICAgICAgICBh
- ZGRvbl9sb2cocmVnZXgpCiAgICAgICAgICAgIHJldHVybgoKICAgIAojI25vdCBhIGdlbmVyaWMg
- aW1wbGVtZW5hdGlvbiBhcyBpdCBuZWVkcyB0byBjb252ZXJ0ICAgICAgICAgICAgCmRlZiBkMngo
- ZCwgcm9vdD0icm9vdCIsbmVzdGVkPTApOgoKICAgIG9wID0gbGFtYmRhIHRhZzogJzwnICsgdGFn
- ICsgJz4nCiAgICBjbCA9IGxhbWJkYSB0YWc6ICc8LycgKyB0YWcgKyAnPlxuJwoKICAgIG1sID0g
- bGFtYmRhIHYseG1sOiB4bWwgKyBvcChrZXkpICsgc3RyKHYpICsgY2woa2V5KQogICAgeG1sID0g
- b3Aocm9vdCkgKyAnXG4nIGlmIHJvb3QgZWxzZSAiIgoKICAgIGZvciBrZXksdmwgaW4gZC5pdGVy
- aXRlbXMoKToKICAgICAgICB2dHlwZSA9IHR5cGUodmwpCiAgICAgICAgaWYgbmVzdGVkPT0wOiBr
- ZXk9J3JlZ2V4JyAjZW5mb3JjaW5nIGFsbCB0b3AgbGV2ZWwgdGFncyB0byBiZSBuYW1lZCBhcyBy
- ZWdleAogICAgICAgIGlmIHZ0eXBlIGlzIGxpc3Q6IAogICAgICAgICAgICBmb3IgdiBpbiB2bDoK
- ICAgICAgICAgICAgICAgIHY9ZXNjYXBlKHYpCiAgICAgICAgICAgICAgICB4bWwgPSBtbCh2LHht
- bCkgICAgICAgICAKICAgICAgICAKICAgICAgICBpZiB2dHlwZSBpcyBkaWN0OiAKICAgICAgICAg
- ICAgeG1sID0gbWwoJ1xuJyArIGQyeCh2bCxOb25lLG5lc3RlZCsxKSx4bWwpICAgICAgICAgCiAg
- ICAgICAgaWYgdnR5cGUgaXMgbm90IGxpc3QgYW5kIHZ0eXBlIGlzIG5vdCBkaWN0OiAKICAgICAg
- ICAgICAgaWYgbm90IHZsIGlzIE5vbmU6IHZsPWVzY2FwZSh2bCkKICAgICAgICAgICAgI3ByaW50
- IHJlcHIodmwpCiAgICAgICAgICAgIGlmIHZsIGlzIE5vbmU6CiAgICAgICAgICAgICAgICB4bWwg
- PSBtbCh2bCx4bWwpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAjeG1sID0gbWwo
- ZXNjYXBlKHZsLmVuY29kZSgidXRmLTgiKSkseG1sKQogICAgICAgICAgICAgICAgeG1sID0gbWwo
- dmwuZW5jb2RlKCJ1dGYtOCIpLHhtbCkKCiAgICB4bWwgKz0gY2wocm9vdCkgaWYgcm9vdCBlbHNl
- ICIiCgogICAgcmV0dXJuIHhtbAp4Ym1jcGx1Z2luLnNldENvbnRlbnQoaW50KHN5cy5hcmd2WzFd
- KSwgJ21vdmllcycpCgp0cnk6CiAgICB4Ym1jcGx1Z2luLmFkZFNvcnRNZXRob2QoaW50KHN5cy5h
- cmd2WzFdKSwgeGJtY3BsdWdpbi5TT1JUX01FVEhPRF9VTlNPUlRFRCkKZXhjZXB0OgogICAgcGFz
- cwp0cnk6CiAgICB4Ym1jcGx1Z2luLmFkZFNvcnRNZXRob2QoaW50KHN5cy5hcmd2WzFdKSwgeGJt
- Y3BsdWdpbi5TT1JUX01FVEhPRF9MQUJFTCkKZXhjZXB0OgogICAgcGFzcwp0cnk6CiAgICB4Ym1j
- cGx1Z2luLmFkZFNvcnRNZXRob2QoaW50KHN5cy5hcmd2WzFdKSwgeGJtY3BsdWdpbi5TT1JUX01F
- VEhPRF9EQVRFKQpleGNlcHQ6CiAgICBwYXNzCnRyeToKICAgIHhibWNwbHVnaW4uYWRkU29ydE1l
- dGhvZChpbnQoc3lzLmFyZ3ZbMV0pLCB4Ym1jcGx1Z2luLlNPUlRfTUVUSE9EX0dFTlJFKQpleGNl
- cHQ6CiAgICBwYXNzCgpwYXJhbXM9Z2V0X3BhcmFtcygpCgp1cmw9Tm9uZQpuYW1lPU5vbmUKbW9k
- ZT1Ob25lCnBsYXlsaXN0PU5vbmUKaWNvbmltYWdlPU5vbmUKZmFuYXJ0PUZBTkFSVApwbGF5bGlz
- dD1Ob25lCmZhdl9tb2RlPU5vbmUKcmVnZXhzPU5vbmUKCnRyeToKICAgIHVybD11cmxsaWIudW5x
- dW90ZV9wbHVzKHBhcmFtc1sidXJsIl0pLmRlY29kZSgndXRmLTgnKQpleGNlcHQ6CiAgICBwYXNz
- CnRyeToKICAgIG5hbWU9dXJsbGliLnVucXVvdGVfcGx1cyhwYXJhbXNbIm5hbWUiXSkKZXhjZXB0
- OgogICAgcGFzcwp0cnk6CiAgICBpY29uaW1hZ2U9dXJsbGliLnVucXVvdGVfcGx1cyhwYXJhbXNb
- Imljb25pbWFnZSJdKQpleGNlcHQ6CiAgICBwYXNzCnRyeToKICAgIGZhbmFydD11cmxsaWIudW5x
- dW90ZV9wbHVzKHBhcmFtc1siZmFuYXJ0Il0pCmV4Y2VwdDoKICAgIHBhc3MKdHJ5OgogICAgbW9k
- ZT1pbnQocGFyYW1zWyJtb2RlIl0pCmV4Y2VwdDoKICAgIHBhc3MKdHJ5OgogICAgcGxheWxpc3Q9
- ZXZhbCh1cmxsaWIudW5xdW90ZV9wbHVzKHBhcmFtc1sicGxheWxpc3QiXSkucmVwbGFjZSgnfHwn
- LCcsJykpCmV4Y2VwdDoKICAgIHBhc3MKdHJ5OgogICAgZmF2X21vZGU9aW50KHBhcmFtc1siZmF2
- X21vZGUiXSkKZXhjZXB0OgogICAgcGFzcwp0cnk6CiAgICByZWdleHM9cGFyYW1zWyJyZWdleHMi
- XQpleGNlcHQ6CiAgICBwYXNzCnBsYXlpdGVtPScnCnRyeToKICAgIHBsYXlpdGVtPXVybGxpYi51
- bnF1b3RlX3BsdXMocGFyYW1zWyJwbGF5aXRlbSJdKQpleGNlcHQ6CiAgICBwYXNzCiAgICAKYWRk
- b25fbG9nKCJNb2RlOiAiK3N0cihtb2RlKSkKCgppZiBub3QgdXJsIGlzIE5vbmU6CiAgICBhZGRv
- bl9sb2coIlVSTDogIitzdHIodXJsLmVuY29kZSgndXRmLTgnKSkpCmFkZG9uX2xvZygiTmFtZTog
- IitzdHIobmFtZSkpCgppZiBub3QgcGxheWl0ZW0gPT0nJzoKICAgIHM9Z2V0U291cCgnJyxkYXRh
- PXBsYXlpdGVtKQogICAgbmFtZSx1cmwscmVnZXhzPWdldEl0ZW1zKHMsTm9uZSxkb250TGluaz1U
- cnVlKQogICAgbW9kZT0xMTcgCmlmIG1vZGU9PU5vbmU6CgogICAgaW1wb3J0IHhibWMKICAgIHhi
- bWMuZXhlY3V0ZWJ1aWx0aW4oIlhCTUMuTm90aWZpY2F0aW9uKENvY2luYVR1LFVsdGltYSBWZXJz
- aW9uOiAwLjAuMSwgNzAwMCwiK2ljb24rIikiKQoKCiAgICBhZGRvbl9sb2coImdldFNvdXJjZXMi
- KQogICAgZ2V0U291cmNlcygpCiAgICB4Ym1jcGx1Z2luLmVuZE9mRGlyZWN0b3J5KGludChzeXMu
- YXJndlsxXSkpCgkKICAgIF9fYWRkb25fXyA9IHhibWNhZGRvbi5BZGRvbigpCiAgICBfX2FkZG9u
- bmFtZV9fID0gX19hZGRvbl9fLmdldEFkZG9uSW5mbygnbmFtZScpCgogCiAgICBsaW5lMSA9ICJF
- c3RlIGFkZG9uIGVzIFRvdGFsbWVudGUgZ3JhdHVpdG8uIENvY2luYVR1IG5vIGNvbnRpZW5lIG5p
- bmfDum4gYXJjaGl2byBQcm9waW8gVG9kb3MgTG9zIHF1ZSBIYXkgU29uIgogICAgbGluZTIgPSAi
- UmVjb2xlY3RhZG9zIGRlIGludGVybmV0LCBDb2NpbmFUdSBubyBzZSBoYWNlbiByZXNwb25zYWJs
- ZSBkZSBkaWNobyBjb250ZW5pZG8gIgogICAgbGluZTMgPSAiTmkgZGVsIHVzbyBubyByZXNwb25z
- YWJsZSBkZWwgbWlzbW8uIEVsIGNvcHlyaWdodCBkZSBsYXMgaW3DoWdlbmVzIHBlcnRlbmVjZSBh
- IHN1cyByZXNwZWN0aXZvcyBhdXRvcmVzIHkvbyBwcm9kdWN0b3Jhcy9kaXN0cmlidWlkb3Jhcy4i
- CiAgICB4Ym1jZ3VpLkRpYWxvZygpLm9rKF9fYWRkb25uYW1lX18sIGxpbmUxLCBsaW5lMiwgbGlu
- ZTMpCgkKCgkKZWxpZiBtb2RlPT0xOgogICAgYWRkb25fbG9nKCJnZXREYXRhIikKCQoKICAgIAog
- ICAgZGF0YT1Ob25lCiAgICAKICAgIGlmIHJlZ2V4cyBhbmQgbGVuKHJlZ2V4cyk+MDoKICAgICAg
- ICBkYXRhLHNldHJlc29sdmVkPWdldFJlZ2V4UGFyc2VkKHJlZ2V4cywgdXJsKQogICAgICAgICNw
- cmludCBkYXRhCiAgICAgICAgI3VybD0nJwogICAgICAgIGlmIGRhdGEuc3RhcnRzd2l0aCgnaHR0
- cCcpIG9yIGRhdGEuc3RhcnRzd2l0aCgnc21iJykgb3IgZGF0YS5zdGFydHN3aXRoKCduZnMnKSBv
- ciBkYXRhLnN0YXJ0c3dpdGgoJy8nKToKICAgICAgICAgICAgdXJsPWRhdGEKICAgICAgICAgICAg
- ZGF0YT1Ob25lCiAgICAgICAgI2NyZWF0ZSB4bWwgaGVyZQogICAgCiAgICBnZXREYXRhKHVybCxm
- YW5hcnQsZGF0YSkKICAgIHhibWNwbHVnaW4uZW5kT2ZEaXJlY3RvcnkoaW50KHN5cy5hcmd2WzFd
- KSkKCgoKZWxpZiBtb2RlPT0yOgogICAgYWRkb25fbG9nKCJnZXRDaGFubmVsSXRlbXMiKQogICAg
- Z2V0Q2hhbm5lbEl0ZW1zKG5hbWUsdXJsLGZhbmFydCkKICAgIHhibWNwbHVnaW4uZW5kT2ZEaXJl
- Y3RvcnkoaW50KHN5cy5hcmd2WzFdKSkKCmVsaWYgbW9kZT09MzoKICAgIGFkZG9uX2xvZygiZ2V0
- U3ViQ2hhbm5lbEl0ZW1zIikKICAgIGdldFN1YkNoYW5uZWxJdGVtcyhuYW1lLHVybCxmYW5hcnQp
- CiAgICB4Ym1jcGx1Z2luLmVuZE9mRGlyZWN0b3J5KGludChzeXMuYXJndlsxXSkpCgplbGlmIG1v
- ZGU9PTQ6CiAgICBhZGRvbl9sb2coImdldEZhdm9yaXRlcyIpCiAgICBnZXRGYXZvcml0ZXMoKQog
- ICAgeGJtY3BsdWdpbi5lbmRPZkRpcmVjdG9yeShpbnQoc3lzLmFyZ3ZbMV0pKQoKZWxpZiBtb2Rl
- PT01OgogICAgYWRkb25fbG9nKCJhZGRGYXZvcml0ZSIpCiAgICB0cnk6CiAgICAgICAgbmFtZSA9
- IG5hbWUuc3BsaXQoJ1xcICcpWzFdCiAgICBleGNlcHQ6CiAgICAgICAgcGFzcwogICAgdHJ5Ogog
- ICAgICAgIG5hbWUgPSBuYW1lLnNwbGl0KCcgIC0gJylbMF0KICAgIGV4Y2VwdDoKICAgICAgICBw
- YXNzCiAgICBhZGRGYXZvcml0ZShuYW1lLHVybCxpY29uaW1hZ2UsZmFuYXJ0LGZhdl9tb2RlKQoK
- ZWxpZiBtb2RlPT02OgogICAgYWRkb25fbG9nKCJybUZhdm9yaXRlIikKICAgIHRyeToKICAgICAg
- ICBuYW1lID0gbmFtZS5zcGxpdCgnXFwgJylbMV0KICAgIGV4Y2VwdDoKICAgICAgICBwYXNzCiAg
- ICB0cnk6CiAgICAgICAgbmFtZSA9IG5hbWUuc3BsaXQoJyAgLSAnKVswXQogICAgZXhjZXB0Ogog
- ICAgICAgIHBhc3MKICAgIHJtRmF2b3JpdGUobmFtZSkKCmVsaWYgbW9kZT09NzoKICAgIFNwb3J0
- c0RldmlsKCkKICAgIER1dGNoKCkKCQplbGlmIG1vZGU9PTg6CiAgICBhZGRvbl9sb2coInJtU291
- cmNlIikKICAgIHJtU291cmNlKG5hbWUpCgplbGlmIG1vZGU9PTk6CiAgICBhZGRvbl9sb2coImRv
- d25sb2FkX2ZpbGUiKQogICAgZG93bmxvYWRfZmlsZShuYW1lLCB1cmwpCgplbGlmIG1vZGU9PTEw
- OgogICAgYWRkb25fbG9nKCJnZXRDb21tdW5pdHlTb3VyY2VzIikKICAgIGdldENvbW11bml0eVNv
- dXJjZXMoKQoKZWxpZiBtb2RlPT0xMToKICAgIGFkZG9uX2xvZygiYWRkU291cmNlIikKICAgIGFk
- ZFNvdXJjZSh1cmwpCgplbGlmIG1vZGU9PTEyOgogICAgYWRkb25fbG9nKCJzZXRSZXNvbHZlZFVy
- bCIpCiAgICBpZiBub3QgdXJsLnN0YXJ0c3dpdGgoInBsdWdpbjovL3BsdWdpbiIpIG9yIG5vdCBh
- bnkoeCBpbiB1cmwgZm9yIHggaW4gZ19pZ25vcmVTZXRSZXNvbHZlZCk6I25vdCB1cmwuc3RhcnRz
- d2l0aCgicGx1Z2luOi8vcGx1Z2luLnZpZGVvLmY0bVRlc3RlciIpIDoKICAgICAgICBzZXRyZXM9
- VHJ1ZQogICAgICAgIGlmICckJExTRGlyZWN0JCQnIGluIHVybDoKICAgICAgICAgICAgdXJsPXVy
- bC5yZXBsYWNlKCckJExTRGlyZWN0JCQnLCcnKQogICAgICAgICAgICBzZXRyZXM9RmFsc2UKICAg
- ICAgICBpdGVtID0geGJtY2d1aS5MaXN0SXRlbShwYXRoPXVybCkKICAgICAgICBpZiBub3Qgc2V0
- cmVzOgogICAgICAgICAgICB4Ym1jLlBsYXllcigpLnBsYXkodXJsKQogICAgICAgIGVsc2U6IAog
- ICAgICAgICAgICB4Ym1jcGx1Z2luLnNldFJlc29sdmVkVXJsKGludChzeXMuYXJndlsxXSksIFRy
- dWUsIGl0ZW0pCiAgICBlbHNlOgojICAgICAgICBwcmludCAnTm90IHNldHRpbmcgc2V0UmVzb2x2
- ZWRVcmwnCiAgICAgICAgeGJtYy5leGVjdXRlYnVpbHRpbignWEJNQy5SdW5QbHVnaW4oJyt1cmwr
- JyknKQoKCmVsaWYgbW9kZT09MTM6CiAgICBhZGRvbl9sb2coInBsYXlfcGxheWxpc3QiKQogICAg
- cGxheV9wbGF5bGlzdChuYW1lLCBwbGF5bGlzdCkKCmVsaWYgbW9kZT09MTQ6CiAgICBhZGRvbl9s
- b2coImdldF94bWxfZGF0YWJhc2UiKQogICAgZ2V0X3htbF9kYXRhYmFzZSh1cmwpCiAgICB4Ym1j
- cGx1Z2luLmVuZE9mRGlyZWN0b3J5KGludChzeXMuYXJndlsxXSkpCgplbGlmIG1vZGU9PTE1Ogog
- ICAgYWRkb25fbG9nKCJicm93c2VfeG1sX2RhdGFiYXNlIikKICAgIGdldF94bWxfZGF0YWJhc2Uo
- dXJsLCBUcnVlKQogICAgeGJtY3BsdWdpbi5lbmRPZkRpcmVjdG9yeShpbnQoc3lzLmFyZ3ZbMV0p
- KQoKZWxpZiBtb2RlPT0xNjoKICAgIGFkZG9uX2xvZygiYnJvd3NlX2NvbW11bml0eSIpCiAgICBn
- ZXRDb21tdW5pdHlTb3VyY2VzKHVybCxicm93c2U9VHJ1ZSkKICAgIHhibWNwbHVnaW4uZW5kT2ZE
- aXJlY3RvcnkoaW50KHN5cy5hcmd2WzFdKSkKCmVsaWYgbW9kZT09MTcgb3IgbW9kZT09MTE3Ogog
- ICAgYWRkb25fbG9nKCJnZXRSZWdleFBhcnNlZCIpCgogICAgZGF0YT1Ob25lCiAgICBpZiByZWdl
- eHMgYW5kICdsaXN0cmVwZWF0JyBpbiB1cmxsaWIudW5xdW90ZV9wbHVzKHJlZ2V4cyk6CiAgICAg
- ICAgbGlzdHJlcGVhdCxyZXQsbSxyZWdleHMsIGNvb2tpZUphciA9Z2V0UmVnZXhQYXJzZWQocmVn
- ZXhzLCB1cmwpCiAgICAgICAgI3ByaW50IGxpc3RyZXBlYXQscmV0LG0scmVnZXhzCiAgICAgICAg
- ZD0nJwojICAgICAgICBwcmludCAnbSBpcycgLCBtCiMgICAgICAgIHByaW50ICdyZWdleHMnLHJl
- Z2V4cwogICAgICAgIHJlZ2V4bmFtZT1tWyduYW1lJ10KICAgICAgICBleGlzdGluZ19saXN0PXJl
- Z2V4cy5wb3AocmVnZXhuYW1lKQogIyAgICAgICBwcmludCAnZmluYWwgcmVnZXhzJyxyZWdleHMs
- cmVnZXhuYW1lCiAgICAgICAgdXJsPScnCiAgICAgICAgaW1wb3J0IGNvcHkKICAgICAgICBsbj0n
- JwogICAgICAgIHJudW1iZXI9MAogICAgICAgIGZvciBvYmogaW4gcmV0OgogICAgICAgICAgICAj
- cHJpbnQgJ29iaicsb2JqCiAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgIHJudW1iZXIr
- PTEKICAgICAgICAgICAgICAgIG5ld2NvcHk9Y29weS5kZWVwY29weShyZWdleHMpCiAgICAjICAg
- ICAgICAgICAgcHJpbnQgJ25ld2NvcHknLG5ld2NvcHksIGxlbihuZXdjb3B5KQogICAgICAgICAg
- ICAgICAgbGlzdHJlcGVhdFQ9bGlzdHJlcGVhdAogICAgICAgICAgICAgICAgaT0wCiAgICAgICAg
- ICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4ob2JqKSk6CiAgICAjICAgICAgICAgICAgICAgIHBy
- aW50ICdpIGlzICcsaSwgbGVuKG9iaiksIGxlbihuZXdjb3B5KQogICAgICAgICAgICAgICAgICAg
- IGlmIGxlbihuZXdjb3B5KT4wOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlX2tleU8s
- IHRoZV92YWx1ZU8gaW4gbmV3Y29weS5pdGVyaXRlbXMoKToKICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgIGlmIHRoZV92YWx1ZU8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgZm9yIHRoZV9rZXksIHRoZV92YWx1ZSBpbiB0aGVfdmFsdWVPLml0ZXJpdGVtcygp
- OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0aGVfdmFsdWUgaXMgbm90
- IE5vbmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAjICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICBwcmludCAgJ2tleSBhbmQgdmFsJyx0aGVfa2V5LCB0aGVf
- dmFsdWUKICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnYWEn
- CiAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1snICsgcmVn
- ZXhuYW1lKycucGFyYW0nK3N0cihpKzEpICsgJ10nCiAgICAgICAgIyAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgcHJpbnQgcmVwcihvYmpbaV0pCiAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBpZiB0eXBlKHRoZV92YWx1ZSkgaXMgZGljdDoKICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlX2tleWwsIHRoZV92YWx1ZWwg
- aW4gdGhlX3ZhbHVlLml0ZXJpdGVtcygpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICBpZiB0aGVfdmFsdWVsIGlzIG5vdCBOb25lOgogICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsPU5vbmUKICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uo
- b2JqLHR1cGxlKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIHZhbD0gb2JqW2ldLmRlY29kZSgndXRmLTgnKSAKICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQ6IAogICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWw9
- IG9ialtpXSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICB2YWw9IG9iai5kZWNvZGUoJ3V0Zi04JykgCiAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWw9
- IG9iagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAn
- WycgKyByZWdleG5hbWUrJy5wYXJhbScrc3RyKGkrMSkgKyAnXVtERV0nIGluIHRoZV92YWx1ZWw6
- CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- dGhlX3ZhbHVlbD10aGVfdmFsdWVsLnJlcGxhY2UoJ1snICsgcmVnZXhuYW1lKycucGFyYW0nK3N0
- cihpKzEpICsgJ11bREVdJywgdW5lc2NhcGUodmFsKSkKICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZV92YWx1ZVt0aGVfa2V5bF09dGhlX3ZhbHVl
- bC5yZXBsYWNlKCdbJyArIHJlZ2V4bmFtZSsnLnBhcmFtJytzdHIoaSsxKSArICddJywgdmFsKQog
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50
- ICdmaXJzdCBzZWMnLHRoZV92YWx1ZVt0aGVfa2V5bF0KICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICB2YWw9Tm9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- IGlmIGlzaW5zdGFuY2Uob2JqLHR1cGxlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgIHZhbD1vYmpbaV0uZGVjb2RlKCd1dGYtOCcpIAogICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWw9b2JqW2ldIAogICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbD0gb2JqLmRlY29kZSgndXRm
- LTgnKSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhj
- ZXB0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
- dmFsPSBvYmoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAn
- WycgKyByZWdleG5hbWUrJy5wYXJhbScrc3RyKGkrMSkgKyAnXVtERV0nIGluIHRoZV92YWx1ZToK
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50ICdm
- b3VuZCBERScsdGhlX3ZhbHVlLnJlcGxhY2UoJ1snICsgcmVnZXhuYW1lKycucGFyYW0nK3N0cihp
- KzEpICsgJ11bREVdJywgdW5lc2NhcGUodmFsKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgICAgICAgICAgdGhlX3ZhbHVlPXRoZV92YWx1ZS5yZXBsYWNlKCdbJyArIHJl
- Z2V4bmFtZSsnLnBhcmFtJytzdHIoaSsxKSArICddW0RFXScsIHVuZXNjYXBlKHZhbCkpCgogICAg
- ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZV92YWx1ZU9bdGhlX2tl
- eV09dGhlX3ZhbHVlLnJlcGxhY2UoJ1snICsgcmVnZXhuYW1lKycucGFyYW0nK3N0cihpKzEpICsg
- J10nLCB2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3By
- aW50ICdzZWNvbmQgc2VjIHZhbCcsdGhlX3ZhbHVlT1t0aGVfa2V5XQoKICAgICAgICAgICAgICAg
- ICAgICB2YWw9Tm9uZQogICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLHR1cGxl
- KToKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAg
- ICAgdmFsPW9ialtpXS5kZWNvZGUoJ3V0Zi04JykKICAgICAgICAgICAgICAgICAgICAgICAgZXhj
- ZXB0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsPW9ialtpXQogICAgICAgICAgICAg
- ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg
- ICAgICAgICAgICAgIHZhbD1vYmouZGVjb2RlKCd1dGYtOCcpCiAgICAgICAgICAgICAgICAgICAg
- ICAgIGV4Y2VwdDogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWw9b2JqCiAgICAgICAg
- ICAgICAgICAgICAgaWYgJ1snICsgcmVnZXhuYW1lKycucGFyYW0nK3N0cihpKzEpICsgJ11bREVd
- JyBpbiBsaXN0cmVwZWF0VDoKICAgICAgICAgICAgICAgICAgICAgICAgbGlzdHJlcGVhdFQ9bGlz
- dHJlcGVhdFQucmVwbGFjZSgnWycgKyByZWdleG5hbWUrJy5wYXJhbScrc3RyKGkrMSkgKyAnXVtE
- RV0nLHZhbCkKICAgICAgICAgICAgICAgICAgICBsaXN0cmVwZWF0VD1saXN0cmVwZWF0VC5yZXBs
- YWNlKCdbJyArIHJlZ2V4bmFtZSsnLnBhcmFtJytzdHIoaSsxKSArICddJyxlc2NhcGUodmFsKSkK
- IyAgICAgICAgICAgICAgICAgICAgcHJpbnQgbGlzdHJlcGVhdFQKICAgICAgICAgICAgICAgIGxp
- c3RyZXBlYXRUPWxpc3RyZXBlYXRULnJlcGxhY2UoJ1snICsgcmVnZXhuYW1lKycucGFyYW0nK3N0
- cigwKSArICddJyxzdHIocm51bWJlcikpIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
- ICB0cnk6CiAgICAgICAgICAgICAgICAgICAgaWYgY29va2llSmFyIGFuZCAnWycgKyByZWdleG5h
- bWUrJy5jb29raWVzXScgaW4gbGlzdHJlcGVhdFQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGxp
- c3RyZXBlYXRUPWxpc3RyZXBlYXRULnJlcGxhY2UoJ1snICsgcmVnZXhuYW1lKycuY29va2llc10n
- LGdldENvb2tpZXNTdHJpbmcoY29va2llSmFyKSkgCiAgICAgICAgICAgICAgICBleGNlcHQ6IHBh
- c3MKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgI25ld2NvcHkgPSB1cmxsaWIucXVv
- dGUocmVwcihuZXdjb3B5KSkKICAgICMgICAgICAgICAgICBwcmludCAnbmV3IHJlZ2V4IGxpc3Qn
- LCByZXByKG5ld2NvcHkpLCByZXByKGxpc3RyZXBlYXRUKQogICAgIyAgICAgICAgICAgIGFkZExp
- bmsobGlzdGxpbmtULGxpc3R0aXRsZVQuZW5jb2RlKCd1dGYtOCcsICdpZ25vcmUnKSxsaXN0dGh1
- bWJuYWlsVCwnJywnJywnJywnJyxUcnVlLE5vbmUsbmV3Y29weSwgbGVuKHJldCkpCiAgICAgICAg
- ICAgICAgICByZWdleF94bWw9JycKIyAgICAgICAgICAgICAgICBwcmludCAnbmV3Y29weScsbmV3
- Y29weQogICAgICAgICAgICAgICAgaWYgbGVuKG5ld2NvcHkpPjA6CiAgICAgICAgICAgICAgICAg
- ICAgcmVnZXhfeG1sPWQyeChuZXdjb3B5LCdsc3Byb3Jvb3QnKQogICAgICAgICAgICAgICAgICAg
- IHJlZ2V4X3htbD1yZWdleF94bWwuc3BsaXQoJzxsc3Byb3Jvb3Q+JylbMV0uc3BsaXQoJzwvbHNw
- cm9yb290JylbMF0KICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICNsbis9J1xuPGl0ZW0+
- JXNcbiVzPC9pdGVtPiclKGxpc3RyZXBlYXRULmVuY29kZSgidXRmLTgiKSxyZWdleF94bWwpICAg
- CiAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgbG4rPSdcbjxpdGVtPiVz
- XG4lczwvaXRlbT4nJShsaXN0cmVwZWF0VCxyZWdleF94bWwpCiAgICAgICAgICAgICAgICBleGNl
- cHQ6IGxuKz0nXG48aXRlbT4lc1xuJXM8L2l0ZW0+JyUobGlzdHJlcGVhdFQuZW5jb2RlKCJ1dGYt
- OCIpLHJlZ2V4X3htbCkKICAgICAgICAgICAgZXhjZXB0OiB0cmFjZWJhY2sucHJpbnRfZXhjKGZp
- bGU9c3lzLnN0ZG91dCkKIyAgICAgICAgICAgIHByaW50IHJlcHIobG4pCiMgICAgICAgICAgICBw
- cmludCBuZXdjb3B5CiAgICAgICAgICAgICAgICAKIyAgICAgICAgICAgIGxuKz0nPC9pdGVtPicK
- ICAgICAgICAKICAgICAgICBhZGRvbl9sb2cocmVwcihsbikpCiAgICAgICAgZ2V0RGF0YSgnJywn
- JyxsbikKICAgICAgICB4Ym1jcGx1Z2luLmVuZE9mRGlyZWN0b3J5KGludChzeXMuYXJndlsxXSkp
- CiAgICBlbHNlOgogICAgICAgIHVybCxzZXRyZXNvbHZlZCA9IGdldFJlZ2V4UGFyc2VkKHJlZ2V4
- cywgdXJsKQogICAgICAgIHByaW50IHJlcHIodXJsKSxzZXRyZXNvbHZlZCwnaW1oZXJlJwogICAg
- ICAgIGlmIG5vdCAocmVnZXhzIGFuZCAnbm90cGxheWFibGUnIGluIHJlZ2V4cyBhbmQgbm90IHVy
- bCk6ICAgICAgICAKICAgICAgICAgICAgaWYgdXJsOgogICAgICAgICAgICAgICAgaWYgJyRQTEFZ
- RVJQUk9YWSQ9JyBpbiB1cmw6CiAgICAgICAgICAgICAgICAgICAgdXJsLHByb3h5PXVybC5zcGxp
- dCgnJFBMQVlFUlBST1hZJD0nKQogICAgICAgICAgICAgICAgICAgIHByaW50ICdwcm94eScscHJv
- eHkKICAgICAgICAgICAgICAgICAgICAjSmFpcm94IG1vZCBmb3IgcHJveHkgYXV0aAogICAgICAg
- ICAgICAgICAgICAgIHByb3h5dXNlciA9IE5vbmUKICAgICAgICAgICAgICAgICAgICBwcm94eXBh
- c3MgPSBOb25lCiAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHByb3h5KSA+IDAgYW5kICdAJyBp
- biBwcm94eToKICAgICAgICAgICAgICAgICAgICAgICAgcHJveHkgPSBwcm94eS5zcGxpdCgnOicp
- CiAgICAgICAgICAgICAgICAgICAgICAgIHByb3h5dXNlciA9IHByb3h5WzBdCiAgICAgICAgICAg
- ICAgICAgICAgICAgIHByb3h5cGFzcyA9IHByb3h5WzFdLnNwbGl0KCdAJylbMF0KICAgICAgICAg
- ICAgICAgICAgICAgICAgcHJveHlpcCA9IHByb3h5WzFdLnNwbGl0KCdAJylbMV0KICAgICAgICAg
- ICAgICAgICAgICAgICAgcG9ydCA9IHByb3h5WzJdCiAgICAgICAgICAgICAgICAgICAgZWxzZToK
- ICAgICAgICAgICAgICAgICAgICAgICAgcHJveHlpcCxwb3J0PXByb3h5LnNwbGl0KCc6JykKCiAg
- ICAgICAgICAgICAgICAgICAgcGxheW1lZGlhd2l0aHByb3h5KHVybCxuYW1lLGljb25pbWFnZSxw
- cm94eWlwLHBvcnQsIHByb3h5dXNlcixwcm94eXBhc3MpICNqYWlyb3gKICAgICAgICAgICAgICAg
- IGVsc2U6CiAgICAgICAgICAgICAgICAgICAgcGxheXNldHJlc29sdmVkKHVybCxuYW1lLGljb25p
- bWFnZSxzZXRyZXNvbHZlZCxyZWdleHMpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
- ICB4Ym1jLmV4ZWN1dGVidWlsdGluKCJYQk1DLk5vdGlmaWNhdGlvbihDb2NpbmFUdSxGYWlsZWQg
- dG8gZXh0cmFjdCByZWdleC4gLSAiKyJ0aGlzIisiLDQwMDAsIitpY29uKyIpIikKZWxpZiBtb2Rl
- PT0xODoKICAgIGFkZG9uX2xvZygieW91dHViZWRsIikKICAgIHRyeToKICAgICAgICBpbXBvcnQg
- eW91dHViZWRsCiAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgIHhibWMuZXhlY3V0ZWJ1aWx0
- aW4oIlhCTUMuTm90aWZpY2F0aW9uKENvY2luYVR1LFBsZWFzZSBbQ09MT1IgeWVsbG93XWluc3Rh
- bGwgWW91dHViZS1kbFsvQ09MT1JdIG1vZHVsZSAsMTAwMDAsIiIpIikKICAgIHN0cmVhbV91cmw9
- eW91dHViZWRsLnNpbmdsZV9ZRCh1cmwpCiAgICBwbGF5c2V0cmVzb2x2ZWQoc3RyZWFtX3VybCxu
- YW1lLGljb25pbWFnZSkKZWxpZiBtb2RlPT0xOToKICAgIGFkZG9uX2xvZygiR2VuZXNpc2NvbW1v
- bnJlc29sdmVycyIpCiAgICBwbGF5c2V0cmVzb2x2ZWQgKHVybHNvbHZlcih1cmwpLG5hbWUsaWNv
- bmltYWdlLFRydWUpCgplbGlmIG1vZGU9PTIxOgogICAgYWRkb25fbG9nKCJkb3dubG9hZCBjdXJy
- ZW50IGZpbGUgdXNpbmcgeW91dHViZS1kbCBzZXJ2aWNlIikKICAgIG10eXBlPSd2aWRlbycKICAg
- IGlmICdbbXAzXScgaW4gbmFtZToKICAgICAgICBtdHlwZT0nYXVkaW8nCiAgICAgICAgbmFtZT1u
- YW1lLnJlcGxhY2UoJ1ttcDNdJywnJykKICAgIHl0ZGxfZG93bmxvYWQoJycsbmFtZSwgbXR5cGUp
- CmVsaWYgbW9kZT09MjM6CiAgICBhZGRvbl9sb2coImdldCBpbmZvIHRoZW4gZG93bmxvYWQiKQog
- ICAgbXR5cGU9J3ZpZGVvJwogICAgaWYgJ1ttcDNdJyBpbiBuYW1lOgogICAgICAgIG10eXBlPSdh
- dWRpbycKICAgICAgICBuYW1lPW5hbWUucmVwbGFjZSgnW21wM10nLCcnKQogICAgeXRkbF9kb3du
- bG9hZCh1cmwsbmFtZSxtdHlwZSkKZWxpZiBtb2RlPT0yNDoKICAgIGFkZG9uX2xvZygiQXVkaW8g
- b25seSB5b3V0dWJlIGRvd25sb2FkIikKICAgIHl0ZGxfZG93bmxvYWQodXJsLG5hbWUsJ2F1ZGlv
- JykKZWxpZiBtb2RlPT0yNToKICAgIGFkZG9uX2xvZygiU2VhcmNoaW4gT3RoZXIgcGx1Z2lucyIp
- CiAgICBfc2VhcmNoKHVybCxuYW1lKQogICAgeGJtY3BsdWdpbi5lbmRPZkRpcmVjdG9yeShpbnQo
- c3lzLmFyZ3ZbMV0pKQplbGlmIG1vZGU9PTU1OgogICAgYWRkb25fbG9nKCJlbmFibGVkIGxvY2si
- KQogICAgcGFyZW50YWxibG9ja2VkcGluID1hZGRvbi5nZXRTZXR0aW5nKCdwYXJlbnRhbGJsb2Nr
- ZWRwaW4nKQogICAga2V5Ym9hcmQgPSB4Ym1jLktleWJvYXJkKCcnLCdpbnRyb2R1emNhIGxhIGNv
- bnRyYXNlw7FhJykKICAgIGtleWJvYXJkLmRvTW9kYWwoKQogICAgaWYgbm90IChrZXlib2FyZC5p
- c0NvbmZpcm1lZCgpID09IEZhbHNlKToKICAgICAgICBuZXdTdHIgPSBrZXlib2FyZC5nZXRUZXh0
- KCkKICAgICAgICBpZiBuZXdTdHI9PXBhcmVudGFsYmxvY2tlZHBpbjoKICAgICAgICAgICAgYWRk
- b24uc2V0U2V0dGluZygncGFyZW50YWxibG9ja2VkJywgImZhbHNlIikKICAgICAgICAgICAgeGJt
- Yy5leGVjdXRlYnVpbHRpbigiWEJNQy5Ob3RpZmljYXRpb24oQ29jaW5hVHUsQ29udHJvbCBQYXJl
- bnRhbCBPbiw1MDAwLCIraWNvbisiKSIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgeGJtYy5l
- eGVjdXRlYnVpbHRpbigiWEJNQy5Ob3RpZmljYXRpb24oQ29jaW5hVHUsIG9sdmlkbyBsYSBjbGF2
- ZT8/ICw1MDAwLCIraWNvbisiKSIpCiAgICB4Ym1jcGx1Z2luLmVuZE9mRGlyZWN0b3J5KGludChz
- eXMuYXJndlsxXSkpCmVsaWYgbW9kZT09NTY6CiAgICBhZGRvbl9sb2coImRpc2FibGUgbG9jayIp
- CiAgICBhZGRvbi5zZXRTZXR0aW5nKCdwYXJlbnRhbGJsb2NrZWQnLCAidHJ1ZSIpCiAgICB4Ym1j
- LmV4ZWN1dGVidWlsdGluKCJYQk1DLk5vdGlmaWNhdGlvbihDb2NpbmFUdSwgQ29udHJvbCBQYXJl
- bnRhbCBPZmYsNTAwMCwiK2ljb24rIikiKQogICAgeGJtY3BsdWdpbi5lbmRPZkRpcmVjdG9yeShp
- bnQoc3lzLmFyZ3ZbMV0pKQoKZWxpZiBtb2RlPT01MzoKICAgIGFkZG9uX2xvZygiUmVxdWVzdGlu
- ZyBKU09OLVJQQyBJdGVtcyIpCiAgICBwbHVnaW5xdWVyeWJ5SlNPTih1cmwpCiAgICAjeGJtY3Bs
- dWdpbi5lbmRPZkRpcmVjdG9yeShpbnQoc3lzLmFyZ3ZbMV0pKQppZiBub3Qgdmlld21vZGU9PU5v
- bmU6CiAgIHByaW50ICdzZXR0aW5nIHZpZXcgbW9kZScKICAgeGJtYy5leGVjdXRlYnVpbHRpbigi
- Q29udGFpbmVyLlNldFZpZXdNb2RlKCVzKSIldmlld21vZGUp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement