位置関係 説明 from 20260715

平面2つの 作成過程

7つ .py ファイル コンテナ

import bpy
import base64
import webbrowser
from bpy.types import Operator, Panel

bl_info = {
    "name": "My Custom Addon Container",
    "author": "Generated by Builder",
    "version": (1, 0, 0),
    "blender": (4, 0, 0),
    "location": "View3D > Sidebar > Container",
    "description": "複数のアドオンコードを格納・展開するコンテナ",
    "category": "Development",
}

STORED_CODES = [
    {
        "name": "簡易背景_20260714_014",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogInppb25hZF9bIOewoeaYk+iDjOaZryBdIiwKICAgICJhdXRo"
        "b3IiOiAiWW91ciBOYW1lIiwKICAgICJ2ZXJzaW9uIjogKDEsIDMpLAogICAgImJsZW5kZXIiOiAoNSwg"
        "MCwgMCksCiAgICAibG9jYXRpb24iOiAiVmlldzNEID4gU2lkZWJhciAoTuODkeODjeODqykiLAogICAg"
        "ImRlc2NyaXB0aW9uIjogIuewoeaYk+iDjOaZr+ioreWumuOAgeOCq+ODqeODvOODlOODg+OCq+ODvCgz"
        "eDMp44Gr44KI44KL6Imy5oOF5aCx6KiY5oa244O756K65a6f44Gq44Kz44O844OJ5pu444GN5Ye644GX"
        "IiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQgbWF0aAppbXBv"
        "cnQgbWF0aHV0aWxzCmltcG9ydCB3ZWJicm93c2VyCmltcG9ydCByZQppbXBvcnQgb3MKCiMgPT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDlrprnvqnjgJEKIyA9PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PQpBRERPTl9USVRMRSA9ICJbIOewoeaYk+iDjOaZryBdIgpQUkVG"
        "SVhfVkFMID0gIkRJQ0VfVE9PTFNfNSIKQURET05fQ0FURUdPUlkgPSBBRERPTl9USVRMRQpQUkVGSVgg"
        "PSBQUkVGSVhfVkFMLmxvd2VyKCkKCiMgPT09PT09PT09PT09CiMg44CQ5Yid5pyf6Kit5a6a44O744Oq"
        "44Oz44Kv5a6a576p44CRIAojID09PT09PT09PT09PQpMSU5LX05BTUVfMSA9ICLln7rmnKzjgqLjg4nj"
        "gqrjg7PoqK3lrpogMjAyNjA3MTHvvYIiCkxJTktfVVJMXzEgPSAiaHR0cHM6Ly9hcHAubm90aW9uLmNv"
        "bS9wLzIwMjYwNzExLTM5YWY1ZGFjYWY0MzgwMjc4MTFkY2Q4NzdkYjdjNjMwIgpMSU5LX05BTUVfMiA9"
        "ICJwb3NmaWUiCkxJTktfVVJMXzIgPSAiaHR0cHM6Ly9wb3NmaWUuY29tL0B0aW1la2FndXJhL3Qvemlv"
        "bmFkMjAyMj9zb3J0PTAiCkxJTktfTkFNRV8zID0gInppb25hZGNoYXQiCkxJTktfVVJMXzMgPSAiaHR0"
        "cHM6Ly94LmNvbS96aW9uYWRjaGF0IgpMSU5LX05BTUVfNCA9ICJibGVuZGVyIOOCs+ODs+ODhuODiiAy"
        "MDI2MDcxMyIKTElOS19VUkxfNCA9ICJodHRwczovL25vdGUuY29tL3ppb25hZG1pbGxpb24vbi9uOWE0"
        "N2Q4OGZlN2I0IgpMSU5LX05BTUVfNSA9ICLnsKHmmJPog4zmma/jgIAyMDI2MDcxNCIKTElOS19VUkxf"
        "NSA9ICJodHRwczovL25vdGUuY29tL3ppb25hZG1pbGxpb24vbi9uYjdhZTRkMThmN2JhIgoKIyA9PT09"
        "PT09PT09PT0KIyDjgJDjgrPjg6zjgq/jgrfjg6fjg7Pjg7vjgqrjg5bjgrjjgqfjgq/jg4jlkI3jga7l"
        "iJ3mnJ/lgKTjgJEKIyA9PT09PT09PT09PT0KSU5JVF9DT0xMX01BSU4gPSAiTWFpbkNvbGxlY3Rpb24i"
        "CklOSVRfQ09MTF9TVUIgPSAiU3ViQ29sbGVjdGlvbiIKSU5JVF9PQkpfTkFNRSA9ICJUYXJnZXRPYmpl"
        "Y3QiCgojID09PT09PT09PT09PQojIOOAkOaVsOWApOioreWumuOBruWIneacn+WApOOAkQojID09PT09"
        "PT09PT09PQpHUklEX1BSRVNFVF8xID0gMTAuMApHUklEX1BSRVNFVF8yID0gMTAwLjAKR1JJRF9DVVNU"
        "T01fSU5JVCA9IDEuMAoKIyA9PT09PT09PT09PT0KIyDjgJDliJ3mnJ/oqK3lrprjga7oibIgKOODquOC"
        "u+ODg+ODiOeUqCnjgJEKIyA9PT09PT09PT09PT0KQ09MT1JfR1JJRF9JTklUID0gKDAuNzE3NiwgMC44"
        "LCAwLjgxNTcsIDEuMCkKQ09MT1JfQkdfSElHSF9JTklUID0gKDAuNDc4NCwgMC40NDMxLCAwLjg1ODgp"
        "CkNPTE9SX0JHX0xPV19JTklUID0gKDAuNTcyNSwgMC41NzI1LCAwLjU3MjUpCgojID09PT09PT09PT09"
        "PQojIOOAkDPjgrvjg4Pjg4goM3gzKeOBruOCq+ODqeODvOiomOaGtueUqCDliJ3mnJ/lgKTjgJEKIyDj"
        "gqjjgq/jgrnjg53jg7zjg4jlrp/ooYzmmYLjgIHjgZPjga7pg6jliIbjgYzoh6rli5Xjgafmm7jjgY3m"
        "j5vjgo/jgorjgb7jgZnjgIIKIyA9PT09PT09PT09PT0KUFJFU0VUMV9HUklEID0gKDAuNTU2OSwgMC42"
        "MTk2LCAwLjYzMTQsIDEuMCkKUFJFU0VUMV9ISUdIID0gKDAuMCwgMC44NTg4LCAwLjYyMzUpClBSRVNF"
        "VDFfTE9XID0gKDAuMDgyNCwgMC4wODI0LCAwLjA4MjQpCgpQUkVTRVQyX0dSSUQgPSAoMC42MzE0LCAw"
        "LjA2MzIsIDAuNTQ2OSwgMS4wKQpQUkVTRVQyX0hJR0ggPSAoMC4wOTIyLCAwLjAzNTUsIDAuMTAwNikK"
        "UFJFU0VUMl9MT1cgPSAoMC4wMTU0LCAwLjAyMTgsIDAuMDgyNCkKClBSRVNFVDNfR1JJRCA9ICgwLjU1"
        "NjksIDAuNjE5NiwgMC42MzE0LCAxLjApClBSRVNFVDNfSElHSCA9ICgwLjQ3ODQsIDAuNDQzMSwgMC44"
        "NTg4KQpQUkVTRVQzX0xPVyA9ICgwLjA4MjQsIDAuMDgyNCwgMC4wODI0KQoKCiMgPT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDjg5Pjg6Xjg7zmg4XloLHlj5blvpcg6Zai5pWw44CR"
        "CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGVmIGdldF9ydjNkKGNvbnRleHQp"
        "OgogICAgZm9yIGEgaW4gY29udGV4dC53aW5kb3cuc2NyZWVuLmFyZWFzOgogICAgICAgIGlmIGEudHlw"
        "ZSA9PSAnVklFV18zRCc6IHJldHVybiBhLnNwYWNlcy5hY3RpdmUucmVnaW9uXzNkCiAgICByZXR1cm4g"
        "Tm9uZQoKZGVmIGdldF92aWV3X2luZm9fZGF0YShjb250ZXh0KToKICAgIHJ2M2QsIGFyZWEsIHNwYWNl"
        "ID0gTm9uZSwgTm9uZSwgTm9uZQogICAgZm9yIGEgaW4gY29udGV4dC53aW5kb3cuc2NyZWVuLmFyZWFz"
        "OgogICAgICAgIGlmIGEudHlwZSA9PSAnVklFV18zRCc6CiAgICAgICAgICAgIHJ2M2QsIGFyZWEsIHNw"
        "YWNlID0gYS5zcGFjZXMuYWN0aXZlLnJlZ2lvbl8zZCwgYSwgYS5zcGFjZXMuYWN0aXZlCiAgICAgICAg"
        "ICAgIGJyZWFrCiAgICBpZiBub3QgcnYzZCBvciBub3QgYXJlYSBvciBub3Qgc3BhY2U6IHJldHVybiBO"
        "b25lCiAgICAgICAgCiAgICBtb2RlID0gcnYzZC52aWV3X3BlcnNwZWN0aXZlCiAgICB0YXJnZXRfcG9z"
        "ID0gcnYzZC52aWV3X2xvY2F0aW9uCiAgICB2aWV3X2Rpc3QgPSBydjNkLnZpZXdfZGlzdGFuY2UKICAg"
        "IGNhbV9wb3MgPSBydjNkLnZpZXdfbWF0cml4LmludmVydGVkKCkudHJhbnNsYXRpb24KICAgIHZpZXdf"
        "ZGlyID0gcnYzZC52aWV3X3JvdGF0aW9uIEAgbWF0aHV0aWxzLlZlY3RvcigoMC4wLCAwLjAsIC0xLjAp"
        "KQogICAgYXNwZWN0ID0gYXJlYS5oZWlnaHQgLyBhcmVhLndpZHRoIGlmIGFyZWEud2lkdGggPiAwIGVs"
        "c2UgMS4wCiAgICBzZW5zb3IgPSAzMi4wIAogICAgCiAgICBpc19wZXJzcCA9IG1vZGUgaW4geydQRVJT"
        "UCcsICdDQU1FUkEnfQogICAgcHJval90ZXh0ID0gIumAj+imluaKleW9sSIgaWYgbW9kZSA9PSAnUEVS"
        "U1AnIGVsc2UgIuW5s+ihjOaKleW9sSIgaWYgbW9kZSA9PSAnT1JUSE8nIGVsc2UgIuOCq+ODoeODqeOD"
        "k+ODpeODvCIgaWYgbW9kZSA9PSAnQ0FNRVJBJyBlbHNlICLkuI3mmI4iCiAgICAKICAgIGlmIGlzX3Bl"
        "cnNwOgogICAgICAgIGZvdl9oID0gMi4wICogbWF0aC5hdGFuKHNlbnNvciAvICgyLjAgKiBzcGFjZS5s"
        "ZW5zKSkKICAgICAgICB3ID0gMi4wICogdmlld19kaXN0ICogbWF0aC50YW4oZm92X2ggLyAyLjApCiAg"
        "ICBlbHNlOiAKICAgICAgICB3ID0gdmlld19kaXN0ICogKHNlbnNvciAvIHNwYWNlLmxlbnMpCiAgICBo"
        "ID0gdyAqIGFzcGVjdAogICAgICAgIAogICAgcmV0dXJuIHsKICAgICAgICAncHJval90ZXh0JzogcHJv"
        "al90ZXh0LCAnY2FtX3Bvcyc6IGNhbV9wb3MsICd2aWV3X2Rpcic6IHZpZXdfZGlyLAogICAgICAgICd0"
        "YXJnZXRfcG9zJzogdGFyZ2V0X3BvcywgJ2Rpc3QnOiB2aWV3X2Rpc3QsICd3JzogdywgJ2gnOiBoLCAn"
        "aXNfcGVyc3AnOiBpc19wZXJzcAogICAgfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT0KIyDjgJDjgqrjg5rjg6zjg7zjgr/jg7wgKOWun+ihjOaWhynjgJEKIyA9PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBESUNFX1RPT0xTXzVfT1RfcmVzZXRfdmlldyhicHku"
        "dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJWH1fcmVzZXRfdmll"
        "dyIKICAgIGJsX2xhYmVsID0gIumBuOaKnuOCquODluOCuOOCp+OCr+ODiOOCkueUu+mdouS4reWkruOB"
        "q+OBmeOCiyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHJ2M2QgPSBnZXRf"
        "cnYzZChjb250ZXh0KQogICAgICAgIGlmIG5vdCBydjNkOiByZXR1cm4geydDQU5DRUxMRUQnfQogICAg"
        "ICAgIHRhcmdldCA9IGNvbnRleHQuYWN0aXZlX29iamVjdAogICAgICAgIHJ2M2Qudmlld19sb2NhdGlv"
        "biA9IHRhcmdldC5tYXRyaXhfd29ybGQudG9fdHJhbnNsYXRpb24oKSBpZiB0YXJnZXQgZWxzZSBydjNk"
        "LnZpZXdfbG9jYXRpb24uY29weSgpCiAgICAgICAgcnYzZC52aWV3X2Rpc3RhbmNlID0gbWF4KHRhcmdl"
        "dC5kaW1lbnNpb25zLmxlbmd0aCAqIDEuNSwgMTAuMCkgaWYgdGFyZ2V0IGVsc2UgMzAuMAogICAgICAg"
        "IHJ2M2Qudmlld19wZXJzcGVjdGl2ZSA9ICdQRVJTUCcKICAgICAgICBjb250ZXh0LnZpZXdfbGF5ZXIu"
        "dXBkYXRlKCkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBESUNFX1RPT0xTXzVfT1Rf"
        "dXBkYXRlX2luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYidmlldzNkLntQ"
        "UkVGSVh9X3VwZGF0ZV9pbmZvIgogICAgYmxfbGFiZWwgPSAi5oOF5aCx44KS5pu05pawIgogICAgZGVm"
        "IGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgZm9yIGFyZWEgaW4gY29udGV4dC5zY3JlZW4u"
        "YXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6IGFyZWEudGFnX3JlZHJh"
        "dygpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgRElDRV9UT09MU181X09UX2NvcHlf"
        "aW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJWH1f"
        "Y29weV9pbmZvIgogICAgYmxfbGFiZWwgPSAi5oOF5aCx44KS44Kz44OU44O8IgogICAgZGVmIGV4ZWN1"
        "dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgaW5mbyA9IGdldF92aWV3X2luZm9fZGF0YShjb250ZXh0"
        "KQogICAgICAgIGlmIG5vdCBpbmZvOiByZXR1cm4geydDQU5DRUxMRUQnfQogICAgICAgIGxpbmVzID0g"
        "WwogICAgICAgICAgICBmIuaKleW9seODouODvOODiToge2luZm9bJ3Byb2pfdGV4dCddfSIsCiAgICAg"
        "ICAgICAgIGYi55S76Z2i5Lit5aSu5L2N572uOiBYOiB7aW5mb1sndGFyZ2V0X3BvcyddLng6LjFmfSwg"
        "WToge2luZm9bJ3RhcmdldF9wb3MnXS55Oi4xZn0sIFo6IHtpbmZvWyd0YXJnZXRfcG9zJ10uejouMWZ9"
        "IiwKICAgICAgICAgICAgZiLoppbluqfkvY3nva46IFg6IHtpbmZvWydjYW1fcG9zJ10ueDouMWZ9LCBZ"
        "OiB7aW5mb1snY2FtX3BvcyddLnk6LjFmfSwgWjoge2luZm9bJ2NhbV9wb3MnXS56Oi4xZn0iLAogICAg"
        "ICAgICAgICBmIuimlue3muaWueWQkTogWDoge2luZm9bJ3ZpZXdfZGlyJ10ueDouMWZ9LCBZOiB7aW5m"
        "b1sndmlld19kaXInXS55Oi4xZn0sIFo6IHtpbmZvWyd2aWV3X2RpciddLno6LjFmfSIsCiAgICAgICAg"
        "ICAgIGYi55S76Z2i5rC05bmz44Gu5aSn44GN44GVOiB7aW5mb1sndyddOi4xZn0iLAogICAgICAgICAg"
        "ICBmIueUu+mdouS4iuS4i+OBruWkp+OBjeOBlToge2luZm9bJ2gnXTouMWZ9IgogICAgICAgIF0KICAg"
        "ICAgICBpZiBpbmZvWydpc19wZXJzcCddOiBsaW5lcy5hcHBlbmQoZiLoppbluqfjgYvjgonjga7ot53p"
        "m6I6IHtpbmZvWydkaXN0J106LjFmfSIpCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlw"
        "Ym9hcmQgPSAiXG4iLmpvaW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjg5Pj"
        "g6Xjg7zmg4XloLHjgpLjgq/jg6rjg4Pjg5fjg5zjg7zjg4njgavjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8i"
        "KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIERJQ0VfVE9PTFNfNV9PVF9zZXRfZ3Jp"
        "ZF9zY2FsZShicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJ"
        "WH1fc2V0X2dyaWRfc2NhbGUiCiAgICBibF9sYWJlbCA9ICJHcmlk6ZaT6ZqU44KS6Kit5a6aIgogICAg"
        "c2NhbGVfdmFsOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJTY2FsZSIpCiAgICB1c2VfY3Vz"
        "dG9tOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuaMh+WumuaVsOWApCIsIGRlZmF1bHQ9RmFs"
        "c2UpCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGdldGF0dHIo"
        "Y29udGV4dC5zY2VuZSwgZiJ7UFJFRklYfV9wcm9wcyIpCiAgICAgICAgdmFsID0gcHJvcHMuY3VzdG9t"
        "X2dyaWRfc2NhbGUgaWYgc2VsZi51c2VfY3VzdG9tIGVsc2Ugc2VsZi5zY2FsZV92YWwKICAgICAgICBm"
        "b3IgYXJlYSBpbiBjb250ZXh0LnNjcmVlbi5hcmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09"
        "ICdWSUVXXzNEJzoKICAgICAgICAgICAgICAgIGZvciBzcGFjZSBpbiBhcmVhLnNwYWNlczoKICAgICAg"
        "ICAgICAgICAgICAgICBpZiBzcGFjZS50eXBlID09ICdWSUVXXzNEJzogc3BhY2Uub3ZlcmxheS5ncmlk"
        "X3NjYWxlID0gdmFsCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgRElDRV9UT09MU181"
        "X09UX3Jlc2V0X3NldHRpbmdzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmInZp"
        "ZXczZC57UFJFRklYfV9yZXNldF9zZXR0aW5ncyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aI"
        "u+OBmSIKICAgIGRlZiBzZXRfdGhlbWVfY29sb3Ioc2VsZiwgb2JqLCBhdHRyLCBjb2xvcik6CiAgICAg"
        "ICAgdHJ5OgogICAgICAgICAgICB0YXJnZXRfbGVuID0gbGVuKGdldGF0dHIob2JqLCBhdHRyKSkKICAg"
        "ICAgICAgICAgc2V0YXR0cihvYmosIGF0dHIsIHR1cGxlKGNvbG9yKSArICgxLjAsKSBpZiB0YXJnZXRf"
        "bGVuID09IDQgYW5kIGxlbihjb2xvcikgPT0gMyBlbHNlIHR1cGxlKGNvbG9yKVs6dGFyZ2V0X2xlbl0p"
        "CiAgICAgICAgZXhjZXB0OiBwYXNzCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAg"
        "ICBwcm9wcyA9IGdldGF0dHIoY29udGV4dC5zY2VuZSwgZiJ7UFJFRklYfV9wcm9wcyIpCiAgICAgICAg"
        "cHJvcHMuY3VzdG9tX2dyaWRfc2NhbGUgPSBHUklEX0NVU1RPTV9JTklUCiAgICAgICAgaWYgY29udGV4"
        "dC5wcmVmZXJlbmNlcy50aGVtZXM6CiAgICAgICAgICAgIHRoZW1lX3ZpZXczZCA9IGNvbnRleHQucHJl"
        "ZmVyZW5jZXMudGhlbWVzWzBdLnZpZXdfM2QKICAgICAgICAgICAgc2VsZi5zZXRfdGhlbWVfY29sb3Io"
        "dGhlbWVfdmlldzNkLCAiZ3JpZCIsIENPTE9SX0dSSURfSU5JVCkKICAgICAgICAgICAgc2VsZi5zZXRf"
        "dGhlbWVfY29sb3IodGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cywgImhpZ2hfZ3JhZGllbnQiLCBD"
        "T0xPUl9CR19ISUdIX0lOSVQpCiAgICAgICAgICAgIHNlbGYuc2V0X3RoZW1lX2NvbG9yKHRoZW1lX3Zp"
        "ZXczZC5zcGFjZS5ncmFkaWVudHMsICJncmFkaWVudCIsIENPTE9SX0JHX0xPV19JTklUKQogICAgICAg"
        "IHJldHVybiB7J0ZJTklTSEVEJ30KCiMgLS0tIDN4MyDjgqvjg6njg7zoqJjmhrbnlKgg44Kq44Oa44Os"
        "44O844K/44O8IC0tLQpjbGFzcyBESUNFX1RPT0xTXzVfT1RfYXBwbHlfcHJlc2V0KGJweS50eXBlcy5P"
        "cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmInZpZXczZC57UFJFRklYfV9hcHBseV9wcmVzZXQiCiAg"
        "ICBibF9sYWJlbCA9ICLpgannlKgiCiAgICBwcmVzZXRfaWR4OiBicHkucHJvcHMuSW50UHJvcGVydHko"
        "KQogICAgZGVmIHNldF90aGVtZV9jb2xvcihzZWxmLCBvYmosIGF0dHIsIGNvbG9yKToKICAgICAgICB0"
        "cnk6CiAgICAgICAgICAgIHRhcmdldF9sZW4gPSBsZW4oZ2V0YXR0cihvYmosIGF0dHIpKQogICAgICAg"
        "ICAgICBzZXRhdHRyKG9iaiwgYXR0ciwgdHVwbGUoY29sb3IpICsgKDEuMCwpIGlmIHRhcmdldF9sZW4g"
        "PT0gNCBhbmQgbGVuKGNvbG9yKSA9PSAzIGVsc2UgdHVwbGUoY29sb3IpWzp0YXJnZXRfbGVuXSkKICAg"
        "ICAgICBleGNlcHQ6IHBhc3MKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBy"
        "b3BzID0gZ2V0YXR0cihjb250ZXh0LnNjZW5lLCBmIntQUkVGSVh9X3Byb3BzIikKICAgICAgICB0aGVt"
        "ZV92aWV3M2QgPSBjb250ZXh0LnByZWZlcmVuY2VzLnRoZW1lc1swXS52aWV3XzNkCiAgICAgICAgc2Vs"
        "Zi5zZXRfdGhlbWVfY29sb3IodGhlbWVfdmlldzNkLCAiZ3JpZCIsIGdldGF0dHIocHJvcHMsIGYicHJl"
        "c2V0e3NlbGYucHJlc2V0X2lkeH1fZ3JpZCIpKQogICAgICAgIHNlbGYuc2V0X3RoZW1lX2NvbG9yKHRo"
        "ZW1lX3ZpZXczZC5zcGFjZS5ncmFkaWVudHMsICJoaWdoX2dyYWRpZW50IiwgZ2V0YXR0cihwcm9wcywg"
        "ZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9oaWdoIikpCiAgICAgICAgc2VsZi5zZXRfdGhlbWVfY29s"
        "b3IodGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cywgImdyYWRpZW50IiwgZ2V0YXR0cihwcm9wcywg"
        "ZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9sb3ciKSkKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8n"
        "fSwgZiLjgrvjg4Pjg4gge3NlbGYucHJlc2V0X2lkeH0g44KS6YGp55So44GX44G+44GX44GfIikKICAg"
        "ICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBESUNFX1RPT0xTXzVfT1Rfc3RvcmVfcHJlc2V0"
        "KGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmInZpZXczZC57UFJFRklYfV9zdG9y"
        "ZV9wcmVzZXQiCiAgICBibF9sYWJlbCA9ICLoqJjmhrYiCiAgICBwcmVzZXRfaWR4OiBicHkucHJvcHMu"
        "SW50UHJvcGVydHkoKQogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMg"
        "PSBnZXRhdHRyKGNvbnRleHQuc2NlbmUsIGYie1BSRUZJWH1fcHJvcHMiKQogICAgICAgIHRoZW1lX3Zp"
        "ZXczZCA9IGNvbnRleHQucHJlZmVyZW5jZXMudGhlbWVzWzBdLnZpZXdfM2QKICAgICAgICBjZywgY2gs"
        "IGNsID0gdGhlbWVfdmlldzNkLmdyaWQsIHRoZW1lX3ZpZXczZC5zcGFjZS5ncmFkaWVudHMuaGlnaF9n"
        "cmFkaWVudCwgdGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cy5ncmFkaWVudAogICAgICAgICMg6Imy"
        "44Gu6YWN5YiX6ZW344KS5by35Yi26KOc5q2j44GX44Gm5L+d5a2YICjjgqjjg6njg7zlm57pgb8pCiAg"
        "ICAgICAgc2V0YXR0cihwcm9wcywgZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9ncmlkIiwgbGlzdChj"
        "ZykgKyBbMS4wXSBpZiBsZW4oY2cpID09IDMgZWxzZSBsaXN0KGNnKVs6NF0pCiAgICAgICAgc2V0YXR0"
        "cihwcm9wcywgZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9oaWdoIiwgbGlzdChjaClbOjNdKQogICAg"
        "ICAgIHNldGF0dHIocHJvcHMsIGYicHJlc2V0e3NlbGYucHJlc2V0X2lkeH1fbG93IiwgbGlzdChjbClb"
        "OjNdKQogICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCBmIuOCu+ODg+ODiCB7c2VsZi5wcmVzZXRf"
        "aWR4fSDjgavoqJjmhrbjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNs"
        "YXNzIERJQ0VfVE9PTFNfNV9PVF9leHBvcnRfY29kZShicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxf"
        "aWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJWH1fZXhwb3J0X2NvZGUiCiAgICBibF9sYWJlbCA9ICLnj77l"
        "nKjjga7oqK3lrprjg7voqJjmhrboibLjgaflhajkvZPjgrPjg7zjg4njgpLlh7rlipsiCgogICAgZGVm"
        "IGdldF92YWxpZF9zb3VyY2VfY29kZShzZWxmLCBjb250ZXh0KToKICAgICAgICAjIOeiuuWun+OBq+OA"
        "jDN4M+OBruODlOODg+OCq+ODvOWkieaVsOOBjOWtmOWcqOOBmeOCi+acgOaWsOOBruOCs+ODvOODieOA"
        "jeOCkuaOouOBmeWHpueQhgogICAgICAgIGNvZGUgPSAiIgogICAgICAgIGlmIGNvbnRleHQuc3BhY2Vf"
        "ZGF0YSBhbmQgY29udGV4dC5zcGFjZV9kYXRhLnR5cGUgPT0gJ1RFWFRfRURJVE9SJzoKICAgICAgICAg"
        "ICAgY29kZSA9IGNvbnRleHQuc3BhY2VfZGF0YS50ZXh0LmFzX3N0cmluZygpCiAgICAgICAgaWYgY29k"
        "ZSBhbmQgIlBSRVNFVDNfTE9XIiBpbiBjb2RlOiByZXR1cm4gY29kZQogICAgICAgIAogICAgICAgIHZh"
        "bGlkX3RleHRzID0gW10KICAgICAgICBmb3IgdGV4dCBpbiBicHkuZGF0YS50ZXh0czoKICAgICAgICAg"
        "ICAgcyA9IHRleHQuYXNfc3RyaW5nKCkKICAgICAgICAgICAgaWYgInppb25hZF9bIOewoeaYk+iDjOaZ"
        "ryBdIiBpbiBzIGFuZCAiUFJFU0VUM19MT1ciIGluIHM6CiAgICAgICAgICAgICAgICB2YWxpZF90ZXh0"
        "cy5hcHBlbmQodGV4dCkKICAgICAgICBpZiB2YWxpZF90ZXh0czogcmV0dXJuIHZhbGlkX3RleHRzWy0x"
        "XS5hc19zdHJpbmcoKSAjIOacgOaWsOOBruOCguOBruOCkui/lOOBmQogICAgICAgIHJldHVybiAiIgoK"
        "ICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gZ2V0YXR0cihjb250"
        "ZXh0LnNjZW5lLCBmIntQUkVGSVh9X3Byb3BzIikKICAgICAgICBncmlkX2N1c3RvbSA9IHJvdW5kKHBy"
        "b3BzLmN1c3RvbV9ncmlkX3NjYWxlLCA0KQogICAgICAgIGlmIG5vdCBjb250ZXh0LnByZWZlcmVuY2Vz"
        "LnRoZW1lczogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICB0aGVtZV92aWV3M2QgPSBjb250ZXh0"
        "LnByZWZlcmVuY2VzLnRoZW1lc1swXS52aWV3XzNkCiAgICAgICAgCiAgICAgICAgIyDjgqjjg6njg7zp"
        "mLLmraLjga7jgZ/jgoHplbfjgZXjgpLlm7rlrprjgZfjgabkuLjjgoHjgovplqLmlbAKICAgICAgICBk"
        "ZWYgcm91bmRfYyhjLCBzaXplKToKICAgICAgICAgICAgbHN0ID0gbGlzdChjKQogICAgICAgICAgICB3"
        "aGlsZSBsZW4obHN0KSA8IHNpemU6IGxzdC5hcHBlbmQoMS4wKQogICAgICAgICAgICByZXR1cm4gdHVw"
        "bGUocm91bmQodiwgNCkgZm9yIHYgaW4gbHN0WzpzaXplXSkKCiAgICAgICAgY29kZSA9IHNlbGYuZ2V0"
        "X3ZhbGlkX3NvdXJjZV9jb2RlKGNvbnRleHQpCiAgICAgICAgaWYgbm90IGNvZGU6CiAgICAgICAgICAg"
        "IHNlbGYucmVwb3J0KHsnRVJST1InfSwgIuato+OBl+OBhOOCveODvOOCueOCs+ODvOODieOBjOimi+OB"
        "pOOBi+OCiuOBvuOBm+OCk+OAgiIpCiAgICAgICAgICAgIHJldHVybiB7J0NBTkNFTExFRCd9CgogICAg"
        "ICAgICMg5pWw5YCk44O75Yid5pyf5YCk572u5o+bCiAgICAgICAgY29kZSA9IHJlLnN1YihyIkdSSURf"
        "Q1VTVE9NX0lOSVRccyo9XHMqW1xkXC5dKyIsIGYiR1JJRF9DVVNUT01fSU5JVCA9IHtncmlkX2N1c3Rv"
        "bX0iLCBjb2RlKQogICAgICAgIGNvZGUgPSByZS5zdWIociJDT0xPUl9HUklEX0lOSVRccyo9XHMqXCgu"
        "Kj9cKSIsIGYiQ09MT1JfR1JJRF9JTklUID0ge3JvdW5kX2ModGhlbWVfdmlldzNkLmdyaWQsIDQpfSIs"
        "IGNvZGUpCiAgICAgICAgY29kZSA9IHJlLnN1YihyIkNPTE9SX0JHX0hJR0hfSU5JVFxzKj1ccypcKC4q"
        "P1wpIiwgZiJDT0xPUl9CR19ISUdIX0lOSVQgPSB7cm91bmRfYyh0aGVtZV92aWV3M2Quc3BhY2UuZ3Jh"
        "ZGllbnRzLmhpZ2hfZ3JhZGllbnQsIDMpfSIsIGNvZGUpCiAgICAgICAgY29kZSA9IHJlLnN1YihyIkNP"
        "TE9SX0JHX0xPV19JTklUXHMqPVxzKlwoLio/XCkiLCBmIkNPTE9SX0JHX0xPV19JTklUID0ge3JvdW5k"
        "X2ModGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cy5ncmFkaWVudCwgMyl9IiwgY29kZSkKCiAgICAg"
        "ICAgIyAz44K744OD44OI6KiY5oa26Imy44Gu572u5o+bCiAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwg"
        "NCk6CiAgICAgICAgICAgIGNnID0gcm91bmRfYyhnZXRhdHRyKHByb3BzLCBmInByZXNldHtpfV9ncmlk"
        "IiksIDQpCiAgICAgICAgICAgIGNoID0gcm91bmRfYyhnZXRhdHRyKHByb3BzLCBmInByZXNldHtpfV9o"
        "aWdoIiksIDMpCiAgICAgICAgICAgIGNsID0gcm91bmRfYyhnZXRhdHRyKHByb3BzLCBmInByZXNldHtp"
        "fV9sb3ciKSwgMykKICAgICAgICAgICAgY29kZSA9IHJlLnN1YihyZiJQUkVTRVR7aX1fR1JJRFxzKj1c"
        "cypcKC4qP1wpIiwgZiJQUkVTRVR7aX1fR1JJRCA9IHtjZ30iLCBjb2RlKQogICAgICAgICAgICBjb2Rl"
        "ID0gcmUuc3ViKHJmIlBSRVNFVHtpfV9ISUdIXHMqPVxzKlwoLio/XCkiLCBmIlBSRVNFVHtpfV9ISUdI"
        "ID0ge2NofSIsIGNvZGUpCiAgICAgICAgICAgIGNvZGUgPSByZS5zdWIocmYiUFJFU0VUe2l9X0xPV1xz"
        "Kj1ccypcKC4qP1wpIiwgIGYiUFJFU0VUe2l9X0xPVyA9IHtjbH0iLCBjb2RlKQoKICAgICAgICBuZXdf"
        "dGV4dCA9IGJweS5kYXRhLnRleHRzLm5ldyhuYW1lPSJaSU9OQURfVXBkYXRlZF9Db2RlLnB5IikKICAg"
        "ICAgICBuZXdfdGV4dC5mcm9tX3N0cmluZyhjb2RlKQogICAgICAgIAogICAgICAgICMg55Sf5oiQ5b6M"
        "44CB44OG44Kt44K544OI44Ko44OH44Kj44K/44KS5YiH44KK5pu/44GI44KLCiAgICAgICAgZm9yIGFy"
        "ZWEgaW4gY29udGV4dC5zY3JlZW4uYXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVEVY"
        "VF9FRElUT1InOgogICAgICAgICAgICAgICAgYXJlYS5zcGFjZXMuYWN0aXZlLnRleHQgPSBuZXdfdGV4"
        "dAogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgIAogICAgICAgIHNlbGYucmVwb3J0"
        "KHsnSU5GTyd9LCBmIuaWsOOBl+OBhOOCs+ODvOODiSAne25ld190ZXh0Lm5hbWV9JyDjgpLnlJ/miJDj"
        "gZfjgb7jgZfjgZ/jgILjgZPjgaHjgonjgpLlrp/ooYzjgZfjgabjgY/jgaDjgZXjgYTjgIIiKQogICAg"
        "ICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIERJQ0VfVE9PTFNfNV9PVF9vcGVuX3VybChicHku"
        "dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ3bS57UFJFRklYfV9vcGVuX3VybCIKICAg"
        "IGJsX2xhYmVsID0gIuODquODs+OCr+OCkumWi+OBjyIKICAgIHVybDogYnB5LnByb3BzLlN0cmluZ1By"
        "b3BlcnR5KCkKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGlmIHNlbGYudXJs"
        "OiB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xh"
        "c3MgRElDRV9UT09MU181X09UX3JlbW92ZV9hZGRvbihicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxf"
        "aWRuYW1lID0gZiJ3bS57UFJFRklYfV9yZW1vdmVfYWRkb24iCiAgICBibF9sYWJlbCA9ICLjgqLjg4nj"
        "gqrjg7PliYrpmaTlrp/ooYwiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KTogCiAgICAgICAg"
        "dHJ5OiB1bnJlZ2lzdGVyKCk7IHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi44Ki44OJ44Kq44Oz44KS5YmK"
        "6Zmk44GX44G+44GX44GfIikKICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICByZXR1cm4geydGSU5J"
        "U0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOODl+ODreOD"
        "keODhuOCo+Wumue+qeOAkQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNz"
        "IERJQ0VfVE9PTFNfNV9Qcm9wZXJ0aWVzKGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgIGN1c3Rv"
        "bV9ncmlkX3NjYWxlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSLmjIflrprmlbDlgKQiLCBk"
        "ZWZhdWx0PUdSSURfQ1VTVE9NX0lOSVQsIG1pbj0wLjAwMSkKICAgIAogICAgIyDjgrXjgqTjgrooMywg"
        "NCnjgpLljrPlr4bjgavlm7rlrpoKICAgIHByZXNldDFfZ3JpZDogYnB5LnByb3BzLkZsb2F0VmVjdG9y"
        "UHJvcGVydHkobmFtZT0iRyIsIHN1YnR5cGU9J0NPTE9SJywgc2l6ZT00LCBkZWZhdWx0PVBSRVNFVDFf"
        "R1JJRCwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHByZXNldDFfaGlnaDogYnB5LnByb3BzLkZsb2F0VmVj"
        "dG9yUHJvcGVydHkobmFtZT0iSCIsIHN1YnR5cGU9J0NPTE9SJywgc2l6ZT0zLCBkZWZhdWx0PVBSRVNF"
        "VDFfSElHSCwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHByZXNldDFfbG93OiAgYnB5LnByb3BzLkZsb2F0"
        "VmVjdG9yUHJvcGVydHkobmFtZT0iTCIsIHN1YnR5cGU9J0NPTE9SJywgc2l6ZT0zLCBkZWZhdWx0PVBS"
        "RVNFVDFfTE9XLCBtaW49MC4wLCBtYXg9MS4wKQogICAgCiAgICBwcmVzZXQyX2dyaWQ6IGJweS5wcm9w"
        "cy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkciLCBzdWJ0eXBlPSdDT0xPUicsIHNpemU9NCwgZGVm"
        "YXVsdD1QUkVTRVQyX0dSSUQsIG1pbj0wLjAsIG1heD0xLjApCiAgICBwcmVzZXQyX2hpZ2g6IGJweS5w"
        "cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkgiLCBzdWJ0eXBlPSdDT0xPUicsIHNpemU9Mywg"
        "ZGVmYXVsdD1QUkVTRVQyX0hJR0gsIG1pbj0wLjAsIG1heD0xLjApCiAgICBwcmVzZXQyX2xvdzogIGJw"
        "eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkwiLCBzdWJ0eXBlPSdDT0xPUicsIHNpemU9"
        "MywgZGVmYXVsdD1QUkVTRVQyX0xPVywgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgcHJlc2V0M19n"
        "cmlkOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJHIiwgc3VidHlwZT0nQ09MT1In"
        "LCBzaXplPTQsIGRlZmF1bHQ9UFJFU0VUM19HUklELCBtaW49MC4wLCBtYXg9MS4wKQogICAgcHJlc2V0"
        "M19oaWdoOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJIIiwgc3VidHlwZT0nQ09M"
        "T1InLCBzaXplPTMsIGRlZmF1bHQ9UFJFU0VUM19ISUdILCBtaW49MC4wLCBtYXg9MS4wKQogICAgcHJl"
        "c2V0M19sb3c6ICBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJMIiwgc3VidHlwZT0n"
        "Q09MT1InLCBzaXplPTMsIGRlZmF1bHQ9UFJFU0VUM19MT1csIG1pbj0wLjAsIG1heD0xLjApCgoKIyA9"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkFVJ44OR44ON44OrICjjgqLjg4nj"
        "gqrjg7Pmp4vpgKAp44CRCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3Mg"
        "RElDRV9UT09MU181X1BUX21haW5fcGFuZWwoYnB5LnR5cGVzLlBhbmVsKToKICAgIGJsX2lkbmFtZSA9"
        "IGYie1BSRUZJWC51cHBlcigpfV9QVF9tYWluX3BhbmVsIgogICAgYmxfbGFiZWwgPSBBRERPTl9USVRM"
        "RQogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAg"
        "ICBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZCiAgICAKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRl"
        "eHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBnZXRhdHRyKGNv"
        "bnRleHQuc2NlbmUsIGYie1BSRUZJWH1fcHJvcHMiKQogICAgICAgIGluZm8gPSBnZXRfdmlld19pbmZv"
        "X2RhdGEoY29udGV4dCkKICAgICAgICAKICAgICAgICBsYXlvdXQub3BlcmF0b3IoZiJ2aWV3M2Que1BS"
        "RUZJWH1fcmVzZXRfdmlldyIsIHRleHQ9IumBuOaKnuOCquODluOCuOOCp+OCr+ODiOOCkueUu+mdouS4"
        "reWkruOBq+OBmeOCiyIsIGljb249J1pPT01fQUxMJykKICAgICAgICBsYXlvdXQuc2VwYXJhdG9yKGZh"
        "Y3Rvcj0xLjUpCiAgICAgICAgCiAgICAgICAgYm94X2luZm8gPSBsYXlvdXQuYm94KCkKICAgICAgICBy"
        "b3dfaW5mbyA9IGJveF9pbmZvLnJvdyhhbGlnbj1UcnVlKQogICAgICAgIHJvd19pbmZvLmxhYmVsKHRl"
        "eHQ9ZiLmg4XloLE6IFt7aW5mb1sncHJval90ZXh0J10gaWYgaW5mbyBlbHNlICfkuI3mmI4nfV0iLCBp"
        "Y29uPSdJTkZPJykKICAgICAgICByb3dfaW5mby5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV91cGRh"
        "dGVfaW5mbyIsIHRleHQ9IiIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgaWYg"
        "aW5mbzoKICAgICAgICAgICAgY29sX2luZm8gPSBib3hfaW5mby5jb2x1bW4oYWxpZ249VHJ1ZSkKICAg"
        "ICAgICAgICAgY29sX2luZm8ubGFiZWwodGV4dD1mIueUu+mdouS4reWkruS9jee9rjogWDoge2luZm9b"
        "J3RhcmdldF9wb3MnXS54Oi4xZn0sIFk6IHtpbmZvWyd0YXJnZXRfcG9zJ10ueTouMWZ9LCBaOiB7aW5m"
        "b1sndGFyZ2V0X3BvcyddLno6LjFmfSIpCiAgICAgICAgICAgIGNvbF9pbmZvLmxhYmVsKHRleHQ9ZiLo"
        "ppbluqfkvY3nva46IFg6IHtpbmZvWydjYW1fcG9zJ10ueDouMWZ9LCBZOiB7aW5mb1snY2FtX3Bvcydd"
        "Lnk6LjFmfSwgWjoge2luZm9bJ2NhbV9wb3MnXS56Oi4xZn0iKQogICAgICAgICAgICBjb2xfaW5mby5s"
        "YWJlbCh0ZXh0PWYi6KaW57ea5pa55ZCROiBYOiB7aW5mb1sndmlld19kaXInXS54Oi4xZn0sIFk6IHtp"
        "bmZvWyd2aWV3X2RpciddLnk6LjFmfSwgWjoge2luZm9bJ3ZpZXdfZGlyJ10uejouMWZ9IikKICAgICAg"
        "ICAgICAgY29sX2luZm8uc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sX2luZm8ubGFiZWwodGV4dD1m"
        "IueUu+mdouawtOW5s+OBruWkp+OBjeOBlToge2luZm9bJ3cnXTouMWZ9IikKICAgICAgICAgICAgY29s"
        "X2luZm8ubGFiZWwodGV4dD1mIueUu+mdouS4iuS4i+OBruWkp+OBjeOBlToge2luZm9bJ2gnXTouMWZ9"
        "IikKICAgICAgICAgICAgaWYgaW5mb1snaXNfcGVyc3AnXToKICAgICAgICAgICAgICAgIGNvbF9pbmZv"
        "LnNlcGFyYXRvcigpCiAgICAgICAgICAgICAgICBjb2xfaW5mby5sYWJlbCh0ZXh0PWYi6KaW5bqn44GL"
        "44KJ44Gu6Led6ZuiOiB7aW5mb1snZGlzdCddOi4xZn0iKQogICAgICAgICAgICBib3hfaW5mby5zZXBh"
        "cmF0b3IoKQogICAgICAgICAgICBib3hfaW5mby5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9jb3B5"
        "X2luZm8iLCBpY29uPSdDT1BZRE9XTicpCiAgICAgICAgZWxzZTogYm94X2luZm8ubGFiZWwodGV4dD0i"
        "M0Tjg5Pjg6Xjg7zjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiKQogICAgICAgICAgICAKICAgICAgICBs"
        "YXlvdXQuc2VwYXJhdG9yKGZhY3Rvcj0xLjUpCiAgICAgICAgCiAgICAgICAgYm94X2dyaWQgPSBsYXlv"
        "dXQuYm94KCkKICAgICAgICBib3hfZ3JpZC5sYWJlbCh0ZXh0PSLnsKHmmJPog4zmma8gLyBHcmlkIOio"
        "reWumiIsIGljb249J0dSSUQnKQogICAgICAgIHJvd19wcmVzZXQgPSBib3hfZ3JpZC5yb3coYWxpZ249"
        "VHJ1ZSkKICAgICAgICByb3dfcHJlc2V0Lm9wZXJhdG9yKGYidmlldzNkLntQUkVGSVh9X3NldF9ncmlk"
        "X3NjYWxlIiwgdGV4dD1mIumWk+malCB7R1JJRF9QUkVTRVRfMX0iKS5zY2FsZV92YWwgPSBHUklEX1BS"
        "RVNFVF8xCiAgICAgICAgcm93X3ByZXNldC5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9zZXRfZ3Jp"
        "ZF9zY2FsZSIsIHRleHQ9ZiLplpPpmpQge0dSSURfUFJFU0VUXzJ9Iikuc2NhbGVfdmFsID0gR1JJRF9Q"
        "UkVTRVRfMgogICAgICAgIAogICAgICAgIHJvd19jdXN0b20gPSBib3hfZ3JpZC5yb3coYWxpZ249VHJ1"
        "ZSkKICAgICAgICByb3dfY3VzdG9tLnByb3AocHJvcHMsICJjdXN0b21fZ3JpZF9zY2FsZSIpCiAgICAg"
        "ICAgcm93X2N1c3RvbS5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9zZXRfZ3JpZF9zY2FsZSIsIHRl"
        "eHQ9IumBqeeUqCIpLnVzZV9jdXN0b20gPSBUcnVlCiAgICAgICAgYm94X2dyaWQuc2VwYXJhdG9yKCkK"
        "ICAgICAgICAKICAgICAgICBpZiBjb250ZXh0LnByZWZlcmVuY2VzLnRoZW1lczoKICAgICAgICAgICAg"
        "dGhlbWVfdmlldzNkID0gY29udGV4dC5wcmVmZXJlbmNlcy50aGVtZXNbMF0udmlld18zZAogICAgICAg"
        "ICAgICBjb2xfdGhlbWUgPSBib3hfZ3JpZC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29s"
        "X3RoZW1lLnByb3AodGhlbWVfdmlldzNkLCAiZ3JpZCIsIHRleHQ9IkdyaWQg6Imy5aSJ5pu0IikKICAg"
        "ICAgICAgICAgY29sX3RoZW1lLnNlcGFyYXRvcigpCiAgICAgICAgICAgIGNvbF90aGVtZS5wcm9wKHRo"
        "ZW1lX3ZpZXczZC5zcGFjZS5ncmFkaWVudHMsICJoaWdoX2dyYWRpZW50IiwgdGV4dD0i55S76Z2i6IOM"
        "5pmv6ImyICjkuIopIikKICAgICAgICAgICAgY29sX3RoZW1lLnByb3AodGhlbWVfdmlldzNkLnNwYWNl"
        "LmdyYWRpZW50cywgImdyYWRpZW50IiwgdGV4dD0i55S76Z2i6IOM5pmv6ImyICjkuIspIikKCiAgICAg"
        "ICAgYm94X2dyaWQuc2VwYXJhdG9yKCkKICAgICAgICBib3hfZ3JpZC5vcGVyYXRvcihmInZpZXczZC57"
        "UFJFRklYfV9yZXNldF9zZXR0aW5ncyIsIGljb249J0xPT1BfQkFDSycpCiAgICAgICAgbGF5b3V0LnNl"
        "cGFyYXRvcihmYWN0b3I9MS41KQoKICAgICAgICBib3hfbWVtID0gbGF5b3V0LmJveCgpCiAgICAgICAg"
        "Ym94X21lbS5sYWJlbCh0ZXh0PSLjgqvjg6njg7zoqJjmhrbjgrnjg63jg4Pjg4ggKDPjgrvjg4Pjg4gp"
        "IiwgaWNvbj0nQ09MT1InKQogICAgICAgIAogICAgICAgIGZvciBpIGluIHJhbmdlKDEsIDQpOgogICAg"
        "ICAgICAgICByb3dfYnRuID0gYm94X21lbS5yb3coYWxpZ249VHJ1ZSkKICAgICAgICAgICAgcm93X2J0"
        "bi5sYWJlbCh0ZXh0PWYi44K744OD44OIIHtpfToiKQogICAgICAgICAgICByb3dfYnRuLm9wZXJhdG9y"
        "KGYidmlldzNkLntQUkVGSVh9X2FwcGx5X3ByZXNldCIsIHRleHQ9IumBqeeUqCIsIGljb249J0NIRUNL"
        "TUFSSycpLnByZXNldF9pZHggPSBpCiAgICAgICAgICAgIHJvd19idG4ub3BlcmF0b3IoZiJ2aWV3M2Qu"
        "e1BSRUZJWH1fc3RvcmVfcHJlc2V0IiwgdGV4dD0i6KiY5oa2IiwgaWNvbj0nRVlFRFJPUFBFUicpLnBy"
        "ZXNldF9pZHggPSBpCiAgICAgICAgICAgIAogICAgICAgICAgICByb3dfY29sb3IgPSBib3hfbWVtLnJv"
        "dyhhbGlnbj1UcnVlKQogICAgICAgICAgICByb3dfY29sb3IucHJvcChwcm9wcywgZiJwcmVzZXR7aX1f"
        "Z3JpZCIsIHRleHQ9IkciKQogICAgICAgICAgICByb3dfY29sb3IucHJvcChwcm9wcywgZiJwcmVzZXR7"
        "aX1faGlnaCIsIHRleHQ9IkgiKQogICAgICAgICAgICByb3dfY29sb3IucHJvcChwcm9wcywgZiJwcmVz"
        "ZXR7aX1fbG93IiwgIHRleHQ9IkwiKQogICAgICAgICAgICBib3hfbWVtLnNlcGFyYXRvcigpCiAgICAg"
        "ICAgCiAgICAgICAgYm94X21lbS5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9leHBvcnRfY29kZSIs"
        "IGljb249J1RFWFQnKQogICAgICAgIGxheW91dC5zZXBhcmF0b3IoZmFjdG9yPTEuNSkKICAgICAgICAK"
        "ICAgICAgICBib3hfc3lzID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94X3N5cy5sYWJlbCh0ZXh0PSLj"
        "grfjgrnjg4bjg6AgLyDjg6rjg7Pjgq8iLCBpY29uPSdQUkVGRVJFTkNFUycpCiAgICAgICAgCiAgICAg"
        "ICAgZm9yIG5hbWUsIHVybCBpbiBbKExJTktfTkFNRV8xLCBMSU5LX1VSTF8xKSwgKExJTktfTkFNRV8y"
        "LCBMSU5LX1VSTF8yKSwgKExJTktfTkFNRV8zLCBMSU5LX1VSTF8zKSwgKExJTktfTkFNRV80LCBMSU5L"
        "X1VSTF80KSwgKExJTktfTkFNRV81LCBMSU5LX1VSTF81KV06CiAgICAgICAgICAgIGlmIG5hbWUgYW5k"
        "IHVybDoKICAgICAgICAgICAgICAgIG9wID0gYm94X3N5cy5vcGVyYXRvcihmIndtLntQUkVGSVh9X29w"
        "ZW5fdXJsIiwgdGV4dD1uYW1lLCBpY29uPSdVUkwnKQogICAgICAgICAgICAgICAgb3AudXJsID0gdXJs"
        "CiAgICAgICAgICAgICAgICAKICAgICAgICBib3hfc3lzLnNlcGFyYXRvcigpCiAgICAgICAgYm94X3N5"
        "cy5vcGVyYXRvcihmIndtLntQUkVGSVh9X3JlbW92ZV9hZGRvbiIsIGljb249J0NBTkNFTCcpCgoKIyA9"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOeZu+mMsuODu+WJiumZpOWHpueQ"
        "huOAkQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzZXMgPSBbCiAgICBE"
        "SUNFX1RPT0xTXzVfUHJvcGVydGllcywKICAgIERJQ0VfVE9PTFNfNV9PVF9yZXNldF92aWV3LAogICAg"
        "RElDRV9UT09MU181X09UX3VwZGF0ZV9pbmZvLAogICAgRElDRV9UT09MU181X09UX2NvcHlfaW5mbywK"
        "ICAgIERJQ0VfVE9PTFNfNV9PVF9zZXRfZ3JpZF9zY2FsZSwKICAgIERJQ0VfVE9PTFNfNV9PVF9yZXNl"
        "dF9zZXR0aW5ncywKICAgIERJQ0VfVE9PTFNfNV9PVF9hcHBseV9wcmVzZXQsCiAgICBESUNFX1RPT0xT"
        "XzVfT1Rfc3RvcmVfcHJlc2V0LAogICAgRElDRV9UT09MU181X09UX2V4cG9ydF9jb2RlLAogICAgRElD"
        "RV9UT09MU181X09UX29wZW5fdXJsLAogICAgRElDRV9UT09MU181X09UX3JlbW92ZV9hZGRvbiwKICAg"
        "IERJQ0VfVE9PTFNfNV9QVF9tYWluX3BhbmVsCl0KCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGMgaW4g"
        "Y2xhc3NlczogYnB5LnV0aWxzLnJlZ2lzdGVyX2NsYXNzKGMpCiAgICBzZXRhdHRyKGJweS50eXBlcy5T"
        "Y2VuZSwgZiJ7UFJFRklYfV9wcm9wcyIsIGJweS5wcm9wcy5Qb2ludGVyUHJvcGVydHkodHlwZT1ESUNF"
        "X1RPT0xTXzVfUHJvcGVydGllcykpCgpkZWYgdW5yZWdpc3RlcigpOgogICAgaWYgaGFzYXR0cihicHku"
        "dHlwZXMuU2NlbmUsIGYie1BSRUZJWH1fcHJvcHMiKTogZGVsYXR0cihicHkudHlwZXMuU2NlbmUsIGYi"
        "e1BSRUZJWH1fcHJvcHMiKQogICAgZm9yIGMgaW4gcmV2ZXJzZWQoY2xhc3Nlcyk6CiAgICAgICAgdHJ5"
        "OiBicHkudXRpbHMudW5yZWdpc3Rlcl9jbGFzcyhjKQogICAgICAgIGV4Y2VwdDogcGFzcwoKaWYgX19u"
        "YW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHRyeTogdW5yZWdpc3RlcigpCiAgICBleGNlcHQ6IHBhc3MK"
        "ICAgIHJlZ2lzdGVyKCk="
        )
    },
    {
        "name": "平面2つなす角度 20260713_007",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
        "ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA3LCAwKSwKICAgICJi"
        "bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
        "IiwKICAgICJkZXNjcmlwdGlvbiI6ICLjgqrjg5bjgrjjgqfjgq/jg4jnlJ/miJDjga7jg57jgrnjgr/j"
        "g7zliLblvqHjgajjgIEz44Gk44Gu5ZCM5b+D55CD44Gr44KI44KL6Led6Zui44Gu6KaW6Kaa5YyWIiwK"
        "ICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQgYm1lc2gKaW1wb3J0"
        "IG1hdGgKaW1wb3J0IG1hdGh1dGlscwppbXBvcnQgcmFuZG9tCgojID09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyAxLiDl"
        "iJ3mnJ/lgKTlrprnvqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBSRUZJWCA9ICJUQ1RBXyIKUEFSRU5UX0NPTExF"
        "Q1RJT05fTkFNRSA9ICJUb3J1c0N1YmVTcGFjZSIKU1VCX0NPTExFQ1RJT05fTkFNRSA9ICJBbmFseXpl"
        "ck9iamVjdHMiClRPUlVTX1NLRUxFVE9OX05BTUUgPSAiVG9ydXNTa2VsZXRvbiIKU1BIRVJFXzFfTkFN"
        "RSA9ICJTcGhlcmVfMSIKU1BIRVJFXzJfTkFNRSA9ICJTcGhlcmVfMiIKU1BIRVJFXzNfTkFNRSA9ICJT"
        "cGhlcmVfMyIKVFJJQU5HTEVfQV9OQU1FID0gIlRyaWFuZ2xlX0EiClRSSUFOR0xFX0JfTkFNRSA9ICJU"
        "cmlhbmdsZV9CIgpBUlJPV19OQU1FID0gIkFycm93X1Nob3J0ZXN0RGlzdCIKQ0lSQ0xFX05BTUUgPSAi"
        "Q2lyY2xlX1BsYW5lQiIKRElTVF9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfU2hvcnRlc3REaXN0X0lubmVy"
        "IgpPVVRFUl9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfT3V0ZXJCb3VuZCIKSEVNSVNQSEVSRV9OQU1FID0g"
        "IkhlbWlzcGhlcmVfUGxhbmVCIgpDT05DX1NQSEVSRV8xX05BTUUgPSAiU3BoZXJlX0NvbmNfMSIgIyDm"
        "lrDopo86IOWQjOW/g+eQgzEKQ09OQ19TUEhFUkVfMl9OQU1FID0gIlNwaGVyZV9Db25jXzIiICMg5paw"
        "6KaPOiDlkIzlv4PnkIMyCkNPTkNfU1BIRVJFXzNfTkFNRSA9ICJTcGhlcmVfQ29uY18zIiAjIOaWsOim"
        "jzog5ZCM5b+D55CDMwoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMi4g44OX44Ot44OR44OG44Kj5a6a576p77yI"
        "6KGo56S65pu05paw44Kz44O844Or44OQ44OD44Kv5ZCr44KA77yJCiMgPT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkZWYg"
        "dXBkYXRlX3Zpc2liaWxpdHkoc2VsZiwgY29udGV4dCk6CiAgICAiIiLjg4Hjgqfjg4Pjgq/jg5zjg4Pj"
        "gq/jgrnlpInmm7TmmYLjgavjgIHoqbLlvZPjgqrjg5bjgrjjgqfjgq/jg4jjga7ooajnpLov6Z2e6KGo"
        "56S644KS5Y2z5bqn44Gr5YiH44KK5pu/44GI44KLIiIiCiAgICBtYXBwaW5nID0gewogICAgICAgIHNl"
        "bGYuc2hvd190b3J1czogW1RPUlVTX1NLRUxFVE9OX05BTUVdLAogICAgICAgIHNlbGYuc2hvd190YXJn"
        "ZXRzOiBbU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFNRV0sCiAgICAgICAg"
        "c2VsZi5zaG93X3RyaWFuZ2xlczogW1RSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FXSwKICAg"
        "ICAgICBzZWxmLnNob3dfYXJyb3c6IFtBUlJPV19OQU1FXSwKICAgICAgICBzZWxmLnNob3dfY2lyY2xl"
        "OiBbQ0lSQ0xFX05BTUVdLAogICAgICAgIHNlbGYuc2hvd19oZW1pc3BoZXJlOiBbSEVNSVNQSEVSRV9O"
        "QU1FXSwKICAgICAgICBzZWxmLnNob3dfaW5uZXJfc3BoZXJlOiBbRElTVF9TUEhFUkVfTkFNRV0sCiAg"
        "ICAgICAgc2VsZi5zaG93X291dGVyX3NwaGVyZTogW09VVEVSX1NQSEVSRV9OQU1FXSwKICAgICAgICBz"
        "ZWxmLnNob3dfY29uY19zcGhlcmVzOiBbQ09OQ19TUEhFUkVfMV9OQU1FLCBDT05DX1NQSEVSRV8yX05B"
        "TUUsIENPTkNfU1BIRVJFXzNfTkFNRV0KICAgIH0KICAgIGZvciBpc19zaG93LCBvYmpfbmFtZXMgaW4g"
        "bWFwcGluZy5pdGVtcygpOgogICAgICAgIGZvciBuYW1lIGluIG9ial9uYW1lczoKICAgICAgICAgICAg"
        "b2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQobmFtZSkKICAgICAgICAgICAgaWYgb2JqOgogICAgICAg"
        "ICAgICAgICAgb2JqLmhpZGVfdmlld3BvcnQgPSBub3QgaXNfc2hvdwogICAgICAgICAgICAgICAgb2Jq"
        "LmhpZGVfcmVuZGVyID0gbm90IGlzX3Nob3cKCmNsYXNzIFRDVEFfUHJvcGVydGllcyhicHkudHlwZXMu"
        "UHJvcGVydHlHcm91cCk6CiAgICAjIC0tLSDlhajkvZPooajnpLrjgrPjg7Pjg4jjg63jg7zjg6sgKE5F"
        "VykgLS0tCiAgICBzaG93X3RvcnVzOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuODiOODvOOD"
        "qeOCuemqqOagvCIsIGRlZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNpYmlsaXR5KQogICAgc2hv"
        "d190YXJnZXRzOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IjPjgaTjga7nkIPkvZMo54K5KSIs"
        "IGRlZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNpYmlsaXR5KQogICAgc2hvd190cmlhbmdsZXM6"
        "IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5LiJ6KeS5b2iQeODu0IiLCBkZWZhdWx0PVRydWUs"
        "IHVwZGF0ZT11cGRhdGVfdmlzaWJpbGl0eSkKICAgIHNob3dfYXJyb3c6IGJweS5wcm9wcy5Cb29sUHJv"
        "cGVydHkobmFtZT0i5pyA55+t6Led6Zui55+i5Y2wIiwgZGVmYXVsdD1UcnVlLCB1cGRhdGU9dXBkYXRl"
        "X3Zpc2liaWxpdHkpCiAgICBzaG93X2NpcmNsZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLn"
        "nYDlvL7lhobnm6QiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzaWJpbGl0eSkKICAgIHNo"
        "b3dfaGVtaXNwaGVyZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlkJHjgZPjgYblgbTljYrn"
        "kIMiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzaWJpbGl0eSkKICAgIHNob3dfaW5uZXJf"
        "c3BoZXJlOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuWGheauu+eQgyjmnIDnn60pIiwgZGVm"
        "YXVsdD1UcnVlLCB1cGRhdGU9dXBkYXRlX3Zpc2liaWxpdHkpCiAgICBzaG93X291dGVyX3NwaGVyZTog"
        "YnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlpJbmrrvnkIMo5pyA5aSnKSIsIGRlZmF1bHQ9VHJ1"
        "ZSwgdXBkYXRlPXVwZGF0ZV92aXNpYmlsaXR5KQogICAgc2hvd19jb25jX3NwaGVyZXM6IGJweS5wcm9w"
        "cy5Cb29sUHJvcGVydHkobmFtZT0iM+OBpOOBruWQjOW/g+eQgyIsIGRlZmF1bHQ9VHJ1ZSwgdXBkYXRl"
        "PXVwZGF0ZV92aXNpYmlsaXR5KQoKICAgICMgLS0tIOWfuuacrOioreWumiAtLS0KICAgIHRvcnVzX2Nv"
        "bG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciIsIHN1YnR5cGU9J0NP"
        "TE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgwLjEsIDAuNSwgMC44LCAxLjApLCBtaW49MC4wLCBt"
        "YXg9MS4wKQogICAgdG9ydXNfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFscGhh"
        "IiwgZGVmYXVsdD0wLjUsIG1pbj0wLjAsIG1heD0xLjApCiAgICAKICAgIG1vZGVfb3B0aW9ucyA9IFso"
        "J1JBTkRPTScsICLjg6njg7Pjg4Djg6AiLCAiIiksICgnTUFOVUFMJywgIuaMh+WumuS9jee9riIsICIi"
        "KV0KICAgIHNwMV9tb2RlOiBicHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1t"
        "b2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRPTScpCiAgICBzcDJfbW9kZTogYnB5LnByb3BzLkVudW1Q"
        "cm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQog"
        "ICAgc3AzX21vZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVf"
        "b3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykKICAgIAogICAgc3AxX3BvczogYnB5LnByb3BzLkZsb2F0"
        "VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4wLCAyLjApKQog"
        "ICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMiIs"
        "IGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkpCiAgICBzcDNfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0"
        "b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAzIiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0yLjApKQogICAg"
        "CiAgICBzcDFfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0o"
        "MCwwLDApKQogICAgc3AyX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRl"
        "ZmF1bHQ9KDAsMCwwKSkKICAgIHNwM19hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
        "ZXJ0eShkZWZhdWx0PSgwLDAsMCkpCgogICAgdHJpX3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJv"
        "cGVydHkobmFtZT0iVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjApCiAgICB0cmlfYWxwaGE6"
        "IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFscGhhIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjAs"
        "IG1heD0xLjApCiAgICB0cmlBX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
        "PSJDb2xvciBBIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4y"
        "LCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlCX2NvbG9yOiBicHkucHJvcHMuRmxv"
        "YXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciBCIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXpl"
        "PTQsIGRlZmF1bHQ9KDAuMiwgMC44LCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyAt"
        "LS0g6KaW6Kaa5YyW6Kit5a6aIC0tLQogICAgYXJyb3dfdGhpY2tuZXNzOiBicHkucHJvcHMuRmxvYXRQ"
        "cm9wZXJ0eShuYW1lPSJBcnJvdyBUaGljayIsIGRlZmF1bHQ9MC4wNSwgbWluPTAuMDEsIG1heD0xLjAp"
        "CiAgICBhcnJvd19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQXJyb3cg"
        "Q29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjgsIDAu"
        "MCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgY2lyY2xlX3JhZGl1czogYnB5LnByb3Bz"
        "LkZsb2F0UHJvcGVydHkobmFtZT0iUmFkaXVzIChDaXIvSGVtaSkiLCBkZWZhdWx0PTMuMCwgbWluPTAu"
        "MSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNs"
        "ZSBUaGljayIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgY2lyY2xlX2NvbG9yOiBicHkucHJvcHMu"
        "RmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDaXJjbGUgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1N"
        "QScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjUsIDAuMCwgMC40KSwgbWluPTAuMCwgbWF4PTEuMCkK"
        "ICAgIGNpcmNsZV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQ2lyY2xlIEFscGhh"
        "IiwgZGVmYXVsdD0wLjQsIG1pbj0wLjAsIG1heD0xLjApCiAgICAKICAgIGhlbWlfZmlsbF9ib3R0b206"
        "IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5bqV6Z2i44KS5L2c44KLIChGaWxsKSIsIGRlZmF1"
        "bHQ9RmFsc2UpCiAgICBoZW1pX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
        "PSJIZW1pIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwg"
        "MS4wLCAwLjUsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBoZW1pX2FscGhhOiBicHkucHJvcHMu"
        "RmxvYXRQcm9wZXJ0eShuYW1lPSJIZW1pIEFscGhhIiwgZGVmYXVsdD0wLjMsIG1pbj0wLjAsIG1heD0x"
        "LjApCgogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5h"
        "bWU9IklubmVyIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAu"
        "MCwgMC44LCAxLjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBkaXN0X3NwaGVyZV9hbHBoYTog"
        "YnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iSW5uZXIgQWxwaGEiLCBkZWZhdWx0PTAuMDYsIG1p"
        "bj0wLjAsIG1heD0xLjApCiAgICAKICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0"
        "VmVjdG9yUHJvcGVydHkobmFtZT0iT3V0ZXIgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNp"
        "emU9NCwgZGVmYXVsdD0oMC44LCAwLjAsIDEuMCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIG91"
        "dGVyX3NwaGVyZV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iT3V0ZXIgQWxwaGEi"
        "LCBkZWZhdWx0PTAuMDQsIG1pbj0wLjAsIG1heD0xLjApCgogICAgY29uY19zcGhlcmVfY29sb3I6IGJw"
        "eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNvbmMgQ29sb3IiLCBzdWJ0eXBlPSdDT0xP"
        "Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC41LCAwLjgsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4"
        "PTEuMCkKICAgIGNvbmNfc3BoZXJlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJD"
        "b25jIEFscGhhIiwgZGVmYXVsdD0wLjA1LCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMgLS0tIOaDheWg"
        "sSAtLS0KICAgIHZpZXdfY2VudGVyOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJW"
        "aWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6IGJweS5wcm9wcy5JbnRWZWN0b3JQcm9wZXJ0eShuYW1l"
        "PSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikKICAgIHZpZXdfZGlzdGFuY2U6IGJweS5wcm9wcy5GbG9h"
        "dFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFuY2UiKQogICAgCiAgICBnZW9fc3AxX2Rpc3Q6IGJweS5w"
        "cm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDFfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQ"
        "cm9wZXJ0eShzaXplPTMpCiAgICBnZW9fc3AyX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkK"
        "ICAgIGdlb19zcDJfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBn"
        "ZW9fc3AzX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDNfYW5nOiBicHku"
        "cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICAKICAgIGdlb19wbGFuZV9hbmdsZTog"
        "YnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5lX2Rpc3Q6IGJweS5wcm9wcy5GbG9h"
        "dFByb3BlcnR5KCkKICAgIGdlb19wbGFuZV9mb290OiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
        "eShzaXplPTMpCiAgICBnZW9fcGxhbmVfbm9ybWFsOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
        "eShzaXplPTMpCiAgICBnZW9fb3V0ZXJfcmFkaXVzOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCgoK"
        "IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09CiMgMy4g44Om44O844OG44Kj44Oq44OG44Kj6Zai5pWwCiMgPT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PQpkZWYgZ2V0XzNkX3ZpZXdfY29udGV4dCgpOgogICAgZm9yIHdpbmRvdyBpbiBicHkuY29udGV4"
        "dC53aW5kb3dfbWFuYWdlci53aW5kb3dzOgogICAgICAgIGZvciBhcmVhIGluIHdpbmRvdy5zY3JlZW4u"
        "YXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6CiAgICAgICAgICAgICAg"
        "ICBmb3IgcmVnaW9uIGluIGFyZWEucmVnaW9uczoKICAgICAgICAgICAgICAgICAgICBpZiByZWdpb24u"
        "dHlwZSA9PSAnV0lORE9XJzoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFyZWEsIHJlZ2lv"
        "biwgYXJlYS5zcGFjZXMuYWN0aXZlCiAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQoKZGVmIGNyZWF0"
        "ZV9tYXRlcmlhbChuYW1lLCBjb2xvciwgYWxwaGEpOgogICAgbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxz"
        "LmdldChuYW1lKQogICAgaWYgbm90IG1hdDoKICAgICAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMu"
        "bmV3KG5hbWUpCiAgICBtYXQudXNlX25vZGVzID0gVHJ1ZQogICAgaWYgaGFzYXR0cihtYXQsICJibGVu"
        "ZF9tZXRob2QiKTogbWF0LmJsZW5kX21ldGhvZCA9ICdCTEVORCcKICAgIGlmIGhhc2F0dHIobWF0LCAi"
        "c2hhZG93X21ldGhvZCIpOiBtYXQuc2hhZG93X21ldGhvZCA9ICdOT05FJwogICAgYnNkZiA9IG1hdC5u"
        "b2RlX3RyZWUubm9kZXMuZ2V0KCJQcmluY2lwbGVkIEJTREYiKQogICAgaWYgYnNkZjoKICAgICAgICBi"
        "c2RmLmlucHV0c1siQmFzZSBDb2xvciJdLmRlZmF1bHRfdmFsdWUgPSBjb2xvcgogICAgICAgIGJzZGYu"
        "aW5wdXRzWyJBbHBoYSJdLmRlZmF1bHRfdmFsdWUgPSBhbHBoYQogICAgcmV0dXJuIG1hdAoKZGVmIGNh"
        "bGNfZ2VvX2RhdGEocHJvcHMpOgogICAgZGVmIGNhbGNfZGlzdF9hbmdsZSh2ZWMpOgogICAgICAgIGRp"
        "c3QgPSB2ZWMubGVuZ3RoCiAgICAgICAgaWYgZGlzdCA9PSAwOiByZXR1cm4gMCwgMCwgMCwgMAogICAg"
        "ICAgIG4gPSB2ZWMubm9ybWFsaXplZCgpCiAgICAgICAgcmV0dXJuIGRpc3QsIG1hdGguZGVncmVlcyht"
        "YXRoLmFjb3Mobi54KSksIG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi55KSksIG1hdGguZGVncmVlcyht"
        "YXRoLmFjb3Mobi56KSkKCiAgICBwMCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsIDAsIDApKQogICAgcDEg"
        "PSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLnNwMV9hY3R1YWxfcG9zKQogICAgcDIgPSBtYXRodXRpbHMu"
        "VmVjdG9yKHByb3BzLnNwMl9hY3R1YWxfcG9zKQogICAgcDMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3Bz"
        "LnNwM19hY3R1YWxfcG9zKQoKICAgIHByb3BzLmdlb19zcDFfZGlzdCwgKnByb3BzLmdlb19zcDFfYW5n"
        "ID0gY2FsY19kaXN0X2FuZ2xlKHAxKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0LCAqcHJvcHMuZ2VvX3Nw"
        "Ml9hbmcgPSBjYWxjX2Rpc3RfYW5nbGUocDIpCiAgICBwcm9wcy5nZW9fc3AzX2Rpc3QsICpwcm9wcy5n"
        "ZW9fc3AzX2FuZyA9IGNhbGNfZGlzdF9hbmdsZShwMykKICAgIAogICAgcHJvcHMuZ2VvX291dGVyX3Jh"
        "ZGl1cyA9IG1heChwcm9wcy5nZW9fc3AxX2Rpc3QsIHByb3BzLmdlb19zcDJfZGlzdCwgcHJvcHMuZ2Vv"
        "X3NwM19kaXN0KQoKICAgIG4xID0gKHAxIC0gcDApLmNyb3NzKHAyIC0gcDApCiAgICBuMiA9IChwMiAt"
        "IHAxKS5jcm9zcyhwMyAtIHAxKQogICAgCiAgICBpZiBuMS5sZW5ndGggPiAwLjAwMDEgYW5kIG4yLmxl"
        "bmd0aCA+IDAuMDAwMToKICAgICAgICBuMV9ub3JtLCBuMl9ub3JtID0gbjEubm9ybWFsaXplZCgpLCBu"
        "Mi5ub3JtYWxpemVkKCkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gbjJfbm9ybQogICAg"
        "ICAgIHByb3BzLmdlb19wbGFuZV9hbmdsZSA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3MobWF4KC0xLjAs"
        "IG1pbigxLjAsIG4xX25vcm0uZG90KG4yX25vcm0pKSkpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
        "ZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwx"
        "KQoKICAgIGlmIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICB0ID0gbjIubm9ybWFsaXplZCgpLmRv"
        "dChwMSkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9IGFicyh0KQogICAgICAgIHByb3BzLmdl"
        "b19wbGFuZV9mb290ID0gbjIubm9ybWFsaXplZCgpICogdAogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
        "ZW9fcGxhbmVfZGlzdCA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0gKDAsIDAsIDAp"
        "CgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWHpueQhuODreOCuOODg+OC"
        "rykKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVkKGJweS50eXBlcy5PcGVy"
        "YXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgogICAgYmxfbGFiZWwgPSAi"
        "6YG45oqe44KS55S76Z2i5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAg"
        "ICAgICAgYnB5Lm9wcy52aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAgcmV0dXJuIHsnRklOSVNI"
        "RUQnfQoKY2xhc3MgVENUQV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAg"
        "YmxfaWRuYW1lID0gInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIueUu+mdouaD"
        "heWgseabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGFyZWEsIHJl"
        "Z2lvbiwgc3BhY2UgPSBnZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBpZiBub3Qgc3BhY2U6IHJl"
        "dHVybiB7J0NBTkNFTExFRCd9CiAgICAgICAgcnYzZCA9IHNwYWNlLnJlZ2lvbl8zZAogICAgICAgIHBy"
        "b3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgcHJvcHMudmlld19jZW50ZXIgPSBy"
        "djNkLnZpZXdfbG9jYXRpb24KICAgICAgICBwcm9wcy52aWV3X3NpemUgPSAocmVnaW9uLndpZHRoLCBy"
        "ZWdpb24uaGVpZ2h0KQogICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBydjNkLnZpZXdfZGlzdGFu"
        "Y2UgaWYgcnYzZC52aWV3X3BlcnNwZWN0aXZlID09ICdQRVJTUCcgZWxzZSAwLjAKICAgICAgICByZXR1"
        "cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0NvcHlWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0"
        "b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY29weV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLj"
        "g5Pjg6Xjg7zmg4XloLHjgpLjgrPjg5Tjg7wiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToK"
        "ICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIGxpbmVzID0gWwog"
        "ICAgICAgICAgICBmIkNlbnRlcjogWD17cHJvcHMudmlld19jZW50ZXIueDouMWZ9LCBZPXtwcm9wcy52"
        "aWV3X2NlbnRlci55Oi4xZn0sIFo9e3Byb3BzLnZpZXdfY2VudGVyLno6LjFmfSIsCiAgICAgICAgICAg"
        "IGYiU2l6ZTogVz17cHJvcHMudmlld19zaXplWzBdfSwgSD17cHJvcHMudmlld19zaXplWzFdfSIsCiAg"
        "ICAgICAgICAgIGYiRGlzdGFuY2U6IHtwcm9wcy52aWV3X2Rpc3RhbmNlOi4xZn0iIGlmIHByb3BzLnZp"
        "ZXdfZGlzdGFuY2UgPiAwIGVsc2UgIkRpc3RhbmNlOiBOL0EiCiAgICAgICAgXQogICAgICAgIGNvbnRl"
        "eHQud2luZG93X21hbmFnZXIuY2xpcGJvYXJkID0gIlxuIi5qb2luKGxpbmVzKQogICAgICAgIHNlbGYu"
        "cmVwb3J0KHsnSU5GTyd9LCAi44Kz44OU44O844GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydG"
        "SU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0NyZWF0ZU9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToK"
        "ICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNyZWF0ZV9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi5L2c5oiQ"
        "IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNj"
        "ZW5lLnRjdGFfcHJvcHMKICAgICAgICAKICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVj"
        "dGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgbm90IHBhcmVudF9jb2w6"
        "CiAgICAgICAgICAgIHBhcmVudF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5uZXcoUEFSRU5UX0NP"
        "TExFQ1RJT05fTkFNRSkKICAgICAgICAgICAgY29udGV4dC5zY2VuZS5jb2xsZWN0aW9uLmNoaWxkcmVu"
        "LmxpbmsocGFyZW50X2NvbCkKICAgICAgICAgICAgCiAgICAgICAgc3ViX2NvbCA9IGJweS5kYXRhLmNv"
        "bGxlY3Rpb25zLmdldChTVUJfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlmIG5vdCBzdWJfY29sOgog"
        "ICAgICAgICAgICBzdWJfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMubmV3KFNVQl9DT0xMRUNUSU9O"
        "X05BTUUpCiAgICAgICAgICAgIHBhcmVudF9jb2wuY2hpbGRyZW4ubGluayhzdWJfY29sKQoKICAgICAg"
        "ICAjIOaXouWtmOWJiumZpAogICAgICAgIG5hbWVzX3RvX2RlbGV0ZSA9IFsKICAgICAgICAgICAgVE9S"
        "VVNfU0tFTEVUT05fTkFNRSwgU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFN"
        "RSwgCiAgICAgICAgICAgIFRSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FLCBBUlJPV19OQU1F"
        "LCBDSVJDTEVfTkFNRSwgCiAgICAgICAgICAgIERJU1RfU1BIRVJFX05BTUUsIE9VVEVSX1NQSEVSRV9O"
        "QU1FLCBIRU1JU1BIRVJFX05BTUUsIAogICAgICAgICAgICBDT05DX1NQSEVSRV8xX05BTUUsIENPTkNf"
        "U1BIRVJFXzJfTkFNRSwgQ09OQ19TUEhFUkVfM19OQU1FCiAgICAgICAgXQogICAgICAgIGZvciBvYmpf"
        "bmFtZSBpbiBuYW1lc190b19kZWxldGU6CiAgICAgICAgICAgIGlmIG9ial9uYW1lIGluIGJweS5kYXRh"
        "Lm9iamVjdHM6CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShicHkuZGF0YS5v"
        "YmplY3RzW29ial9uYW1lXSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMgLS0tIOWun+W6p+aomeOB"
        "ruioiOeulyAtLS0KICAgICAgICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9wX3Bvcyk6CiAgICAgICAgICAg"
        "IHJldHVybiAocmFuZG9tLnVuaWZvcm0oLTUsNSksIHJhbmRvbS51bmlmb3JtKC01LDUpLCByYW5kb20u"
        "dW5pZm9ybSgtNSw1KSkgaWYgbW9kZSA9PSAnUkFORE9NJyBlbHNlIHByb3BfcG9zCgogICAgICAgIHBy"
        "b3BzLnNwMV9hY3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDFfbW9kZSwgcHJvcHMuc3AxX3BvcykK"
        "ICAgICAgICBwcm9wcy5zcDJfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AyX21vZGUsIHByb3Bz"
        "LnNwMl9wb3MpCiAgICAgICAgcHJvcHMuc3AzX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3BzLnNwM19t"
        "b2RlLCBwcm9wcy5zcDNfcG9zKQoKICAgICAgICBjYWxjX2dlb19kYXRhKHByb3BzKQoKICAgICAgICAj"
        "IC0tLSDjgqrjg5bjgrjjgqfjgq/jg4jnlJ/miJDplqLmlbAgLS0tCiAgICAgICAgZGVmIG1ha2Vfc3Bo"
        "ZXJlKG5hbWUsIGxvYywgciwgbWF0KToKICAgICAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5u"
        "ZXcobmFtZSkKICAgICAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcobmFtZSwgbWVzaCkK"
        "ICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgICAgICBibSA9IGJtZXNo"
        "Lm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9"
        "MzIsIHZfc2VnbWVudHM9MTYsIHJhZGl1cz1yKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2gpCiAg"
        "ICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBsb2MKICAgICAgICAg"
        "ICAgZm9yIHBvbHkgaW4gbWVzaC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0gVHJ1ZQogICAgICAg"
        "ICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0gbWF0CiAgICAgICAgICAgIHJldHVybiBvYmoKCiAgICAg"
        "ICAgIyAxLiDpqqjmoLwKICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhUT1JVU19TS0VM"
        "RVRPTl9OQU1FKQogICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3KFRPUlVTX1NLRUxFVE9O"
        "X05BTUUsIG1lc2gpCiAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgIGJtID0g"
        "Ym1lc2gubmV3KCkKICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2N1YmUoYm0sIHNpemU9MTAuMCkKICAg"
        "ICAgICBibWVzaC5vcHMuZGVsZXRlKGJtLCBnZW9tPWJtLmZhY2VzLCBjb250ZXh0PSdGQUNFUycpCiAg"
        "ICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgIGJtLmZyZWUoKQogICAgICAgIHNraW5fbW9kID0g"
        "b2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU2tpbiIsIHR5cGU9J1NLSU4nKQogICAgICAgIHN1Yl9tb2Qg"
        "PSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTdWJkaXZpc2lvbiIsIHR5cGU9J1NVQlNVUkYnKQogICAg"
        "ICAgIHN1Yl9tb2QubGV2ZWxzID0gMgogICAgICAgIGZvciB2IGluIG9iai5kYXRhLnNraW5fdmVydGlj"
        "ZXNbMF0uZGF0YTogdi5yYWRpdXMgPSAoMC4yLCAwLjIpCiAgICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlh"
        "bCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Ub3J1cyIsIHByb3BzLnRvcnVzX2NvbG9yLCBw"
        "cm9wcy50b3J1c19hbHBoYSkKCiAgICAgICAgIyAyLiDjgr/jg7zjgrLjg4Pjg4jnkIMKICAgICAgICBt"
        "YXRfdGFyZ2V0ID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0X1RhcmdldCIsICgxLDEsMSwxKSwg"
        "MS4wKQogICAgICAgIG1ha2Vfc3BoZXJlKFNQSEVSRV8xX05BTUUsIHByb3BzLnNwMV9hY3R1YWxfcG9z"
        "LCAwLjUsIG1hdF90YXJnZXQpCiAgICAgICAgbWFrZV9zcGhlcmUoU1BIRVJFXzJfTkFNRSwgcHJvcHMu"
        "c3AyX2FjdHVhbF9wb3MsIDAuNSwgbWF0X3RhcmdldCkKICAgICAgICBtYWtlX3NwaGVyZShTUEhFUkVf"
        "M19OQU1FLCBwcm9wcy5zcDNfYWN0dWFsX3BvcywgMC41LCBtYXRfdGFyZ2V0KQoKICAgICAgICAjIDMu"
        "IOS4ieinkuW9ogogICAgICAgIGRlZiBjcmVhdGVfdHJpKG5hbWUsIHAxLCBwMiwgcDMsIGNvbG9yLCBh"
        "bHBoYSwgdGhpY2spOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhuYW1lKQog"
        "ICAgICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1lLCBtZXNoKQogICAgICAgICAg"
        "ICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAg"
        "ICAgICAgICAgYm0uZmFjZXMubmV3KChibS52ZXJ0cy5uZXcocDEpLCBibS52ZXJ0cy5uZXcocDIpLCBi"
        "bS52ZXJ0cy5uZXcocDMpKSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAgICBi"
        "bS5mcmVlKCkKICAgICAgICAgICAgb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU29saWRpZnkiLCB0eXBl"
        "PSdTT0xJRElGWScpLnRoaWNrbmVzcyA9IHRoaWNrCiAgICAgICAgICAgIG9iai5hY3RpdmVfbWF0ZXJp"
        "YWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfIituYW1lLCBjb2xvciwgYWxwaGEpCiAgICAg"
        "ICAgICAgIHJldHVybiBvYmoKCiAgICAgICAgY3JlYXRlX3RyaShUUklBTkdMRV9BX05BTUUsICgwLDAs"
        "MCksIHByb3BzLnNwMV9hY3R1YWxfcG9zLCBwcm9wcy5zcDJfYWN0dWFsX3BvcywgcHJvcHMudHJpQV9j"
        "b2xvciwgcHJvcHMudHJpX2FscGhhLCBwcm9wcy50cmlfdGhpY2tuZXNzKQogICAgICAgIGNyZWF0ZV90"
        "cmkoVFJJQU5HTEVfQl9OQU1FLCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9w"
        "b3MsIHByb3BzLnNwM19hY3R1YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEs"
        "IHByb3BzLnRyaV90aGlja25lc3MpCgogICAgICAgICMgNC4g55+i5Y2wCiAgICAgICAgZGlzdCA9IHBy"
        "b3BzLmdlb19wbGFuZV9kaXN0CiAgICAgICAgaWYgZGlzdCA+IDAuMDE6CiAgICAgICAgICAgIG1lc2hf"
        "YXJyID0gYnB5LmRhdGEubWVzaGVzLm5ldyhBUlJPV19OQU1FKQogICAgICAgICAgICBvYmpfYXJyID0g"
        "YnB5LmRhdGEub2JqZWN0cy5uZXcoQVJST1dfTkFNRSwgbWVzaF9hcnIpCiAgICAgICAgICAgIHN1Yl9j"
        "b2wub2JqZWN0cy5saW5rKG9ial9hcnIpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAg"
        "ICAgICAgciwgaGVhZF9sID0gcHJvcHMuYXJyb3dfdGhpY2tuZXNzLCBtaW4oZGlzdCAqIDAuMywgcHJv"
        "cHMuYXJyb3dfdGhpY2tuZXNzICogNC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVhZF9s"
        "CiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3Ry"
        "aXM9RmFsc2UsIHNlZ21lbnRzPTE2LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9sKQog"
        "ICAgICAgICAgICBnZW9tX2hlYWQgPSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRzPVRy"
        "dWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0wLjAs"
        "IGRlcHRoPWhlYWRfbCkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9W3Yg"
        "Zm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRfbC8y"
        "KSkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZlYz0o"
        "MCwgMCwgYm9keV9sLzIpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAgICAg"
        "ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX2Fyci5sb2NhdGlvbiA9ICgwLCAwLCAwKQogICAgICAg"
        "ICAgICBvYmpfYXJyLnJvdGF0aW9uX21vZGUgPSAnUVVBVEVSTklPTicKICAgICAgICAgICAgb2JqX2Fy"
        "ci5yb3RhdGlvbl9xdWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5yb3RhdGlvbl9k"
        "aWZmZXJlbmNlKG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX2Zvb3QpLm5vcm1hbGl6ZWQo"
        "KSkKICAgICAgICAgICAgb2JqX2Fyci5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJF"
        "RklYKyJNYXRfQXJyb3ciLCBwcm9wcy5hcnJvd19jb2xvciwgMS4wKQoKICAgICAgICAgICAgIyA1LiDl"
        "hobnm6QKICAgICAgICAgICAgbWVzaF9jaXIgPSBicHkuZGF0YS5tZXNoZXMubmV3KENJUkNMRV9OQU1F"
        "KQogICAgICAgICAgICBvYmpfY2lyID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoQ0lSQ0xFX05BTUUsIG1l"
        "c2hfY2lyKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfY2lyKQogICAgICAgICAg"
        "ICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY2lyY2xlKGJtLCBj"
        "YXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9MzIsIHJhZGl1cz1wcm9wcy5jaXJj"
        "bGVfcmFkaXVzKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfY2lyKQogICAgICAgICAgICBibS5m"
        "cmVlKCkKICAgICAgICAgICAgb2JqX2Npci5sb2NhdGlvbiA9IHByb3BzLmdlb19wbGFuZV9mb290CiAg"
        "ICAgICAgICAgIGlmIG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkubGVuZ3Ro"
        "ID4gMDoKICAgICAgICAgICAgICAgIG9ial9jaXIucm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwog"
        "ICAgICAgICAgICAgICAgb2JqX2Npci5yb3RhdGlvbl9xdWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3Rv"
        "cigoMCwwLDEpKS5yb3RhdGlvbl9kaWZmZXJlbmNlKG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3Bs"
        "YW5lX25vcm1hbCkpCiAgICAgICAgICAgIG9ial9jaXIubW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlm"
        "eSIsIHR5cGU9J1NPTElESUZZJykudGhpY2tuZXNzID0gcHJvcHMuY2lyY2xlX3RoaWNrbmVzcwogICAg"
        "ICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1h"
        "dF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNpcmNsZV9hbHBoYSkKCiAgICAgICAg"
        "ICAgICMgNi4g5Y2K55CDCiAgICAgICAgICAgIG1lc2hfaGVtaSA9IGJweS5kYXRhLm1lc2hlcy5uZXco"
        "SEVNSVNQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfaGVtaSA9IGJweS5kYXRhLm9iamVjdHMubmV3"
        "KEhFTUlTUEhFUkVfTkFNRSwgbWVzaF9oZW1pKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGlu"
        "ayhvYmpfaGVtaSkKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5v"
        "cHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRzPTE2LCByYWRpdXM9"
        "cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAgICAgYm1lc2gub3BzLmRlbGV0ZShibSwgZ2VvbT1b"
        "diBmb3IgdiBpbiBibS52ZXJ0cyBpZiB2LmNvLnogPCAtMC4wMDFdLCBjb250ZXh0PSdWRVJUUycpCiAg"
        "ICAgICAgICAgIGlmIHByb3BzLmhlbWlfZmlsbF9ib3R0b206CiAgICAgICAgICAgICAgICBlZGdlcyA9"
        "IFtlIGZvciBlIGluIGJtLmVkZ2VzIGlmIGxlbihlLmxpbmtfZmFjZXMpID09IDFdCiAgICAgICAgICAg"
        "ICAgICBpZiBlZGdlczogYm1lc2gub3BzLmhvbGVzX2ZpbGwoYm0sIGVkZ2VzPWVkZ2VzKQogICAgICAg"
        "ICAgICBibS50b19tZXNoKG1lc2hfaGVtaSkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAg"
        "IG9ial9oZW1pLmxvY2F0aW9uID0gcHJvcHMuZ2VvX3BsYW5lX2Zvb3QKICAgICAgICAgICAgdXBfZGly"
        "ID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5nZW9fcGxhbmVfZm9vdCkubm9ybWFsaXplZCgpIGlmIG1h"
        "dGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX2Zvb3QpLmxlbmd0aCA+IDAuMDAwMSBlbHNlIG1h"
        "dGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkKICAgICAgICAgICAgb2JqX2hlbWku"
        "cm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwogICAgICAgICAgICBvYmpfaGVtaS5yb3RhdGlvbl9x"
        "dWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5yb3RhdGlvbl9kaWZmZXJlbmNlKHVw"
        "X2RpcikKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9oZW1pLnBvbHlnb25zOiBwb2x5LnVzZV9z"
        "bW9vdGggPSBUcnVlCiAgICAgICAgICAgIG9ial9oZW1pLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9t"
        "YXRlcmlhbChQUkVGSVgrIk1hdF9IZW1pIiwgcHJvcHMuaGVtaV9jb2xvciwgcHJvcHMuaGVtaV9hbHBo"
        "YSkKCiAgICAgICAgICAgICMgNy4g5YaF5q6755CDCiAgICAgICAgICAgIG1ha2Vfc3BoZXJlKERJU1Rf"
        "U1BIRVJFX05BTUUsICgwLDAsMCksIGRpc3QsIGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Jbm5l"
        "ciIsIHByb3BzLmRpc3Rfc3BoZXJlX2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBoYSkpCgogICAg"
        "ICAgICMgOC4g5aSW5q6755CDCiAgICAgICAgaWYgcHJvcHMuZ2VvX291dGVyX3JhZGl1cyA+IDA6CiAg"
        "ICAgICAgICAgIG1ha2Vfc3BoZXJlKE9VVEVSX1NQSEVSRV9OQU1FLCAoMCwwLDApLCBwcm9wcy5nZW9f"
        "b3V0ZXJfcmFkaXVzLCBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfT3V0ZXIiLCBwcm9wcy5vdXRl"
        "cl9zcGhlcmVfY29sb3IsIHByb3BzLm91dGVyX3NwaGVyZV9hbHBoYSkpCgogICAgICAgICMgOS4g5ZCM"
        "5b+D55CDIDEsIDIsIDMgKE5FVykKICAgICAgICBtYXRfY29uYyA9IGNyZWF0ZV9tYXRlcmlhbChQUkVG"
        "SVgrIk1hdF9Db25jIiwgcHJvcHMuY29uY19zcGhlcmVfY29sb3IsIHByb3BzLmNvbmNfc3BoZXJlX2Fs"
        "cGhhKQogICAgICAgIGlmIHByb3BzLmdlb19zcDFfZGlzdCA+IDA6IG1ha2Vfc3BoZXJlKENPTkNfU1BI"
        "RVJFXzFfTkFNRSwgKDAsMCwwKSwgcHJvcHMuZ2VvX3NwMV9kaXN0LCBtYXRfY29uYykKICAgICAgICBp"
        "ZiBwcm9wcy5nZW9fc3AyX2Rpc3QgPiAwOiBtYWtlX3NwaGVyZShDT05DX1NQSEVSRV8yX05BTUUsICgw"
        "LDAsMCksIHByb3BzLmdlb19zcDJfZGlzdCwgbWF0X2NvbmMpCiAgICAgICAgaWYgcHJvcHMuZ2VvX3Nw"
        "M19kaXN0ID4gMDogbWFrZV9zcGhlcmUoQ09OQ19TUEhFUkVfM19OQU1FLCAoMCwwLDApLCBwcm9wcy5n"
        "ZW9fc3AzX2Rpc3QsIG1hdF9jb25jKQoKICAgICAgICAjIOacgOW+jOOBq+OAgeODgeOCp+ODg+OCr+eK"
        "tuaFi+OBq+W+k+OBo+OBpuihqOekui/pnZ7ooajnpLrjgpLpgannlKgKICAgICAgICB1cGRhdGVfdmlz"
        "aWJpbGl0eShwcm9wcywgY29udGV4dCkKCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
        "VENUQV9PVF9EZXRhY2hPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAi"
        "dGN0YS5kZXRhY2hfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuOCouODieOCquODs+OBi+OCieWIh+OC"
        "iumbouOBlyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBhcmVudF9jb2wg"
        "PSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBp"
        "ZiBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sLm5hbWUgPSBQQVJFTlRfQ09MTEVDVElP"
        "Tl9OQU1FICsgIl9EZXRhY2hlZCIKICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLliIfj"
        "gorpm6LjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFf"
        "T1RfQ29weUdlb0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNv"
        "cHlfZ2VvX2luZm8iCiAgICBibF9sYWJlbCA9ICLlub7kvZXmg4XloLHjgpLjgrPjg5Tjg7wiCiAgICBk"
        "ZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0"
        "YV9wcm9wcwogICAgICAgIGxpbmVzID0gW10KICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X3Rh"
        "cmdldHM6CiAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmIlNwMSBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9k"
        "aXN0Oi4xZn0sIEFuZzogWD17cHJvcHMuZ2VvX3NwMV9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3Nw"
        "MV9hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3NwMV9hbmdbMl06LjFmfSIpCiAgICAgICAgICAgIGxp"
        "bmVzLmFwcGVuZChmIlNwMiBEaXN0OiB7cHJvcHMuZ2VvX3NwMl9kaXN0Oi4xZn0sIEFuZzogWD17cHJv"
        "cHMuZ2VvX3NwMl9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjFmfSwgWj17cHJv"
        "cHMuZ2VvX3NwMl9hbmdbMl06LjFmfSIpCiAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmIlNwMyBEaXN0"
        "OiB7cHJvcHMuZ2VvX3NwM19kaXN0Oi4xZn0sIEFuZzogWD17cHJvcHMuZ2VvX3NwM19hbmdbMF06LjFm"
        "fSwgWT17cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3NwM19hbmdbMl06LjFm"
        "fSIpCiAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd190cmlhbmdsZXM6CiAgICAgICAgICAgIGxp"
        "bmVzLmFwcGVuZChmIlBsYW5lIENyb3NzIEFuZ2xlOiB7cHJvcHMuZ2VvX3BsYW5lX2FuZ2xlOi4xZn0i"
        "KQogICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X2lubmVyX3NwaGVyZSBvciBwcm9wcy5z"
        "aG93X2Fycm93OgogICAgICAgICAgICBsaW5lcy5hcHBlbmQoZiJTaG9ydGVzdCBEaXN0IHRvIFBsYW5l"
        "IEI6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICAgICAgbGluZXMuYXBwZW5kKGYi"
        "U2hvcnRlc3QgRm9vdCBQb3M6IFg9e3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIFk9e3Byb3Bz"
        "Lmdlb19wbGFuZV9mb290WzFdOi4xZn0sIFo9e3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4xZn0iKQog"
        "ICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X291dGVyX3NwaGVyZToKICAgICAgICAgICAg"
        "bGluZXMuYXBwZW5kKGYiT3V0ZXIgU2hlbGwgUmFkaXVzIChNYXggRGlzdCk6IHtwcm9wcy5nZW9fb3V0"
        "ZXJfcmFkaXVzOi4xZn0iKQogICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X2NvbmNfc3Bo"
        "ZXJlczoKICAgICAgICAgICAgbGluZXMuYXBwZW5kKGYiQ29uY2VudHJpYyBTcGhlcmVzIFJhZGlpOiBS"
        "MT17cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0sIFIyPXtwcm9wcy5nZW9fc3AyX2Rpc3Q6LjFmfSwgUjM9"
        "e3Byb3BzLmdlb19zcDNfZGlzdDouMWZ9IikKCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5j"
        "bGlwYm9hcmQgPSAiXG4iLmpvaW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLo"
        "oajnpLrkuK3jga7lub7kvZXmg4XloLHjgpLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJl"
        "dHVybiB7J0ZJTklTSEVEJ30KCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA1LiBVSSDjg5Hjg43jg6vlrprnvqkK"
        "IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfUFRfUGFuZWxCYXNlOgogICAgYmxfc3BhY2VfdHlwZSA9"
        "ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJUQ1RB"
        "IgoKY2xhc3MgVENUQV9QVF9NYWluKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgog"
        "ICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfbWFpbiIKICAgIGJsX2xhYmVsID0gIjEuIOODoeOCpOODs+Wu"
        "n+ihjCIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5"
        "b3V0CiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNyZWF0ZV9vYmplY3RzIiwgaWNvbj0nUExB"
        "WScsIHRleHQ9IuS9nOaIkCAo55Sf5oiQ44O75pu05pawKSIpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9y"
        "KCJ0Y3RhLmRldGFjaF9vYmplY3RzIiwgaWNvbj0nVU5MSU5LRUQnKQoKY2xhc3MgVENUQV9QVF9TZXR0"
        "aW5ncyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAgIGJsX2lkbmFtZSA9ICJU"
        "Q1RBX1BUX3NldHRpbmdzIgogICAgYmxfbGFiZWwgPSAiMi4g44Kq44OW44K444Kn44Kv44OI77yG44OR"
        "44Op44Oh44O844K/6Kit5a6aIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5"
        "b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwoK"
        "ICAgICAgICAjIC0tLSDnlJ/miJDjg7vooajnpLrjgZnjgovjgqrjg5bjgrjjgqfjgq/jg4jjga7jg57j"
        "grnjgr/jg7zliLblvqEgLS0tCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94Lmxh"
        "YmVsKHRleHQ9IueUn+aIkC/ooajnpLrjgZnjgovjgqrjg5bjgrjjgqfjgq/jg4ggKE1hc3RlciBUb2dn"
        "bGUpOiIsIGljb249J09VVExJTkVSX09CX0dST1VQX0lOU1RBTkNFJykKICAgICAgICAKICAgICAgICAj"
        "IDPliJfjgafntrrpupfjgavkuKbjgbnjgosKICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRy"
        "dWUpCiAgICAgICAgcm93ID0gY29sLnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X3Rv"
        "cnVzIiwgdGV4dD0i6aqo5qC8IChUb3J1cykiKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd190"
        "YXJnZXRzIiwgdGV4dD0iM+eQg+S9kyAoVGFyZ2V0cykiKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAi"
        "c2hvd190cmlhbmdsZXMiLCB0ZXh0PSLkuInop5LlvaIgKFRyaXMpIikKICAgICAgICAKICAgICAgICBy"
        "b3cgPSBjb2wucm93KCkKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfYXJyb3ciLCB0ZXh0PSLn"
        "n6LljbAgKEFycm93KSIpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2NpcmNsZSIsIHRleHQ9"
        "IuWGhuebpCAoQ2lyY2xlKSIpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2hlbWlzcGhlcmUi"
        "LCB0ZXh0PSLljYrnkIMgKEhlbWkpIikKCiAgICAgICAgcm93ID0gY29sLnJvdygpCiAgICAgICAgcm93"
        "LnByb3AocHJvcHMsICJzaG93X2lubmVyX3NwaGVyZSIsIHRleHQ9IuWGheauu+eQgyAoSW5uZXIpIikK"
        "ICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfb3V0ZXJfc3BoZXJlIiwgdGV4dD0i5aSW5q6755CD"
        "IChPdXRlcikiKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd19jb25jX3NwaGVyZXMiLCB0ZXh0"
        "PSLlkIzlv4PnkIMgKENvbmMpIikKCiAgICAgICAgbGF5b3V0LnNlcGFyYXRvcigpCgogICAgICAgICMg"
        "LS0tIOWAi+WIpeODkeODqeODoeODvOOCv++8iOODgeOCp+ODg+OCr+OBjOWFpeOBo+OBpuOBhOOCi+OC"
        "guOBruOBoOOBkeihqOekuu+8iSAtLS0KICAgICAgICBpZiBwcm9wcy5zaG93X3RvcnVzOgogICAgICAg"
        "ICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRvcnVzIEZy"
        "YW1lOiIpCiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICByb3cucHJvcChwcm9w"
        "cywgInRvcnVzX2NvbG9yIiwgdGV4dD0iQ29sb3IiKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywg"
        "InRvcnVzX2FscGhhIiwgdGV4dD0iQWxwaGEiKQogICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5z"
        "aG93X3RhcmdldHM6CiAgICAgICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgICAgICBib3gu"
        "bGFiZWwodGV4dD0iU3BoZXJlcyAoVGFyZ2V0cyk6IikKICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo"
        "MSwgNCk6CiAgICAgICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgICAgIHJvdy5w"
        "cm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYiU3B7aX0iKQogICAgICAgICAgICAgICAgaWYg"
        "Z2V0YXR0cihwcm9wcywgZiJzcHtpfV9tb2RlIikgPT0gJ01BTlVBTCc6CiAgICAgICAgICAgICAgICAg"
        "ICAgYm94LnByb3AocHJvcHMsIGYic3B7aX1fcG9zIiwgdGV4dD0iIikKICAgICAgICAgICAgICAgICAg"
        "ICAKICAgICAgICBpZiBwcm9wcy5zaG93X3RyaWFuZ2xlczoKICAgICAgICAgICAgYm94ID0gbGF5b3V0"
        "LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUcmlhbmdsZXM6IikKICAgICAgICAgICAg"
        "cm93ID0gYm94LnJvdygpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCAidHJpX3RoaWNrbmVzcyIs"
        "IHRleHQ9IlRoaWNrIikKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiLCB0ZXh0"
        "PSJBbHBoYSIpCiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICByb3cucHJvcChw"
        "cm9wcywgInRyaUFfY29sb3IiLCB0ZXh0PSJDb2wgQSIpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3Bz"
        "LCAidHJpQl9jb2xvciIsIHRleHQ9IkNvbCBCIikKCiAgICAgICAgaWYgcHJvcHMuc2hvd19hcnJvdzoK"
        "ICAgICAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PSJB"
        "cnJvdzoiKQogICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJv"
        "cHMsICJhcnJvd190aGlja25lc3MiLCB0ZXh0PSJUaGljayIpCiAgICAgICAgICAgIHJvdy5wcm9wKHBy"
        "b3BzLCAiYXJyb3dfY29sb3IiLCB0ZXh0PSJDb2xvciIpCgogICAgICAgIGlmIHByb3BzLnNob3dfY2ly"
        "Y2xlOgogICAgICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRl"
        "eHQ9IkNpcmNsZToiKQogICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnBy"
        "b3AocHJvcHMsICJjaXJjbGVfcmFkaXVzIiwgdGV4dD0iUmFkaXVzIikKICAgICAgICAgICAgcm93LnBy"
        "b3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNzIiwgdGV4dD0iVGhpY2siKQogICAgICAgICAgICByb3cg"
        "PSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiLCB0ZXh0"
        "PSJDb2xvciIpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCAiY2lyY2xlX2FscGhhIiwgdGV4dD0i"
        "QWxwaGEiKQoKICAgICAgICBpZiBwcm9wcy5zaG93X2hlbWlzcGhlcmU6CiAgICAgICAgICAgIGJveCA9"
        "IGxheW91dC5ib3goKQogICAgICAgICAgICBib3gubGFiZWwodGV4dD0iSGVtaXNwaGVyZToiKQogICAg"
        "ICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJoZW1pX2Zp"
        "bGxfYm90dG9tIiwgdGV4dD0iRmlsbCBCb3R0b20iKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywg"
        "ImNpcmNsZV9yYWRpdXMiLCB0ZXh0PSJSYWRpdXMiKSAjIOWGhuebpOOBqOWFseaciQogICAgICAgICAg"
        "ICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJoZW1pX2NvbG9yIiwg"
        "dGV4dD0iQ29sb3IiKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywgImhlbWlfYWxwaGEiLCB0ZXh0"
        "PSJBbHBoYSIpCgogICAgICAgIGlmIHByb3BzLnNob3dfaW5uZXJfc3BoZXJlOgogICAgICAgICAgICBi"
        "b3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9IklubmVyIFNwaGVyZSAo"
        "U2hvcnRlc3QgRGlzdCk6IikKICAgICAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgICAgIHJv"
        "dy5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfY29sb3IiLCB0ZXh0PSJDb2xvciIpCiAgICAgICAgICAg"
        "IHJvdy5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfYWxwaGEiLCB0ZXh0PSJBbHBoYSIpCgogICAgICAg"
        "IGlmIHByb3BzLnNob3dfb3V0ZXJfc3BoZXJlOgogICAgICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkK"
        "ICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9Ik91dGVyIFNwaGVyZSAoTWF4IEJvdW5kKToiKQogICAg"
        "ICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJvdXRlcl9z"
        "cGhlcmVfY29sb3IiLCB0ZXh0PSJDb2xvciIpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCAib3V0"
        "ZXJfc3BoZXJlX2FscGhhIiwgdGV4dD0iQWxwaGEiKQoKICAgICAgICBpZiBwcm9wcy5zaG93X2NvbmNf"
        "c3BoZXJlczoKICAgICAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJl"
        "bCh0ZXh0PSJDb25jZW50cmljIFNwaGVyZXMgKDMgUmFkaWkpOiIpCiAgICAgICAgICAgIHJvdyA9IGJv"
        "eC5yb3coKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywgImNvbmNfc3BoZXJlX2NvbG9yIiwgdGV4"
        "dD0iQ29sb3IiKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywgImNvbmNfc3BoZXJlX2FscGhhIiwg"
        "dGV4dD0iQWxwaGEiKQoKY2xhc3MgVENUQV9QVF9HZW9JbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
        "dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfZ2VvX2luZm8iCiAgICBibF9sYWJl"
        "bCA9ICIzLiDlub7kvZXmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBs"
        "YXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3Bz"
        "CiAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd190YXJnZXRzOgogICAgICAgICAgICBib3ggPSBs"
        "YXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJTcDEgRGlzdDoge3Byb3BzLmdl"
        "b19zcDFfZGlzdDouMWZ9IHwgQW5nOiB7cHJvcHMuZ2VvX3NwMV9hbmdbMF06LjBmfcKwLCB7cHJvcHMu"
        "Z2VvX3NwMV9hbmdbMV06LjBmfcKwLCB7cHJvcHMuZ2VvX3NwMV9hbmdbMl06LjBmfcKwIikKICAgICAg"
        "ICAgICAgYm94LmxhYmVsKHRleHQ9ZiJTcDIgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IHwg"
        "QW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjBmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjBm"
        "fcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjBmfcKwIikKICAgICAgICAgICAgYm94LmxhYmVsKHRl"
        "eHQ9ZiJTcDMgRGlzdDoge3Byb3BzLmdlb19zcDNfZGlzdDouMWZ9IHwgQW5nOiB7cHJvcHMuZ2VvX3Nw"
        "M19hbmdbMF06LjBmfcKwLCB7cHJvcHMuZ2VvX3NwM19hbmdbMV06LjBmfcKwLCB7cHJvcHMuZ2VvX3Nw"
        "M19hbmdbMl06LjBmfcKwIikKICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X3RyaWFuZ2xlczoK"
        "ICAgICAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PWYi"
        "UGxhbmUgQ3Jvc3MgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfcKwIikKICAgICAgICAK"
        "ICAgICAgICBpZiBwcm9wcy5zaG93X2lubmVyX3NwaGVyZSBvciBwcm9wcy5zaG93X2Fycm93OgogICAg"
        "ICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJTaG9y"
        "dGVzdCBEaXN0IHRvIFBsYW5lIEI6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICAg"
        "ICAgYm94LmxhYmVsKHRleHQ9ZiJGb290OiAoe3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIHtw"
        "cm9wcy5nZW9fcGxhbmVfZm9vdFsxXTouMWZ9LCB7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSki"
        "KQoKICAgICAgICBpZiBwcm9wcy5zaG93X291dGVyX3NwaGVyZToKICAgICAgICAgICAgYm94ID0gbGF5"
        "b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiT3V0ZXIgU2hlbGwgUmFkaXVzOiB7"
        "cHJvcHMuZ2VvX291dGVyX3JhZGl1czouMWZ9IikKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJvcHMu"
        "c2hvd19jb25jX3NwaGVyZXM6CiAgICAgICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgICAg"
        "ICBib3gubGFiZWwodGV4dD0iQ29uY2VudHJpYyBTcGhlcmVzIFJhZGlpOiIpCiAgICAgICAgICAgIGJv"
        "eC5sYWJlbCh0ZXh0PWYiICBSMToge3Byb3BzLmdlb19zcDFfZGlzdDouMWZ9LCBSMjoge3Byb3BzLmdl"
        "b19zcDJfZGlzdDouMWZ9LCBSMzoge3Byb3BzLmdlb19zcDNfZGlzdDouMWZ9IikKCiAgICAgICAgbGF5"
        "b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfZ2VvX2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgoKIyA9PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09CiMgNi4g55m76Yyy5Yem55CGCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzc2VzID0gKAogICAg"
        "VENUQV9Qcm9wZXJ0aWVzLAogICAgVENUQV9PVF9WaWV3U2VsZWN0ZWQsCiAgICBUQ1RBX09UX1VwZGF0"
        "ZVZpZXdJbmZvLAogICAgVENUQV9PVF9Db3B5Vmlld0luZm8sCiAgICBUQ1RBX09UX0NyZWF0ZU9iamVj"
        "dHMsCiAgICBUQ1RBX09UX0RldGFjaE9iamVjdHMsCiAgICBUQ1RBX09UX0NvcHlHZW9JbmZvLAogICAg"
        "VENUQV9QVF9NYWluLAogICAgVENUQV9QVF9TZXR0aW5ncywKICAgIFRDVEFfUFRfR2VvSW5mbywKKQoK"
        "ZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIGNsYXNzZXM6CiAgICAgICAgYnB5LnV0aWxzLnJl"
        "Z2lzdGVyX2NsYXNzKGNscykKICAgIGJweS50eXBlcy5TY2VuZS50Y3RhX3Byb3BzID0gYnB5LnByb3Bz"
        "LlBvaW50ZXJQcm9wZXJ0eSh0eXBlPVRDVEFfUHJvcGVydGllcykKCmRlZiB1bnJlZ2lzdGVyKCk6CiAg"
        "ICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lzdGVy"
        "X2NsYXNzKGNscykKICAgIGRlbCBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcwoKaWYgX19uYW1lX18g"
        "PT0gIl9fbWFpbl9fIjoKICAgIHJlZ2lzdGVyKCk="
        )
    },
    {
        "name": "平面2つなす角度 20260713_006",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
        "ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA2LCAwKSwKICAgICJi"
        "bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
        "IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjgbjjga7mnIDnn63ot53pm6LjgajjgIHlkJHjgZPj"
        "gYblgbTjgavluoPjgYzjgovljYrnkIPjga7lub7kvZXlrabnmoToppbopprljJYiLAogICAgImNhdGVn"
        "b3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0aAppbXBv"
        "cnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneacn+WApOWu"
        "mue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElPTl9OQU1F"
        "ID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2JqZWN0cyIK"
        "VE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0gIlNwaGVy"
        "ZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVyZV8zIgpU"
        "UklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFuZ2xlX0Ii"
        "CkFSUk9XX05BTUUgPSAiQXJyb3dfU2hvcnRlc3REaXN0IgpDSVJDTEVfTkFNRSA9ICJDaXJjbGVfUGxh"
        "bmVCIgpESVNUX1NQSEVSRV9OQU1FID0gIlNwaGVyZV9TaG9ydGVzdERpc3QiCk9VVEVSX1NQSEVSRV9O"
        "QU1FID0gIlNwaGVyZV9PdXRlckJvdW5kIgpIRU1JU1BIRVJFX05BTUUgPSAiSGVtaXNwaGVyZV9QbGFu"
        "ZUIiICMg5paw6KaP6L+95YqgOiDpgaDjgZbjgYvjgovljYrnkIMKCiMgPT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIu"
        "IOODl+ODreODkeODhuOCo+Wumue+qe+8iOabtOaWsOOCs+ODvOODq+ODkOODg+OCr+WQq+OCgO+8iQoj"
        "ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT0KZGVmIHVwZGF0ZV92aXNfYXJyb3coc2VsZiwgY29udGV4dCk6CiAgICBvYmog"
        "PSBicHkuZGF0YS5vYmplY3RzLmdldChBUlJPV19OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92aWV3"
        "cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfYXJyb3cKCmRlZiB1cGRhdGVfdmlz"
        "X2NpcmNsZShzZWxmLCBjb250ZXh0KToKICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KENJUkNM"
        "RV9OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92aWV3cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5v"
        "dCBzZWxmLnNob3dfY2lyY2xlCgpkZWYgdXBkYXRlX3Zpc19zcGhlcmUoc2VsZiwgY29udGV4dCk6CiAg"
        "ICBvYmogPSBicHkuZGF0YS5vYmplY3RzLmdldChESVNUX1NQSEVSRV9OQU1FKQogICAgaWYgb2JqOiBv"
        "YmouaGlkZV92aWV3cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfZGlzdF9zcGhl"
        "cmUKCmRlZiB1cGRhdGVfdmlzX291dGVyX3NwaGVyZShzZWxmLCBjb250ZXh0KToKICAgIG9iaiA9IGJw"
        "eS5kYXRhLm9iamVjdHMuZ2V0KE9VVEVSX1NQSEVSRV9OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92"
        "aWV3cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfb3V0ZXJfc3BoZXJlCgpkZWYg"
        "dXBkYXRlX3Zpc19oZW1pc3BoZXJlKHNlbGYsIGNvbnRleHQpOgogICAgb2JqID0gYnB5LmRhdGEub2Jq"
        "ZWN0cy5nZXQoSEVNSVNQSEVSRV9OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92aWV3cG9ydCA9IG9i"
        "ai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfaGVtaXNwaGVyZQoKY2xhc3MgVENUQV9Qcm9wZXJ0"
        "aWVzKGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgICMg44OI44O844Op44K56aqo5qC86Kit5a6a"
        "CiAgICB0b3J1c19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iVG9ydXMg"
        "Q29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4xLCAwLjUsIDAu"
        "OCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRvcnVzX2FscGhhOiBicHkucHJvcHMuRmxvYXRQ"
        "cm9wZXJ0eShuYW1lPSJUb3J1cyBBbHBoYSIsIGRlZmF1bHQ9MC41LCBtaW49MC4wLCBtYXg9MS4wKQog"
        "ICAgCiAgICAjIOmFjee9ruODouODvOODiQogICAgbW9kZV9vcHRpb25zID0gWygnUkFORE9NJywgIuOD"
        "qeODs+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH5a6a5L2N572uIiwgIiIpXQogICAgc3AxX21v"
        "ZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywg"
        "ZGVmYXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBicHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9"
        "Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRPTScpCiAgICBzcDNfbW9kZTog"
        "YnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZh"
        "dWx0PSdSQU5ET00nKQogICAgCiAgICBzcDFfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
        "eShuYW1lPSJQb3NpdGlvbiAxIiwgZGVmYXVsdD0oMi4wLCAyLjAsIDIuMCkpCiAgICBzcDJfcG9zOiBi"
        "cHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAyIiwgZGVmYXVsdD0oLTIu"
        "MCwgLTIuMCwgMi4wKSkKICAgIHNwM19wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5h"
        "bWU9IlBvc2l0aW9uIDMiLCBkZWZhdWx0PSgwLjAsIDMuMCwgLTIuMCkpCiAgICAKICAgIHNwMV9hY3R1"
        "YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkpCiAgICBz"
        "cDJfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDAp"
        "KQogICAgc3AzX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9"
        "KDAsMCwwKSkKCiAgICAjIOS4ieinkuW9ouioreWumgogICAgdHJpX3RoaWNrbmVzczogYnB5LnByb3Bz"
        "LkZsb2F0UHJvcGVydHkobmFtZT0iVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjApCiAgICB0"
        "cmlfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFscGhhIiwgZGVmYXVsdD0wLjEs"
        "IG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlBX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
        "ZXJ0eShuYW1lPSJDb2xvciBBIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9"
        "KDAuOCwgMC4yLCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlCX2NvbG9yOiBicHku"
        "cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciBCIiwgc3VidHlwZT0nQ09MT1JfR0FN"
        "TUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwgMC44LCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjAp"
        "CgogICAgIyDooajnpLov6Z2e6KGo56S644OI44Kw44OrCiAgICBzaG93X2Fycm93OiBicHkucHJvcHMu"
        "Qm9vbFByb3BlcnR5KG5hbWU9IuefouWNsCIsIGRlZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNf"
        "YXJyb3cpCiAgICBzaG93X2NpcmNsZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlhobnm6Qi"
        "LCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2NpcmNsZSkKICAgIHNob3dfZGlzdF9zcGhl"
        "cmU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5YaF55CDIiwgZGVmYXVsdD1UcnVlLCB1cGRh"
        "dGU9dXBkYXRlX3Zpc19zcGhlcmUpCiAgICBzaG93X291dGVyX3NwaGVyZTogYnB5LnByb3BzLkJvb2xQ"
        "cm9wZXJ0eShuYW1lPSLlpJbnkIMiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX291dGVy"
        "X3NwaGVyZSkKICAgIHNob3dfaGVtaXNwaGVyZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLl"
        "jYrnkIMiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2hlbWlzcGhlcmUpICMgTkVXCgog"
        "ICAgIyDoppbopprljJboqbPntLDoqK3lrpoKICAgIGFycm93X3RoaWNrbmVzczogYnB5LnByb3BzLkZs"
        "b2F0UHJvcGVydHkobmFtZT0iQXJyb3cgVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjA1LCBtaW49MC4wMSwg"
        "bWF4PTEuMCkKICAgIGFycm93X2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
        "PSJBcnJvdyBDb2xvciIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgxLjAs"
        "IDAuOCwgMC4wLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgCiAgICBjaXJjbGVfcmFkaXVzOiBi"
        "cHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJSYWRpdXMgKENpcmNsZS9IZW1pKSIsIGRlZmF1bHQ9"
        "My4wLCBtaW49MC4xKSAjIOWGhuebpOOBqOWNiueQg+OBp+WFseacieOBruWNiuW+hAogICAgY2lyY2xl"
        "X3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQ2lyY2xlIFRoaWNrbmVzcyIs"
        "IGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgY2lyY2xlX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0"
        "b3JQcm9wZXJ0eShuYW1lPSJDaXJjbGUgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9"
        "NCwgZGVmYXVsdD0oMS4wLCAwLjUsIDAuMCwgMC40KSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIGNpcmNs"
        "ZV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQ2lyY2xlIEFscGhhIiwgZGVmYXVs"
        "dD0wLjQsIG1pbj0wLjAsIG1heD0xLjApCiAgICAKICAgIGRpc3Rfc3BoZXJlX2NvbG9yOiBicHkucHJv"
        "cHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJJbm5lciBTcGhlcmUgQ29sb3IiLCBzdWJ0eXBlPSdD"
        "T0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4wLCAwLjgsIDEuMCwgMS4wKSwgbWluPTAuMCwg"
        "bWF4PTEuMCkKICAgIGRpc3Rfc3BoZXJlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1l"
        "PSJJbm5lciBTcGhlcmUgQWxwaGEiLCBkZWZhdWx0PTAuMDYsIG1pbj0wLjAsIG1heD0xLjApCiAgICAK"
        "ICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
        "T3V0ZXIgU3BoZXJlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9"
        "KDAuOCwgMC4wLCAxLjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBvdXRlcl9zcGhlcmVfYWxw"
        "aGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9Ik91dGVyIFNwaGVyZSBBbHBoYSIsIGRlZmF1"
        "bHQ9MC4wNCwgbWluPTAuMCwgbWF4PTEuMCkKCiAgICAjIOWNiueQg+ioreWumiAoTkVXKQogICAgaGVt"
        "aV9maWxsX2JvdHRvbTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlupXpnaLjgpLkvZzjgosg"
        "KEZpbGwgQm90dG9tKSIsIGRlZmF1bHQ9RmFsc2UpCiAgICBoZW1pX2NvbG9yOiBicHkucHJvcHMuRmxv"
        "YXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJIZW1pc3BoZXJlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FN"
        "TUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwgMS4wLCAwLjUsIDEuMCksIG1pbj0wLjAsIG1heD0xLjAp"
        "CiAgICBoZW1pX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJIZW1pc3BoZXJlIEFs"
        "cGhhIiwgZGVmYXVsdD0wLjMsIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDjg5Pjg6Xjg7zjg53jg7zj"
        "g4jjg7vlub7kvZXmg4XloLEKICAgIHZpZXdfY2VudGVyOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
        "ZXJ0eShuYW1lPSJWaWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6IGJweS5wcm9wcy5JbnRWZWN0b3JQ"
        "cm9wZXJ0eShuYW1lPSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikKICAgIHZpZXdfZGlzdGFuY2U6IGJw"
        "eS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFuY2UiKQogICAgCiAgICBnZW9fc3Ax"
        "X2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDFfYW5nOiBicHkucHJvcHMu"
        "RmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fc3AyX2Rpc3Q6IGJweS5wcm9wcy5GbG9h"
        "dFByb3BlcnR5KCkKICAgIGdlb19zcDJfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShz"
        "aXplPTMpCiAgICBnZW9fc3AzX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19z"
        "cDNfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICAKICAgIGdlb19w"
        "bGFuZV9hbmdsZTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5lX2Rpc3Q6IGJw"
        "eS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19wbGFuZV9mb290OiBicHkucHJvcHMuRmxvYXRW"
        "ZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fcGxhbmVfbm9ybWFsOiBicHkucHJvcHMuRmxvYXRW"
        "ZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fb3V0ZXJfcmFkaXVzOiBicHkucHJvcHMuRmxvYXRQ"
        "cm9wZXJ0eSgpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMy4g44Om44O844OG44Kj44Oq44OG44Kj6Zai5pWw"
        "CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PQpkZWYgZ2V0XzNkX3ZpZXdfY29udGV4dCgpOgogICAgZm9yIHdpbmRvdyBp"
        "biBicHkuY29udGV4dC53aW5kb3dfbWFuYWdlci53aW5kb3dzOgogICAgICAgIGZvciBhcmVhIGluIHdp"
        "bmRvdy5zY3JlZW4uYXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6CiAg"
        "ICAgICAgICAgICAgICBmb3IgcmVnaW9uIGluIGFyZWEucmVnaW9uczoKICAgICAgICAgICAgICAgICAg"
        "ICBpZiByZWdpb24udHlwZSA9PSAnV0lORE9XJzoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu"
        "IGFyZWEsIHJlZ2lvbiwgYXJlYS5zcGFjZXMuYWN0aXZlCiAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9u"
        "ZQoKZGVmIGNyZWF0ZV9tYXRlcmlhbChuYW1lLCBjb2xvciwgYWxwaGEpOgogICAgbWF0ID0gYnB5LmRh"
        "dGEubWF0ZXJpYWxzLmdldChuYW1lKQogICAgaWYgbm90IG1hdDoKICAgICAgICBtYXQgPSBicHkuZGF0"
        "YS5tYXRlcmlhbHMubmV3KG5hbWUpCiAgICBtYXQudXNlX25vZGVzID0gVHJ1ZQogICAgCiAgICBpZiBo"
        "YXNhdHRyKG1hdCwgImJsZW5kX21ldGhvZCIpOgogICAgICAgIG1hdC5ibGVuZF9tZXRob2QgPSAnQkxF"
        "TkQnCiAgICBpZiBoYXNhdHRyKG1hdCwgInNoYWRvd19tZXRob2QiKToKICAgICAgICBtYXQuc2hhZG93"
        "X21ldGhvZCA9ICdOT05FJwogICAgCiAgICBic2RmID0gbWF0Lm5vZGVfdHJlZS5ub2Rlcy5nZXQoIlBy"
        "aW5jaXBsZWQgQlNERiIpCiAgICBpZiBic2RmOgogICAgICAgIGJzZGYuaW5wdXRzWyJCYXNlIENvbG9y"
        "Il0uZGVmYXVsdF92YWx1ZSA9IGNvbG9yCiAgICAgICAgYnNkZi5pbnB1dHNbIkFscGhhIl0uZGVmYXVs"
        "dF92YWx1ZSA9IGFscGhhCiAgICByZXR1cm4gbWF0CgpkZWYgY2FsY19nZW9fZGF0YShwcm9wcyk6CiAg"
        "ICBkZWYgY2FsY19kaXN0X2FuZ2xlKHZlYyk6CiAgICAgICAgZGlzdCA9IHZlYy5sZW5ndGgKICAgICAg"
        "ICBpZiBkaXN0ID09IDA6IHJldHVybiAwLCAwLCAwLCAwCiAgICAgICAgbiA9IHZlYy5ub3JtYWxpemVk"
        "KCkKICAgICAgICBheCA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi54KSkKICAgICAgICBheSA9IG1h"
        "dGguZGVncmVlcyhtYXRoLmFjb3Mobi55KSkKICAgICAgICBheiA9IG1hdGguZGVncmVlcyhtYXRoLmFj"
        "b3Mobi56KSkKICAgICAgICByZXR1cm4gZGlzdCwgYXgsIGF5LCBhegoKICAgIHAwID0gbWF0aHV0aWxz"
        "LlZlY3RvcigoMCwgMCwgMCkpCiAgICBwMSA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AxX2FjdHVh"
        "bF9wb3MpCiAgICBwMiA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AyX2FjdHVhbF9wb3MpCiAgICBw"
        "MyA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AzX2FjdHVhbF9wb3MpCgogICAgZDEsIGF4MSwgYXkx"
        "LCBhejEgPSBjYWxjX2Rpc3RfYW5nbGUocDEpCiAgICBwcm9wcy5nZW9fc3AxX2Rpc3QgPSBkMQogICAg"
        "cHJvcHMuZ2VvX3NwMV9hbmcgPSAoYXgxLCBheTEsIGF6MSkKCiAgICBkMiwgYXgyLCBheTIsIGF6MiA9"
        "IGNhbGNfZGlzdF9hbmdsZShwMikKICAgIHByb3BzLmdlb19zcDJfZGlzdCA9IGQyCiAgICBwcm9wcy5n"
        "ZW9fc3AyX2FuZyA9IChheDIsIGF5MiwgYXoyKQoKICAgIGQzLCBheDMsIGF5MywgYXozID0gY2FsY19k"
        "aXN0X2FuZ2xlKHAzKQogICAgcHJvcHMuZ2VvX3NwM19kaXN0ID0gZDMKICAgIHByb3BzLmdlb19zcDNf"
        "YW5nID0gKGF4MywgYXkzLCBhejMpCiAgICAKICAgIHByb3BzLmdlb19vdXRlcl9yYWRpdXMgPSBtYXgo"
        "ZDEsIGQyLCBkMykKCiAgICB2MSA9IHAxIC0gcDAKICAgIHYyID0gcDIgLSBwMAogICAgdjMgPSBwMiAt"
        "IHAxCiAgICB2NCA9IHAzIC0gcDEKICAgIG4xID0gdjEuY3Jvc3ModjIpCiAgICBuMiA9IHYzLmNyb3Nz"
        "KHY0KQogICAgCiAgICBpZiBuMS5sZW5ndGggPiAwLjAwMDEgYW5kIG4yLmxlbmd0aCA+IDAuMDAwMToK"
        "ICAgICAgICBuMV9ub3JtID0gbjEubm9ybWFsaXplZCgpCiAgICAgICAgbjJfbm9ybSA9IG4yLm5vcm1h"
        "bGl6ZWQoKQogICAgICAgIHByb3BzLmdlb19wbGFuZV9ub3JtYWwgPSBuMl9ub3JtCiAgICAgICAgZG90"
        "ID0gbWF4KC0xLjAsIG1pbigxLjAsIG4xX25vcm0uZG90KG4yX25vcm0pKSkKICAgICAgICBwcm9wcy5n"
        "ZW9fcGxhbmVfYW5nbGUgPSBtYXRoLmRlZ3JlZXMobWF0aC5hY29zKGRvdCkpCiAgICBlbHNlOgogICAg"
        "ICAgIHByb3BzLmdlb19wbGFuZV9hbmdsZSA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9ub3Jt"
        "YWwgPSAoMCwwLDEpCgogICAgaWYgbjIubGVuZ3RoID4gMC4wMDAxOgogICAgICAgIHQgPSBuMl9ub3Jt"
        "LmRvdChwMSkKICAgICAgICBIID0gbjJfbm9ybSAqIHQKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlz"
        "dCA9IGFicyh0KQogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0gSAogICAgZWxzZToKICAgICAg"
        "ICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0g"
        "KDAsIDAsIDApCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWHpueQhuOD"
        "reOCuOODg+OCrykKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVkKGJweS50"
        "eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgogICAgYmxf"
        "bGFiZWwgPSAi6YG45oqe44KS55S76Z2i5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29u"
        "dGV4dCk6CiAgICAgICAgYnB5Lm9wcy52aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAgcmV0dXJu"
        "IHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0"
        "b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0g"
        "IueUu+mdouaDheWgseabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAg"
        "IGFyZWEsIHJlZ2lvbiwgc3BhY2UgPSBnZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBpZiBub3Qg"
        "c3BhY2U6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAiM0Tjg5Pjg6Xjg7zjgYzo"
        "povjgaTjgYvjgorjgb7jgZvjgpMiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQogICAg"
        "ICAgIHJ2M2QgPSBzcGFjZS5yZWdpb25fM2QKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0"
        "YV9wcm9wcwogICAgICAgIHByb3BzLnZpZXdfY2VudGVyID0gcnYzZC52aWV3X2xvY2F0aW9uCiAgICAg"
        "ICAgcHJvcHMudmlld19zaXplID0gKHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodCkKICAgICAgICBp"
        "ZiBydjNkLnZpZXdfcGVyc3BlY3RpdmUgPT0gJ1BFUlNQJzoKICAgICAgICAgICAgcHJvcHMudmlld19k"
        "aXN0YW5jZSA9IHJ2M2Qudmlld19kaXN0YW5jZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByb3Bz"
        "LnZpZXdfZGlzdGFuY2UgPSAwLjAgCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENU"
        "QV9PVF9Db3B5Vmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3Rh"
        "LmNvcHlfdmlld19pbmZvIgogICAgYmxfbGFiZWwgPSAi44OT44Ol44O85oOF5aCx44KS44Kz44OU44O8"
        "IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNj"
        "ZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgZiJDZW50ZXI6IFg9e3By"
        "b3BzLnZpZXdfY2VudGVyLng6LjFmfSwgWT17cHJvcHMudmlld19jZW50ZXIueTouMWZ9LCBaPXtwcm9w"
        "cy52aWV3X2NlbnRlci56Oi4xZn0iLAogICAgICAgICAgICBmIlNpemU6IFc9e3Byb3BzLnZpZXdfc2l6"
        "ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6ZVsxXX0iLAogICAgICAgICAgICBmIkRpc3RhbmNlOiB7cHJv"
        "cHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNlICJEaXN0"
        "YW5jZTogTi9BIgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2Fy"
        "ZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOCs+ODlOOD"
        "vOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9D"
        "cmVhdGVPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jcmVh"
        "dGVfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuS9nOaIkCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNv"
        "bnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgCiAg"
        "ICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElP"
        "Tl9OQU1FKQogICAgICAgIGlmIG5vdCBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sID0g"
        "YnB5LmRhdGEuY29sbGVjdGlvbnMubmV3KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgICAg"
        "IGNvbnRleHQuc2NlbmUuY29sbGVjdGlvbi5jaGlsZHJlbi5saW5rKHBhcmVudF9jb2wpCiAgICAgICAg"
        "ICAgIAogICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoU1VCX0NPTExFQ1RJ"
        "T05fTkFNRSkKICAgICAgICBpZiBub3Qgc3ViX2NvbDoKICAgICAgICAgICAgc3ViX2NvbCA9IGJweS5k"
        "YXRhLmNvbGxlY3Rpb25zLm5ldyhTVUJfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBwYXJlbnRf"
        "Y29sLmNoaWxkcmVuLmxpbmsoc3ViX2NvbCkKCiAgICAgICAgbmFtZXNfdG9fZGVsZXRlID0gWwogICAg"
        "ICAgICAgICBUT1JVU19TS0VMRVRPTl9OQU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBT"
        "UEhFUkVfM19OQU1FLCAKICAgICAgICAgICAgVFJJQU5HTEVfQV9OQU1FLCBUUklBTkdMRV9CX05BTUUs"
        "IEFSUk9XX05BTUUsIENJUkNMRV9OQU1FLCAKICAgICAgICAgICAgRElTVF9TUEhFUkVfTkFNRSwgT1VU"
        "RVJfU1BIRVJFX05BTUUsIEhFTUlTUEhFUkVfTkFNRQogICAgICAgIF0KICAgICAgICBmb3Igb2JqX25h"
        "bWUgaW4gbmFtZXNfdG9fZGVsZXRlOgogICAgICAgICAgICBpZiBvYmpfbmFtZSBpbiBicHkuZGF0YS5v"
        "YmplY3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2JqZWN0cy5yZW1vdmUoYnB5LmRhdGEub2Jq"
        "ZWN0c1tvYmpfbmFtZV0sIGRvX3VubGluaz1UcnVlKQoKICAgICAgICAjIOmqqOagvOOBqOWfuuacrOeQ"
        "g+S9k+ODu+S4ieinkuW9ouOBruS9nOaIkAogICAgICAgIG1lc2ggPSBicHkuZGF0YS5tZXNoZXMubmV3"
        "KFRPUlVTX1NLRUxFVE9OX05BTUUpCiAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoVE9S"
        "VVNfU0tFTEVUT05fTkFNRSwgbWVzaCkKICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAg"
        "ICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY3ViZShibSwgc2l6"
        "ZT0xMC4wKQogICAgICAgIGJtZXNoLm9wcy5kZWxldGUoYm0sIGdlb209Ym0uZmFjZXMsIGNvbnRleHQ9"
        "J0ZBQ0VTJykKICAgICAgICBibS50b19tZXNoKG1lc2gpCiAgICAgICAgYm0uZnJlZSgpCiAgICAgICAg"
        "c2tpbl9tb2QgPSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTa2luIiwgdHlwZT0nU0tJTicpCiAgICAg"
        "ICAgc3ViX21vZCA9IG9iai5tb2RpZmllcnMubmV3KG5hbWU9IlN1YmRpdmlzaW9uIiwgdHlwZT0nU1VC"
        "U1VSRicpCiAgICAgICAgc3ViX21vZC5sZXZlbHMgPSAyCiAgICAgICAgZm9yIHYgaW4gb2JqLmRhdGEu"
        "c2tpbl92ZXJ0aWNlc1swXS5kYXRhOiB2LnJhZGl1cyA9ICgwLjIsIDAuMikKICAgICAgICBvYmouYWN0"
        "aXZlX21hdGVyaWFsID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0X1RvcnVzIiwgcHJvcHMudG9y"
        "dXNfY29sb3IsIHByb3BzLnRvcnVzX2FscGhhKQoKICAgICAgICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9w"
        "X3Bvcyk6CiAgICAgICAgICAgIGlmIG1vZGUgPT0gJ1JBTkRPTSc6IHJldHVybiAocmFuZG9tLnVuaWZv"
        "cm0oLTUsIDUpLCByYW5kb20udW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSkKICAg"
        "ICAgICAgICAgcmV0dXJuIHByb3BfcG9zCgogICAgICAgIHByb3BzLnNwMV9hY3R1YWxfcG9zID0gZ2V0"
        "X3Bvcyhwcm9wcy5zcDFfbW9kZSwgcHJvcHMuc3AxX3BvcykKICAgICAgICBwcm9wcy5zcDJfYWN0dWFs"
        "X3BvcyA9IGdldF9wb3MocHJvcHMuc3AyX21vZGUsIHByb3BzLnNwMl9wb3MpCiAgICAgICAgcHJvcHMu"
        "c3AzX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3BzLnNwM19tb2RlLCBwcm9wcy5zcDNfcG9zKQoKICAg"
        "ICAgICBkZWYgY3JlYXRlX3NwaGVyZShuYW1lLCBsb2MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRh"
        "dGEubWVzaGVzLm5ldyhuYW1lKQogICAgICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhu"
        "YW1lLCBtZXNoKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAg"
        "IGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgYm1lc2gub3BzLmNyZWF0ZV91dnNwaGVyZShibSwg"
        "dV9zZWdtZW50cz0xNiwgdl9zZWdtZW50cz04LCByYWRpdXM9MC41KQogICAgICAgICAgICBibS50b19t"
        "ZXNoKG1lc2gpCiAgICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBs"
        "b2MKICAgICAgICAgICAgcmV0dXJuIG9iagoKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8xX05B"
        "TUUsIHByb3BzLnNwMV9hY3R1YWxfcG9zKQogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzJfTkFN"
        "RSwgcHJvcHMuc3AyX2FjdHVhbF9wb3MpCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVfM19OQU1F"
        "LCBwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICAgICAgZGVmIGNyZWF0ZV90cmlhbmdsZShuYW1lLCBw"
        "MSwgcDIsIHAzLCBjb2xvciwgYWxwaGEsIHRoaWNrbmVzcyk6CiAgICAgICAgICAgIG1lc2ggPSBicHku"
        "ZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3"
        "KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAgICAg"
        "ICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICB2MSwgdjIsIHYzID0gYm0udmVydHMubmV3KHAx"
        "KSwgYm0udmVydHMubmV3KHAyKSwgYm0udmVydHMubmV3KHAzKQogICAgICAgICAgICBibS5mYWNlcy5u"
        "ZXcoKHYxLCB2MiwgdjMpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2gpCiAgICAgICAgICAgIGJt"
        "LmZyZWUoKQogICAgICAgICAgICBzb2wgPSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlmeSIs"
        "IHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAgc29sLnRoaWNrbmVzcyA9IHRoaWNrbmVzcwogICAg"
        "ICAgICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0XyIr"
        "bmFtZSwgY29sb3IsIGFscGhhKQoKICAgICAgICBjcmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQV9OQU1F"
        "LCAoMCwwLDApLCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3Bz"
        "LnRyaUFfY29sb3IsIHByb3BzLnRyaV9hbHBoYSwgcHJvcHMudHJpX3RoaWNrbmVzcykKICAgICAgICBj"
        "cmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQl9OQU1FLCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMu"
        "c3AyX2FjdHVhbF9wb3MsIHByb3BzLnNwM19hY3R1YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9w"
        "cy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25lc3MpCgogICAgICAgICMg5bm+5L2V6KiI566XCiAg"
        "ICAgICAgY2FsY19nZW9fZGF0YShwcm9wcykKCiAgICAgICAgIyDoppbopprljJbopoHntKDjga7kvZzm"
        "iJAKICAgICAgICBkaXN0ID0gcHJvcHMuZ2VvX3BsYW5lX2Rpc3QKICAgICAgICBpZiBkaXN0ID4gMC4w"
        "MToKICAgICAgICAgICAgIyAxLiDnn6LljbAKICAgICAgICAgICAgbWVzaF9hcnIgPSBicHkuZGF0YS5t"
        "ZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAgIG9ial9hcnIgPSBicHkuZGF0YS5vYmplY3Rz"
        "Lm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmso"
        "b2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICByID0gcHJvcHMu"
        "YXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRfbCA9IG1pbihkaXN0ICogMC4zLCByICogNC4w"
        "KQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVhZF9sCiAgICAgICAgICAgIGJtZXNoLm9wcy5j"
        "cmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2LCBy"
        "YWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9sKQogICAgICAgICAgICBnZW9tX2hlYWQgPSBi"
        "bWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdt"
        "ZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0wLjAsIGRlcHRoPWhlYWRfbCkKICAgICAgICAg"
        "ICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0"
        "cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRfbC8yKSkKICAgICAgICAgICAgYm1lc2gub3Bz"
        "LnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZlYz0oMCwgMCwgYm9keV9sLzIpKQogICAgICAg"
        "ICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAg"
        "CiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9vdF92"
        "ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFuZV9mb290KQogICAgICAgICAgICBvYmpf"
        "YXJyLnJvdGF0aW9uX21vZGUgPSAnUVVBVEVSTklPTicKICAgICAgICAgICAgb2JqX2Fyci5yb3RhdGlv"
        "bl9xdWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5yb3RhdGlvbl9kaWZmZXJlbmNl"
        "KGZvb3RfdmVjLm5vcm1hbGl6ZWQoKSkKICAgICAgICAgICAgb2JqX2Fyci5hY3RpdmVfbWF0ZXJpYWwg"
        "PSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfQXJyb3ciLCBwcm9wcy5hcnJvd19jb2xvciwgMS4w"
        "KQogICAgICAgICAgICBvYmpfYXJyLmhpZGVfdmlld3BvcnQgPSBvYmpfYXJyLmhpZGVfcmVuZGVyID0g"
        "bm90IHByb3BzLnNob3dfYXJyb3cKCiAgICAgICAgICAgICMgMi4g5YaG55ukCiAgICAgICAgICAgIG1l"
        "c2hfY2lyID0gYnB5LmRhdGEubWVzaGVzLm5ldyhDSVJDTEVfTkFNRSkKICAgICAgICAgICAgb2JqX2Np"
        "ciA9IGJweS5kYXRhLm9iamVjdHMubmV3KENJUkNMRV9OQU1FLCBtZXNoX2NpcikKICAgICAgICAgICAg"
        "c3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX2NpcikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQog"
        "ICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2NpcmNsZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3Ry"
        "aXM9RmFsc2UsIHNlZ21lbnRzPTMyLCByYWRpdXM9cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAg"
        "ICAgYm0udG9fbWVzaChtZXNoX2NpcikKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAog"
        "ICAgICAgICAgICBvYmpfY2lyLmxvY2F0aW9uID0gcHJvcHMuZ2VvX3BsYW5lX2Zvb3QKICAgICAgICAg"
        "ICAgbm9ybWFsX3ZlYyA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkKICAg"
        "ICAgICAgICAgaWYgbm9ybWFsX3ZlYy5sZW5ndGggPiAwOgogICAgICAgICAgICAgICAgb2JqX2Npci5y"
        "b3RhdGlvbl9tb2RlID0gJ1FVQVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0aW9u"
        "X3F1YXRlcm5pb24gPSBtYXRodXRpbHMuVmVjdG9yKCgwLDAsMSkpLnJvdGF0aW9uX2RpZmZlcmVuY2Uo"
        "bm9ybWFsX3ZlYykKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMubmV3KG5hbWU9IlNv"
        "bGlkaWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tuZXNzID0gcHJvcHMu"
        "Y2lyY2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0"
        "ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNp"
        "cmNsZV9hbHBoYSkKICAgICAgICAgICAgb2JqX2Npci5oaWRlX3ZpZXdwb3J0ID0gb2JqX2Npci5oaWRl"
        "X3JlbmRlciA9IG5vdCBwcm9wcy5zaG93X2NpcmNsZQoKICAgICAgICAgICAgIyAzLiDpgaDjgZbjgYvj"
        "govljYrnkIMgKE5FVykKICAgICAgICAgICAgbWVzaF9oZW1pID0gYnB5LmRhdGEubWVzaGVzLm5ldyhI"
        "RU1JU1BIRVJFX05BTUUpCiAgICAgICAgICAgIG9ial9oZW1pID0gYnB5LmRhdGEub2JqZWN0cy5uZXco"
        "SEVNSVNQSEVSRV9OQU1FLCBtZXNoX2hlbWkpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5r"
        "KG9ial9oZW1pKQogICAgICAgICAgICAKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAg"
        "ICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRz"
        "PTE2LCByYWRpdXM9cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAgICAgIyBaIDwgMCDjga7poILn"
        "grnjgpLliYrpmaTjgZfjgabljYrnkIPjgavjgZnjgosgKCta5pa55ZCR44Gr6Iao44KJ44KAKQogICAg"
        "ICAgICAgICB2ZXJ0c190b19kZWxldGUgPSBbdiBmb3IgdiBpbiBibS52ZXJ0cyBpZiB2LmNvLnogPCAt"
        "MC4wMDFdCiAgICAgICAgICAgIGJtZXNoLm9wcy5kZWxldGUoYm0sIGdlb209dmVydHNfdG9fZGVsZXRl"
        "LCBjb250ZXh0PSdWRVJUUycpCiAgICAgICAgICAgIAogICAgICAgICAgICAjIOW6lemdouOCkuWhnuOB"
        "kOioreWumuOBjE9O44Gu5aC05ZCICiAgICAgICAgICAgIGlmIHByb3BzLmhlbWlfZmlsbF9ib3R0b206"
        "CiAgICAgICAgICAgICAgICBib3VuZGFyeV9lZGdlcyA9IFtlIGZvciBlIGluIGJtLmVkZ2VzIGlmIGxl"
        "bihlLmxpbmtfZmFjZXMpID09IDFdCiAgICAgICAgICAgICAgICBpZiBib3VuZGFyeV9lZGdlczoKICAg"
        "ICAgICAgICAgICAgICAgICBibWVzaC5vcHMuaG9sZXNfZmlsbChibSwgZWRnZXM9Ym91bmRhcnlfZWRn"
        "ZXMpCiAgICAgICAgICAgIAogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfaGVtaSkKICAgICAgICAg"
        "ICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAogICAgICAgICAgICBvYmpfaGVtaS5sb2NhdGlvbiA9IHBy"
        "b3BzLmdlb19wbGFuZV9mb290CiAgICAgICAgICAgIAogICAgICAgICAgICAjIOWQkeOBje+8muWOn+eC"
        "ueOBi+OCiemBoOOBluOBi+OCi+aWueWQke+8iOWegue3muOBrui2s+aWueWQke+8ieOBq+WQkeOBkeOC"
        "iwogICAgICAgICAgICB1cF9kaXIgPSBmb290X3ZlYy5ub3JtYWxpemVkKCkgaWYgZm9vdF92ZWMubGVu"
        "Z3RoID4gMC4wMDAxIGVsc2Ugbm9ybWFsX3ZlYwogICAgICAgICAgICBvYmpfaGVtaS5yb3RhdGlvbl9t"
        "b2RlID0gJ1FVQVRFUk5JT04nCiAgICAgICAgICAgIG9ial9oZW1pLnJvdGF0aW9uX3F1YXRlcm5pb24g"
        "PSBtYXRodXRpbHMuVmVjdG9yKCgwLDAsMSkpLnJvdGF0aW9uX2RpZmZlcmVuY2UodXBfZGlyKQogICAg"
        "ICAgICAgICAKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9oZW1pLnBvbHlnb25zOiBwb2x5LnVz"
        "ZV9zbW9vdGggPSBUcnVlCiAgICAgICAgICAgIG9ial9oZW1pLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0"
        "ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9IZW1pIiwgcHJvcHMuaGVtaV9jb2xvciwgcHJvcHMuaGVtaV9h"
        "bHBoYSkKICAgICAgICAgICAgb2JqX2hlbWkuaGlkZV92aWV3cG9ydCA9IG9ial9oZW1pLmhpZGVfcmVu"
        "ZGVyID0gbm90IHByb3BzLnNob3dfaGVtaXNwaGVyZQoKICAgICAgICAgICAgIyA0LiDmnIDnn63ot53p"
        "m6Ljga7pgI/mmI7nkIPkvZMo5YaF5q67KQogICAgICAgICAgICBtZXNoX3NwaCA9IGJweS5kYXRhLm1l"
        "c2hlcy5uZXcoRElTVF9TUEhFUkVfTkFNRSkKICAgICAgICAgICAgb2JqX3NwaCA9IGJweS5kYXRhLm9i"
        "amVjdHMubmV3KERJU1RfU1BIRVJFX05BTUUsIG1lc2hfc3BoKQogICAgICAgICAgICBzdWJfY29sLm9i"
        "amVjdHMubGluayhvYmpfc3BoKQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAg"
        "IGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVudHM9MTYs"
        "IHJhZGl1cz1kaXN0KQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfc3BoKQogICAgICAgICAgICBi"
        "bS5mcmVlKCkKICAgICAgICAgICAgb2JqX3NwaC5sb2NhdGlvbiA9ICgwLCAwLCAwKQogICAgICAgICAg"
        "ICBmb3IgcG9seSBpbiBtZXNoX3NwaC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0gVHJ1ZQogICAg"
        "ICAgICAgICBvYmpfc3BoLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1h"
        "dF9EaXN0U3BoZXJlIiwgcHJvcHMuZGlzdF9zcGhlcmVfY29sb3IsIHByb3BzLmRpc3Rfc3BoZXJlX2Fs"
        "cGhhKQogICAgICAgICAgICBvYmpfc3BoLmhpZGVfdmlld3BvcnQgPSBvYmpfc3BoLmhpZGVfcmVuZGVy"
        "ID0gbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUKCiAgICAgICAgIyA1LiDlpJbmrrvjga7lpKfjgY3j"
        "garpgI/mmI7nkIPkvZMKICAgICAgICBvdXRlcl9yID0gcHJvcHMuZ2VvX291dGVyX3JhZGl1cwogICAg"
        "ICAgIGlmIG91dGVyX3IgPiAwOgogICAgICAgICAgICBtZXNoX291dCA9IGJweS5kYXRhLm1lc2hlcy5u"
        "ZXcoT1VURVJfU1BIRVJFX05BTUUpCiAgICAgICAgICAgIG9ial9vdXQgPSBicHkuZGF0YS5vYmplY3Rz"
        "Lm5ldyhPVVRFUl9TUEhFUkVfTkFNRSwgbWVzaF9vdXQpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0"
        "cy5saW5rKG9ial9vdXQpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgYm1l"
        "c2gub3BzLmNyZWF0ZV91dnNwaGVyZShibSwgdV9zZWdtZW50cz0zMiwgdl9zZWdtZW50cz0xNiwgcmFk"
        "aXVzPW91dGVyX3IpCiAgICAgICAgICAgIGJtLnRvX21lc2gobWVzaF9vdXQpCiAgICAgICAgICAgIGJt"
        "LmZyZWUoKQogICAgICAgICAgICBvYmpfb3V0LmxvY2F0aW9uID0gKDAsIDAsIDApCiAgICAgICAgICAg"
        "IGZvciBwb2x5IGluIG1lc2hfb3V0LnBvbHlnb25zOiBwb2x5LnVzZV9zbW9vdGggPSBUcnVlCiAgICAg"
        "ICAgICAgIG9ial9vdXQuYWN0aXZlX21hdGVyaWFsID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0"
        "X091dGVyU3BoZXJlIiwgcHJvcHMub3V0ZXJfc3BoZXJlX2NvbG9yLCBwcm9wcy5vdXRlcl9zcGhlcmVf"
        "YWxwaGEpCiAgICAgICAgICAgIG9ial9vdXQuaGlkZV92aWV3cG9ydCA9IG9ial9vdXQuaGlkZV9yZW5k"
        "ZXIgPSBub3QgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmUKCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQn"
        "fQoKY2xhc3MgVENUQV9PVF9EZXRhY2hPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9p"
        "ZG5hbWUgPSAidGN0YS5kZXRhY2hfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuOCouODieOCquODs+OB"
        "i+OCieWIh+OCiumbouOBlyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBh"
        "cmVudF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkK"
        "ICAgICAgICBpZiBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sLm5hbWUgPSBQQVJFTlRf"
        "Q09MTEVDVElPTl9OQU1FICsgIl9EZXRhY2hlZCIKICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZP"
        "J30sICLliIfjgorpm6LjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNs"
        "YXNzIFRDVEFfT1RfUmVzZXRQcm9wcyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0g"
        "InRjdGEucmVzZXRfcHJvcHMiCiAgICBibF9sYWJlbCA9ICLliJ3mnJ/lgKTjgavmiLvjgZkiCiAgICBk"
        "ZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0"
        "YV9wcm9wcwogICAgICAgIHJlc2V0X2xpc3QgPSBbCiAgICAgICAgICAgICJ0b3J1c19jb2xvciIsICJ0"
        "b3J1c19hbHBoYSIsICJ0cmlfdGhpY2tuZXNzIiwgInRyaV9hbHBoYSIsICJ0cmlBX2NvbG9yIiwgInRy"
        "aUJfY29sb3IiLCAKICAgICAgICAgICAgInNob3dfYXJyb3ciLCAic2hvd19jaXJjbGUiLCAic2hvd19k"
        "aXN0X3NwaGVyZSIsICJzaG93X291dGVyX3NwaGVyZSIsICJzaG93X2hlbWlzcGhlcmUiLAogICAgICAg"
        "ICAgICAiYXJyb3dfdGhpY2tuZXNzIiwgImFycm93X2NvbG9yIiwgImNpcmNsZV9yYWRpdXMiLCAiY2ly"
        "Y2xlX3RoaWNrbmVzcyIsICJjaXJjbGVfY29sb3IiLCAiY2lyY2xlX2FscGhhIiwKICAgICAgICAgICAg"
        "ImRpc3Rfc3BoZXJlX2NvbG9yIiwgImRpc3Rfc3BoZXJlX2FscGhhIiwgIm91dGVyX3NwaGVyZV9jb2xv"
        "ciIsICJvdXRlcl9zcGhlcmVfYWxwaGEiLAogICAgICAgICAgICAiaGVtaV9maWxsX2JvdHRvbSIsICJo"
        "ZW1pX2NvbG9yIiwgImhlbWlfYWxwaGEiCiAgICAgICAgXQogICAgICAgIGZvciBwIGluIHJlc2V0X2xp"
        "c3Q6CiAgICAgICAgICAgIHByb3BzLnByb3BlcnR5X3Vuc2V0KHApCiAgICAgICAgcmV0dXJuIHsnRklO"
        "SVNIRUQnfQoKY2xhc3MgVENUQV9PVF9SYW5kb21SZXNldChicHkudHlwZXMuT3BlcmF0b3IpOgogICAg"
        "YmxfaWRuYW1lID0gInRjdGEucmFuZG9tX3Jlc2V0IgogICAgYmxfbGFiZWwgPSAi44Op44Oz44OA44Og"
        "5YaN6KiI566X77yG5pu05pawIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAg"
        "YnB5Lm9wcy50Y3RhLmNyZWF0ZV9vYmplY3RzKCkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9Cgpj"
        "bGFzcyBUQ1RBX09UX0NvcHlHZW9JbmZvKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUg"
        "PSAidGN0YS5jb3B5X2dlb19pbmZvIgogICAgYmxfbGFiZWwgPSAi5bm+5L2V5oOF5aCx44KS44Kz44OU"
        "44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0"
        "LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgZiJTcDEgRGlzdDog"
        "e3Byb3BzLmdlb19zcDFfZGlzdDouMWZ9LCBBbmc6IFg9e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn0s"
        "IFk9e3Byb3BzLmdlb19zcDFfYW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn0i"
        "LAogICAgICAgICAgICBmIlNwMiBEaXN0OiB7cHJvcHMuZ2VvX3NwMl9kaXN0Oi4xZn0sIEFuZzogWD17"
        "cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjFmfSwgWj17"
        "cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiU3AzIERpc3Q6IHtwcm9wcy5n"
        "ZW9fc3AzX2Rpc3Q6LjFmfSwgQW5nOiBYPXtwcm9wcy5nZW9fc3AzX2FuZ1swXTouMWZ9LCBZPXtwcm9w"
        "cy5nZW9fc3AzX2FuZ1sxXTouMWZ9LCBaPXtwcm9wcy5nZW9fc3AzX2FuZ1syXTouMWZ9IiwKICAgICAg"
        "ICAgICAgZiJQbGFuZSBDcm9zcyBBbmdsZToge3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9IiwKICAg"
        "ICAgICAgICAgZiJTaG9ydGVzdCBEaXN0IHRvIFBsYW5lIEIgKElubmVyIFJhZGl1cyk6IHtwcm9wcy5n"
        "ZW9fcGxhbmVfZGlzdDouMWZ9IiwKICAgICAgICAgICAgZiJTaG9ydGVzdCBGb290IFBvczogWD17cHJv"
        "cHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMV06LjFmfSwg"
        "Wj17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSIsCiAgICAgICAgICAgIGYiT3V0ZXIgU2hlbGwg"
        "UmFkaXVzIChNYXggRGlzdCk6IHtwcm9wcy5nZW9fb3V0ZXJfcmFkaXVzOi4xZn0iCiAgICAgICAgXQog"
        "ICAgICAgIGNvbnRleHQud2luZG93X21hbmFnZXIuY2xpcGJvYXJkID0gIlxuIi5qb2luKGxpbmVzKQog"
        "ICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi44Kz44OU44O844GX44G+44GX44GfIikKICAgICAg"
        "ICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX09wZW5MaW5rKGJweS50eXBlcy5PcGVy"
        "YXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5vcGVuX2xpbmsiCiAgICBibF9sYWJlbCA9ICLjg6rj"
        "g7Pjgq/jgpLplovjgY8iCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBicHku"
        "b3BzLndtLnVybF9vcGVuKHVybD0iaHR0cHM6Ly93d3cuYmxlbmRlci5vcmcvIikKICAgICAgICByZXR1"
        "cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0RlbGV0ZUFsbChicHkudHlwZXMuT3BlcmF0b3Ip"
        "OgogICAgYmxfaWRuYW1lID0gInRjdGEuZGVsZXRlX2FsbCIKICAgIGJsX2xhYmVsID0gIumWoumAo+WF"
        "qOWJiumZpCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBhcmVudF9jb2wg"
        "PSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBp"
        "ZiBwYXJlbnRfY29sOgogICAgICAgICAgICBmb3Igb2JqIGluIHBhcmVudF9jb2wuYWxsX29iamVjdHM6"
        "CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShvYmosIGRvX3VubGluaz1UcnVl"
        "KQogICAgICAgICAgICBicHkuZGF0YS5jb2xsZWN0aW9ucy5yZW1vdmUocGFyZW50X2NvbCkKICAgICAg"
        "ICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLlhajliYrpmaTjgZfjgb7jgZfjgZ8iKQogICAgICAg"
        "IHJldHVybiB7J0ZJTklTSEVEJ30KCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA1LiBVSSDjg5Hjg43jg6vlrprn"
        "vqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfUFRfUGFuZWxCYXNlOgogICAgYmxfc3BhY2VfdHlw"
        "ZSA9ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJU"
        "Q1RBIgoKY2xhc3MgVENUQV9QVF9WaWV3SW5mbyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBh"
        "bmVsKToKICAgIGJsX2lkbmFtZSA9ICJUQ1RBX1BUX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIjEu"
        "IOODk+ODpeODvOODneODvOODiOaDheWgsSIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAg"
        "ICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFf"
        "cHJvcHMKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEudmlld19zZWxlY3RlZCIsIGljb249J1ZJ"
        "RVdaT09NJykKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIsIGlj"
        "b249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94Lmxh"
        "YmVsKHRleHQ9ZiJDZW50ZXI6ICh7cHJvcHMudmlld19jZW50ZXIueDouMWZ9LCB7cHJvcHMudmlld19j"
        "ZW50ZXIueTouMWZ9LCB7cHJvcHMudmlld19jZW50ZXIuejouMWZ9KSIpCiAgICAgICAgYm94LmxhYmVs"
        "KHRleHQ9ZiJTaXplIChweCk6IFc9e3Byb3BzLnZpZXdfc2l6ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6"
        "ZVsxXX0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2FtZXJhIERpc3Q6IHtwcm9wcy52aWV3X2Rp"
        "c3RhbmNlOi4xZn0iIGlmIHByb3BzLnZpZXdfZGlzdGFuY2UgPiAwIGVsc2UgIkNhbWVyYSBEaXN0OiBO"
        "L0EiKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5jb3B5X3ZpZXdfaW5mbyIsIGljb249J0NP"
        "UFlET1dOJykKCmNsYXNzIFRDVEFfUFRfTWFpbihUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBh"
        "bmVsKToKICAgIGJsX2lkbmFtZSA9ICJUQ1RBX1BUX21haW4iCiAgICBibF9sYWJlbCA9ICIyLiDjg6Hj"
        "gqTjg7Plrp/ooYwiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBz"
        "ZWxmLmxheW91dAogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5jcmVhdGVfb2JqZWN0cyIsIGlj"
        "b249J1BMQVknLCB0ZXh0PSLkvZzmiJAgKOeUn+aIkOODu+abtOaWsCkiKQogICAgICAgIGxheW91dC5v"
        "cGVyYXRvcigidGN0YS5kZXRhY2hfb2JqZWN0cyIsIGljb249J1VOTElOS0VEJykKCmNsYXNzIFRDVEFf"
        "UFRfU2V0dGluZ3MoVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5h"
        "bWUgPSAiVENUQV9QVF9zZXR0aW5ncyIKICAgIGJsX2xhYmVsID0gIjMuIOODkeODqeODoeODvOOCv+io"
        "reWumiIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5"
        "b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsYXlvdXQu"
        "b3BlcmF0b3IoInRjdGEucmVzZXRfcHJvcHMiLCBpY29uPSdMT09QX0JBQ0snKQogICAgICAgIGJveCA9"
        "IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUb3J1cyBGcmFtZToiKQogICAgICAg"
        "IGJveC5wcm9wKHByb3BzLCAidG9ydXNfY29sb3IiLCB0ZXh0PSJDb2xvciIpCiAgICAgICAgYm94LnBy"
        "b3AocHJvcHMsICJ0b3J1c19hbHBoYSIsIHRleHQ9IkFscGhhIikKICAgICAgICBib3ggPSBsYXlvdXQu"
        "Ym94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iU3BoZXJlczoiKQogICAgICAgIGZvciBpIGluIHJh"
        "bmdlKDEsIDQpOgogICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3Ao"
        "cHJvcHMsIGYic3B7aX1fbW9kZSIsIHRleHQ9ZiJTcHtpfSIpCiAgICAgICAgICAgIGlmIGdldGF0dHIo"
        "cHJvcHMsIGYic3B7aX1fbW9kZSIpID09ICdNQU5VQUwnOgogICAgICAgICAgICAgICAgYm94LnByb3Ao"
        "cHJvcHMsIGYic3B7aX1fcG9zIiwgdGV4dD0iWFlaIikKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkK"
        "ICAgICAgICBib3gubGFiZWwodGV4dD0iVHJpYW5nbGVzOiIpCiAgICAgICAgYm94LnByb3AocHJvcHMs"
        "ICJ0cmlfdGhpY2tuZXNzIikKICAgICAgICBib3gucHJvcChwcm9wcywgInRyaV9hbHBoYSIpCiAgICAg"
        "ICAgYm94LnByb3AocHJvcHMsICJ0cmlBX2NvbG9yIikKICAgICAgICBib3gucHJvcChwcm9wcywgInRy"
        "aUJfY29sb3IiKQogICAgICAgIAogICAgICAgICMg6KGo56S6L+mdnuihqOekuuODiOOCsOODq+OBqOip"
        "s+e0sOioreWumgogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0"
        "PSJHZW9tZXRyaWMgVmlzdWFscyBUb2dnbGU6IikKICAgICAgICAKICAgICAgICByb3cgPSBib3gucm93"
        "KCkKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfYXJyb3ciLCBpY29uPSdUUklBX1JJR0hUJyBp"
        "ZiBub3QgcHJvcHMuc2hvd19hcnJvdyBlbHNlICdUUklBX0RPV04nKQogICAgICAgIHJvdy5wcm9wKHBy"
        "b3BzLCAic2hvd19jaXJjbGUiLCBpY29uPSdUUklBX1JJR0hUJyBpZiBub3QgcHJvcHMuc2hvd19jaXJj"
        "bGUgZWxzZSAnVFJJQV9ET1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfaGVtaXNwaGVy"
        "ZSIsIGljb249J1RSSUFfUklHSFQnIGlmIG5vdCBwcm9wcy5zaG93X2hlbWlzcGhlcmUgZWxzZSAnVFJJ"
        "QV9ET1dOJykKICAgICAgICAKICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICByb3cucHJvcChw"
        "cm9wcywgInNob3dfZGlzdF9zcGhlcmUiLCB0ZXh0PSLlhoXmrrvnkIMiLCBpY29uPSdUUklBX1JJR0hU"
        "JyBpZiBub3QgcHJvcHMuc2hvd19kaXN0X3NwaGVyZSBlbHNlICdUUklBX0RPV04nKQogICAgICAgIHJv"
        "dy5wcm9wKHByb3BzLCAic2hvd19vdXRlcl9zcGhlcmUiLCB0ZXh0PSLlpJbmrrvnkIMiLCBpY29uPSdU"
        "UklBX1JJR0hUJyBpZiBub3QgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmUgZWxzZSAnVFJJQV9ET1dOJykK"
        "CiAgICAgICAgaWYgcHJvcHMuc2hvd19hcnJvdzoKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihh"
        "bGlnbj1UcnVlKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImFycm93X3RoaWNrbmVzcyIpCiAg"
        "ICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiYXJyb3dfY29sb3IiKQogICAgICAgIAogICAgICAgIGlm"
        "IHByb3BzLnNob3dfY2lyY2xlOgogICAgICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRydWUp"
        "CiAgICAgICAgICAgIGNvbC5zZXBhcmF0b3IoKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImNp"
        "cmNsZV9yYWRpdXMiLCB0ZXh0PSJSYWRpdXMgKENpcmNsZSAmIEhlbWkpIikKICAgICAgICAgICAgY29s"
        "LnByb3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNzIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMs"
        "ICJjaXJjbGVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImNpcmNsZV9hbHBoYSIp"
        "CiAgICAgICAgICAgIAogICAgICAgIGlmIHByb3BzLnNob3dfaGVtaXNwaGVyZToKICAgICAgICAgICAg"
        "Y29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAg"
        "ICAgICAgICAgY29sLnByb3AocHJvcHMsICJoZW1pX2ZpbGxfYm90dG9tIikKICAgICAgICAgICAgY29s"
        "LnByb3AocHJvcHMsICJoZW1pX2NvbG9yIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJoZW1p"
        "X2FscGhhIikKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd19kaXN0X3NwaGVyZToKICAg"
        "ICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAgICBjb2wuc2VwYXJh"
        "dG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJkaXN0X3NwaGVyZV9jb2xvciIpCiAgICAg"
        "ICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfYWxwaGEiKQoKICAgICAgICBpZiBwcm9w"
        "cy5zaG93X291dGVyX3NwaGVyZToKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVl"
        "KQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJv"
        "dXRlcl9zcGhlcmVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgIm91dGVyX3NwaGVy"
        "ZV9hbHBoYSIpCgpjbGFzcyBUQ1RBX1BUX0dlb0luZm8oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBl"
        "cy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9nZW9faW5mbyIKICAgIGJsX2xhYmVsID0g"
        "IjQuIOW5vuS9leaDheWgsSIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91"
        "dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAg"
        "ICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEucmFuZG9tX3Jlc2V0IiwgaWNvbj0nRklMRV9SRUZSRVNI"
        "JykKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4"
        "dD0iU3BoZXJlIDEgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIERpc3Q6"
        "IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEFuZzog"
        "e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDFfYW5nWzFdOi4xZn3CsCwg"
        "e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVy"
        "ZSAyIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMu"
        "Z2VvX3NwMl9kaXN0Oi4xZn0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5n"
        "ZW9fc3AyX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AyX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5n"
        "ZW9fc3AyX2FuZ1syXTouMWZ9wrAiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMyAoZnJv"
        "bSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDNf"
        "ZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwM19h"
        "bmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwM19h"
        "bmdbMl06LjFmfcKwIikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBi"
        "b3gubGFiZWwodGV4dD0iUGxhbmUgQ3Jvc3MgQW5nbGUgKEEgJiBCKToiKQogICAgICAgIGJveC5sYWJl"
        "bCh0ZXh0PWYiICBBbmdsZToge3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9wrAiKQogICAgICAgIAog"
        "ICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJQbGFuZSBCIElu"
        "bmVyIERpc3QgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIFNob3J0ZXN0"
        "IERpc3Q6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1m"
        "IiAgRm9vdDogKHtwcm9wcy5nZW9fcGxhbmVfZm9vdFswXTouMWZ9LCB7cHJvcHMuZ2VvX3BsYW5lX2Zv"
        "b3RbMV06LjFmfSwge3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4xZn0pIikKCiAgICAgICAgYm94ID0g"
        "bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9Ik91dGVyIEJvdW5kIFNwaGVyZSAoZnJv"
        "bSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgUmFkaXVzIChNYXggRGlzdCk6IHtw"
        "cm9wcy5nZW9fb3V0ZXJfcmFkaXVzOi4xZn0iKQoKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEu"
        "Y29weV9nZW9faW5mbyIsIGljb249J0NPUFlET1dOJykKCmNsYXNzIFRDVEFfUFRfU3lzdGVtKFRDVEFf"
        "UFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc3lz"
        "dGVtIgogICAgYmxfbGFiZWwgPSAiNS4g44K344K544OG44OgIgogICAgZGVmIGRyYXcoc2VsZiwgY29u"
        "dGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3BlcmF0b3Io"
        "InRjdGEub3Blbl9saW5rIiwgaWNvbj0nVVJMJykKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEu"
        "ZGVsZXRlX2FsbCIsIGljb249J1RSQVNIJywgdGV4dD0i44Ki44OJ44Kq44Oz5YmK6ZmkICjlhajjgq/j"
        "g6rjgqIpIikKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA2LiDnmbvpjLLlh6bnkIYKIyA9PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "CmNsYXNzZXMgPSAoCiAgICBUQ1RBX1Byb3BlcnRpZXMsCiAgICBUQ1RBX09UX1ZpZXdTZWxlY3RlZCwK"
        "ICAgIFRDVEFfT1RfVXBkYXRlVmlld0luZm8sCiAgICBUQ1RBX09UX0NvcHlWaWV3SW5mbywKICAgIFRD"
        "VEFfT1RfQ3JlYXRlT2JqZWN0cywKICAgIFRDVEFfT1RfRGV0YWNoT2JqZWN0cywKICAgIFRDVEFfT1Rf"
        "UmVzZXRQcm9wcywKICAgIFRDVEFfT1RfUmFuZG9tUmVzZXQsCiAgICBUQ1RBX09UX0NvcHlHZW9JbmZv"
        "LAogICAgVENUQV9PVF9PcGVuTGluaywKICAgIFRDVEFfT1RfRGVsZXRlQWxsLAogICAgVENUQV9QVF9W"
        "aWV3SW5mbywKICAgIFRDVEFfUFRfTWFpbiwKICAgIFRDVEFfUFRfU2V0dGluZ3MsCiAgICBUQ1RBX1BU"
        "X0dlb0luZm8sCiAgICBUQ1RBX1BUX1N5c3RlbSwKKQoKZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xz"
        "IGluIGNsYXNzZXM6CiAgICAgICAgYnB5LnV0aWxzLnJlZ2lzdGVyX2NsYXNzKGNscykKICAgIGJweS50"
        "eXBlcy5TY2VuZS50Y3RhX3Byb3BzID0gYnB5LnByb3BzLlBvaW50ZXJQcm9wZXJ0eSh0eXBlPVRDVEFf"
        "UHJvcGVydGllcykKCmRlZiB1bnJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNz"
        "ZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lzdGVyX2NsYXNzKGNscykKICAgIGRlbCBicHkudHlw"
        "ZXMuU2NlbmUudGN0YV9wcm9wcwoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHJlZ2lzdGVy"
        "KCk="
        )
    },
    {
        "name": "平面2つなす角度 20260713_005",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
        "ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA1LCAwKSwKICAgICJi"
        "bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
        "IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjgbjjga7mnIDnn63ot53pm6LvvIjlhoXmrrvvvInj"
        "gajjgIEz55CD5L2T44KS5YyF44KA5pyA5aSn6Led6Zui77yI5aSW5q6777yJ44Gu5bm+5L2V5a2m55qE"
        "6KaW6Kaa5YyWIiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQg"
        "Ym1lc2gKaW1wb3J0IG1hdGgKaW1wb3J0IG1hdGh1dGlscwppbXBvcnQgcmFuZG9tCgojID09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT0KIyAxLiDliJ3mnJ/lgKTlrprnvqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBSRUZJWCA9ICJUQ1RBXyIK"
        "UEFSRU5UX0NPTExFQ1RJT05fTkFNRSA9ICJUb3J1c0N1YmVTcGFjZSIKU1VCX0NPTExFQ1RJT05fTkFN"
        "RSA9ICJBbmFseXplck9iamVjdHMiClRPUlVTX1NLRUxFVE9OX05BTUUgPSAiVG9ydXNTa2VsZXRvbiIK"
        "U1BIRVJFXzFfTkFNRSA9ICJTcGhlcmVfMSIKU1BIRVJFXzJfTkFNRSA9ICJTcGhlcmVfMiIKU1BIRVJF"
        "XzNfTkFNRSA9ICJTcGhlcmVfMyIKVFJJQU5HTEVfQV9OQU1FID0gIlRyaWFuZ2xlX0EiClRSSUFOR0xF"
        "X0JfTkFNRSA9ICJUcmlhbmdsZV9CIgpBUlJPV19OQU1FID0gIkFycm93X1Nob3J0ZXN0RGlzdCIKQ0lS"
        "Q0xFX05BTUUgPSAiQ2lyY2xlX1BsYW5lQiIKRElTVF9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfU2hvcnRl"
        "c3REaXN0IgpPVVRFUl9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfT3V0ZXJCb3VuZCIgIyDmlrDopo/ov73l"
        "iqA6IDPnkIPjgpLljIXjgoDlpKfjgY3jgarnkIPkvZMKCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIuIOODl+OD"
        "reODkeODhuOCo+Wumue+qe+8iOabtOaWsOOCs+ODvOODq+ODkOODg+OCr+WQq+OCgO+8iQojID09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT0KZGVmIHVwZGF0ZV92aXNfYXJyb3coc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHku"
        "ZGF0YS5vYmplY3RzLmdldChBUlJPV19OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9iai5oaWRlX3Zp"
        "ZXdwb3J0ID0gbm90IHNlbGYuc2hvd19hcnJvdwogICAgICAgIG9iai5oaWRlX3JlbmRlciA9IG5vdCBz"
        "ZWxmLnNob3dfYXJyb3cKCmRlZiB1cGRhdGVfdmlzX2NpcmNsZShzZWxmLCBjb250ZXh0KToKICAgIG9i"
        "aiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KENJUkNMRV9OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9i"
        "ai5oaWRlX3ZpZXdwb3J0ID0gbm90IHNlbGYuc2hvd19jaXJjbGUKICAgICAgICBvYmouaGlkZV9yZW5k"
        "ZXIgPSBub3Qgc2VsZi5zaG93X2NpcmNsZQoKZGVmIHVwZGF0ZV92aXNfc3BoZXJlKHNlbGYsIGNvbnRl"
        "eHQpOgogICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQoRElTVF9TUEhFUkVfTkFNRSkKICAgIGlm"
        "IG9iajoKICAgICAgICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfZGlzdF9zcGhlcmUK"
        "ICAgICAgICBvYmouaGlkZV9yZW5kZXIgPSBub3Qgc2VsZi5zaG93X2Rpc3Rfc3BoZXJlCgpkZWYgdXBk"
        "YXRlX3Zpc19vdXRlcl9zcGhlcmUoc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHkuZGF0YS5vYmpl"
        "Y3RzLmdldChPVVRFUl9TUEhFUkVfTkFNRSkKICAgIGlmIG9iajoKICAgICAgICBvYmouaGlkZV92aWV3"
        "cG9ydCA9IG5vdCBzZWxmLnNob3dfb3V0ZXJfc3BoZXJlCiAgICAgICAgb2JqLmhpZGVfcmVuZGVyID0g"
        "bm90IHNlbGYuc2hvd19vdXRlcl9zcGhlcmUKCmNsYXNzIFRDVEFfUHJvcGVydGllcyhicHkudHlwZXMu"
        "UHJvcGVydHlHcm91cCk6CiAgICAjIOODiOODvOODqeOCuemqqOagvOioreWumgogICAgdG9ydXNfY29s"
        "b3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlRvcnVzIENvbG9yIiwgc3VidHlw"
        "ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMSwgMC41LCAwLjgsIDEuMCksIG1pbj0w"
        "LjAsIG1heD0xLjApCiAgICB0b3J1c19hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0i"
        "VG9ydXMgQWxwaGEiLCBkZWZhdWx0PTAuNSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgIyDphY3n"
        "va7jg6Ljg7zjg4kKICAgIG1vZGVfb3B0aW9ucyA9IFsoJ1JBTkRPTScsICLjg6njg7Pjg4Djg6AiLCAi"
        "IiksICgnTUFOVUFMJywgIuaMh+WumuS9jee9riIsICIiKV0KICAgIHNwMV9tb2RlOiBicHkucHJvcHMu"
        "RW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRP"
        "TScpCiAgICBzcDJfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9"
        "bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgc3AzX21vZGU6IGJweS5wcm9wcy5FbnVt"
        "UHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykK"
        "ICAgIAogICAgc3AxX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRp"
        "b24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4wLCAyLjApKQogICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0"
        "VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMiIsIGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkp"
        "CiAgICBzcDNfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAz"
        "IiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0yLjApKQogICAgCiAgICBzcDFfYWN0dWFsX3BvczogYnB5LnBy"
        "b3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AyX2FjdHVhbF9wb3M6"
        "IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKICAgIHNwM19hY3R1"
        "YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkpCgogICAg"
        "IyDkuInop5LlvaLoqK3lrpoKICAgIHRyaV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
        "KG5hbWU9IlRoaWNrbmVzcyIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgdHJpX2FscGhhOiBicHku"
        "cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJBbHBoYSIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wLCBtYXg9"
        "MS4wKQogICAgdHJpQV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQ29s"
        "b3IgQSIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgwLjgsIDAuMiwgMC4y"
        "LCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgdHJpQl9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
        "dG9yUHJvcGVydHkobmFtZT0iQ29sb3IgQiIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
        "ZWZhdWx0PSgwLjIsIDAuOCwgMC4yLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg6KGo56S6"
        "L+mdnuihqOekuuODiOOCsOODqwogICAgc2hvd19hcnJvdzogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShu"
        "YW1lPSLnn6LljbAiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2Fycm93KQogICAgc2hv"
        "d19jaXJjbGU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5YaG55ukIiwgZGVmYXVsdD1UcnVl"
        "LCB1cGRhdGU9dXBkYXRlX3Zpc19jaXJjbGUpCiAgICBzaG93X2Rpc3Rfc3BoZXJlOiBicHkucHJvcHMu"
        "Qm9vbFByb3BlcnR5KG5hbWU9IuacgOefrei3nemboueQg+S9kyjlhoXmrrspIiwgZGVmYXVsdD1UcnVl"
        "LCB1cGRhdGU9dXBkYXRlX3Zpc19zcGhlcmUpCiAgICBzaG93X291dGVyX3NwaGVyZTogYnB5LnByb3Bz"
        "LkJvb2xQcm9wZXJ0eShuYW1lPSLmnIDlpKfot53pm6LnkIPkvZMo5aSW5q67KSIsIGRlZmF1bHQ9VHJ1"
        "ZSwgdXBkYXRlPXVwZGF0ZV92aXNfb3V0ZXJfc3BoZXJlKQoKICAgICMg6KaW6Kaa5YyW6Kit5a6aCiAg"
        "ICBhcnJvd190aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFycm93IFRoaWNr"
        "bmVzcyIsIGRlZmF1bHQ9MC4wNSwgbWluPTAuMDEsIG1heD0xLjApCiAgICBhcnJvd19jb2xvcjogYnB5"
        "LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQXJyb3cgQ29sb3IiLCBzdWJ0eXBlPSdDT0xP"
        "Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjgsIDAuMCwgMS4wKSwgbWluPTAuMCwgbWF4"
        "PTEuMCkKICAgIGNpcmNsZV9yYWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNs"
        "ZSBSYWRpdXMiLCBkZWZhdWx0PTMuMCwgbWluPTAuMSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5w"
        "cm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWlu"
        "PTAuMCkKICAgIGNpcmNsZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
        "Q2lyY2xlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwg"
        "MC41LCAwLjAsIDAuNCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBjaXJjbGVfYWxwaGE6IGJweS5wcm9w"
        "cy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBBbHBoYSIsIGRlZmF1bHQ9MC40LCBtaW49MC4wLCBt"
        "YXg9MS4wKQogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
        "KG5hbWU9IklubmVyIFNwaGVyZSBDb2xvciIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
        "ZWZhdWx0PSgwLjAsIDAuOCwgMS4wLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgZGlzdF9zcGhl"
        "cmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IklubmVyIFNwaGVyZSBBbHBoYSIs"
        "IGRlZmF1bHQ9MC4wNiwgbWluPTAuMCwgbWF4PTEuMCkKICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5"
        "LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iT3V0ZXIgU3BoZXJlIENvbG9yIiwgc3VidHlw"
        "ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4wLCAxLjAsIDEuMCksIG1pbj0w"
        "LjAsIG1heD0xLjApCiAgICBvdXRlcl9zcGhlcmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
        "KG5hbWU9Ik91dGVyIFNwaGVyZSBBbHBoYSIsIGRlZmF1bHQ9MC4wNCwgbWluPTAuMCwgbWF4PTEuMCkK"
        "CiAgICAjIOODk+ODpeODvOODneODvOODiOODu+W5vuS9leaDheWgsQogICAgdmlld19jZW50ZXI6IGJw"
        "eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgQ2VudGVyIikKICAgIHZpZXdfc2l6"
        "ZTogYnB5LnByb3BzLkludFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgU2l6ZSAoUHgpIiwgc2l6ZT0y"
        "KQogICAgdmlld19kaXN0YW5jZTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iVmlldyBEaXN0"
        "YW5jZSIpCiAgICAKICAgIGdlb19zcDFfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAg"
        "Z2VvX3NwMV9hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19z"
        "cDJfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3NwMl9hbmc6IGJweS5wcm9w"
        "cy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19zcDNfZGlzdDogYnB5LnByb3BzLkZs"
        "b2F0UHJvcGVydHkoKQogICAgZ2VvX3NwM19hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
        "KHNpemU9MykKICAgIAogICAgZ2VvX3BsYW5lX2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgp"
        "CiAgICBnZW9fcGxhbmVfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5l"
        "X2Zvb3Q6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19wbGFuZV9u"
        "b3JtYWw6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19vdXRlcl9y"
        "YWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkgIyDlpJbmrrvnkIPkvZPjga7ljYrlvoQKCgoj"
        "ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPplqLmlbAKIyA9PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09CmRlZiBnZXRfM2Rfdmlld19jb250ZXh0KCk6CiAgICBmb3Igd2luZG93IGluIGJweS5jb250ZXh0"
        "LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgZm9yIGFyZWEgaW4gd2luZG93LnNjcmVlbi5h"
        "cmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09ICdWSUVXXzNEJzoKICAgICAgICAgICAgICAg"
        "IGZvciByZWdpb24gaW4gYXJlYS5yZWdpb25zOgogICAgICAgICAgICAgICAgICAgIGlmIHJlZ2lvbi50"
        "eXBlID09ICdXSU5ET1cnOgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJlYSwgcmVnaW9u"
        "LCBhcmVhLnNwYWNlcy5hY3RpdmUKICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lCgpkZWYgY3JlYXRl"
        "X21hdGVyaWFsKG5hbWUsIGNvbG9yLCBhbHBoYSk6CiAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMu"
        "Z2V0KG5hbWUpCiAgICBpZiBub3QgbWF0OgogICAgICAgIG1hdCA9IGJweS5kYXRhLm1hdGVyaWFscy5u"
        "ZXcobmFtZSkKICAgIG1hdC51c2Vfbm9kZXMgPSBUcnVlCiAgICAKICAgIGlmIGhhc2F0dHIobWF0LCAi"
        "YmxlbmRfbWV0aG9kIik6CiAgICAgICAgbWF0LmJsZW5kX21ldGhvZCA9ICdCTEVORCcKICAgIGlmIGhh"
        "c2F0dHIobWF0LCAic2hhZG93X21ldGhvZCIpOgogICAgICAgIG1hdC5zaGFkb3dfbWV0aG9kID0gJ05P"
        "TkUnCiAgICAKICAgIGJzZGYgPSBtYXQubm9kZV90cmVlLm5vZGVzLmdldCgiUHJpbmNpcGxlZCBCU0RG"
        "IikKICAgIGlmIGJzZGY6CiAgICAgICAgYnNkZi5pbnB1dHNbIkJhc2UgQ29sb3IiXS5kZWZhdWx0X3Zh"
        "bHVlID0gY29sb3IKICAgICAgICBic2RmLmlucHV0c1siQWxwaGEiXS5kZWZhdWx0X3ZhbHVlID0gYWxw"
        "aGEKICAgIHJldHVybiBtYXQKCmRlZiBjYWxjX2dlb19kYXRhKHByb3BzKToKICAgIGRlZiBjYWxjX2Rp"
        "c3RfYW5nbGUodmVjKToKICAgICAgICBkaXN0ID0gdmVjLmxlbmd0aAogICAgICAgIGlmIGRpc3QgPT0g"
        "MDogcmV0dXJuIDAsIDAsIDAsIDAKICAgICAgICBuID0gdmVjLm5vcm1hbGl6ZWQoKQogICAgICAgIGF4"
        "ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLngpKQogICAgICAgIGF5ID0gbWF0aC5kZWdyZWVzKG1h"
        "dGguYWNvcyhuLnkpKQogICAgICAgIGF6ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLnopKQogICAg"
        "ICAgIHJldHVybiBkaXN0LCBheCwgYXksIGF6CgogICAgcDAgPSBtYXRodXRpbHMuVmVjdG9yKCgwLCAw"
        "LCAwKSkKICAgIHAxID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDFfYWN0dWFsX3BvcykKICAgIHAy"
        "ID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgIHAzID0gbWF0aHV0aWxz"
        "LlZlY3Rvcihwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICBkMSwgYXgxLCBheTEsIGF6MSA9IGNhbGNf"
        "ZGlzdF9hbmdsZShwMSkKICAgIHByb3BzLmdlb19zcDFfZGlzdCA9IGQxCiAgICBwcm9wcy5nZW9fc3Ax"
        "X2FuZyA9IChheDEsIGF5MSwgYXoxKQoKICAgIGQyLCBheDIsIGF5MiwgYXoyID0gY2FsY19kaXN0X2Fu"
        "Z2xlKHAyKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0ID0gZDIKICAgIHByb3BzLmdlb19zcDJfYW5nID0g"
        "KGF4MiwgYXkyLCBhejIpCgogICAgZDMsIGF4MywgYXkzLCBhejMgPSBjYWxjX2Rpc3RfYW5nbGUocDMp"
        "CiAgICBwcm9wcy5nZW9fc3AzX2Rpc3QgPSBkMwogICAgcHJvcHMuZ2VvX3NwM19hbmcgPSAoYXgzLCBh"
        "eTMsIGF6MykKICAgIAogICAgIyDlpJbmrrvnkIPkvZPvvIgz44Gk44Gu55CD44KS44GZ44G544Gm5YyF"
        "44KA77yJ44Gu5Y2K5b6ECiAgICBwcm9wcy5nZW9fb3V0ZXJfcmFkaXVzID0gbWF4KGQxLCBkMiwgZDMp"
        "CgogICAgdjEgPSBwMSAtIHAwCiAgICB2MiA9IHAyIC0gcDAKICAgIHYzID0gcDIgLSBwMQogICAgdjQg"
        "PSBwMyAtIHAxCiAgICBuMSA9IHYxLmNyb3NzKHYyKQogICAgbjIgPSB2My5jcm9zcyh2NCkKICAgIAog"
        "ICAgaWYgbjEubGVuZ3RoID4gMC4wMDAxIGFuZCBuMi5sZW5ndGggPiAwLjAwMDE6CiAgICAgICAgbjFf"
        "bm9ybSA9IG4xLm5vcm1hbGl6ZWQoKQogICAgICAgIG4yX25vcm0gPSBuMi5ub3JtYWxpemVkKCkKICAg"
        "ICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gbjJfbm9ybQogICAgICAgIGRvdCA9IG1heCgtMS4w"
        "LCBtaW4oMS4wLCBuMV9ub3JtLmRvdChuMl9ub3JtKSkpCiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Fu"
        "Z2xlID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhkb3QpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
        "ZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwx"
        "KQoKICAgIGlmIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICB0ID0gbjJfbm9ybS5kb3QocDEpCiAg"
        "ICAgICAgSCA9IG4yX25vcm0gKiB0CiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSBhYnModCkK"
        "ICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9IEgKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2Vv"
        "X3BsYW5lX2Rpc3QgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9ICgwLCAwLCAwKQoK"
        "IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09CiMgNC4g44Kq44Oa44Os44O844K/44O8ICjlh6bnkIbjg63jgrjjg4Pjgq8p"
        "CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RBX09UX1ZpZXdTZWxlY3RlZChicHkudHlwZXMuT3BlcmF0"
        "b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudmlld19zZWxlY3RlZCIKICAgIGJsX2xhYmVsID0gIumB"
        "uOaKnuOCkueUu+mdouS4reWkruOBqyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
        "ICAgIGJweS5vcHMudmlldzNkLnZpZXdfc2VsZWN0ZWQoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVE"
        "J30KCmNsYXNzIFRDVEFfT1RfVXBkYXRlVmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJs"
        "X2lkbmFtZSA9ICJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4Xl"
        "oLHmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBhcmVhLCByZWdp"
        "b24sIHNwYWNlID0gZ2V0XzNkX3ZpZXdfY29udGV4dCgpCiAgICAgICAgaWYgbm90IHNwYWNlOgogICAg"
        "ICAgICAgICBzZWxmLnJlcG9ydCh7J1dBUk5JTkcnfSwgIjNE44OT44Ol44O844GM6KaL44Gk44GL44KK"
        "44G+44Gb44KTIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0g"
        "c3BhY2UucmVnaW9uXzNkCiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAg"
        "ICAgICBwcm9wcy52aWV3X2NlbnRlciA9IHJ2M2Qudmlld19sb2NhdGlvbgogICAgICAgIHByb3BzLnZp"
        "ZXdfc2l6ZSA9IChyZWdpb24ud2lkdGgsIHJlZ2lvbi5oZWlnaHQpCiAgICAgICAgaWYgcnYzZC52aWV3"
        "X3BlcnNwZWN0aXZlID09ICdQRVJTUCc6CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBy"
        "djNkLnZpZXdfZGlzdGFuY2UKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcm9wcy52aWV3X2Rpc3Rh"
        "bmNlID0gMC4wIAogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weVZp"
        "ZXdJbmZvKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X3ZpZXdf"
        "aW5mbyIKICAgIGJsX2xhYmVsID0gIuODk+ODpeODvOaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBl"
        "eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3By"
        "b3BzCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGYiQ2VudGVyOiBYPXtwcm9wcy52aWV3X2Nl"
        "bnRlci54Oi4xZn0sIFk9e3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwgWj17cHJvcHMudmlld19jZW50"
        "ZXIuejouMWZ9IiwKICAgICAgICAgICAgZiJTaXplOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtw"
        "cm9wcy52aWV3X3NpemVbMV19IiwKICAgICAgICAgICAgZiJEaXN0YW5jZToge3Byb3BzLnZpZXdfZGlz"
        "dGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiRGlzdGFuY2U6IE4vQSIK"
        "ICAgICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpv"
        "aW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfj"
        "gZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ3JlYXRlT2JqZWN0"
        "cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY3JlYXRlX29iamVjdHMi"
        "CiAgICBibF9sYWJlbCA9ICLkvZzmiJAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAg"
        "ICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIAogICAgICAgIHBhcmVu"
        "dF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAg"
        "ICAgICBpZiBub3QgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNv"
        "bGxlY3Rpb25zLm5ldyhQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNj"
        "ZW5lLmNvbGxlY3Rpb24uY2hpbGRyZW4ubGluayhwYXJlbnRfY29sKQogICAgICAgICAgICAKICAgICAg"
        "ICBzdWJfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFNVQl9DT0xMRUNUSU9OX05BTUUpCiAg"
        "ICAgICAgaWYgbm90IHN1Yl9jb2w6CiAgICAgICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0"
        "aW9ucy5uZXcoU1VCX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICAgICAgcGFyZW50X2NvbC5jaGlsZHJl"
        "bi5saW5rKHN1Yl9jb2wpCgogICAgICAgIG5hbWVzX3RvX2RlbGV0ZSA9IFsKICAgICAgICAgICAgVE9S"
        "VVNfU0tFTEVUT05fTkFNRSwgU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFN"
        "RSwgCiAgICAgICAgICAgIFRSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FLCBBUlJPV19OQU1F"
        "LCBDSVJDTEVfTkFNRSwgRElTVF9TUEhFUkVfTkFNRSwgT1VURVJfU1BIRVJFX05BTUUKICAgICAgICBd"
        "CiAgICAgICAgZm9yIG9ial9uYW1lIGluIG5hbWVzX3RvX2RlbGV0ZToKICAgICAgICAgICAgaWYgb2Jq"
        "X25hbWUgaW4gYnB5LmRhdGEub2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMu"
        "cmVtb3ZlKGJweS5kYXRhLm9iamVjdHNbb2JqX25hbWVdLCBkb191bmxpbms9VHJ1ZSkKCiAgICAgICAg"
        "IyDpqqjmoLzkvZzmiJAKICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhUT1JVU19TS0VM"
        "RVRPTl9OQU1FKQogICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3KFRPUlVTX1NLRUxFVE9O"
        "X05BTUUsIG1lc2gpCiAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgIGJtID0g"
        "Ym1lc2gubmV3KCkKICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2N1YmUoYm0sIHNpemU9MTAuMCkKICAg"
        "ICAgICBibWVzaC5vcHMuZGVsZXRlKGJtLCBnZW9tPWJtLmZhY2VzLCBjb250ZXh0PSdGQUNFUycpCiAg"
        "ICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgIGJtLmZyZWUoKQogICAgICAgIHNraW5fbW9kID0g"
        "b2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU2tpbiIsIHR5cGU9J1NLSU4nKQogICAgICAgIHN1Yl9tb2Qg"
        "PSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTdWJkaXZpc2lvbiIsIHR5cGU9J1NVQlNVUkYnKQogICAg"
        "ICAgIHN1Yl9tb2QubGV2ZWxzID0gMgogICAgICAgIGZvciB2IGluIG9iai5kYXRhLnNraW5fdmVydGlj"
        "ZXNbMF0uZGF0YToKICAgICAgICAgICAgdi5yYWRpdXMgPSAoMC4yLCAwLjIpCiAgICAgICAgb2JqLmFj"
        "dGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Ub3J1cyIsIHByb3BzLnRv"
        "cnVzX2NvbG9yLCBwcm9wcy50b3J1c19hbHBoYSkKCiAgICAgICAgIyDnkIPkvZPkvZzmiJAKICAgICAg"
        "ICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9wX3Bvcyk6CiAgICAgICAgICAgIGlmIG1vZGUgPT0gJ1JBTkRP"
        "TSc6CiAgICAgICAgICAgICAgICByZXR1cm4gKHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVu"
        "aWZvcm0oLTUsIDUpLCByYW5kb20udW5pZm9ybSgtNSwgNSkpCiAgICAgICAgICAgIHJldHVybiBwcm9w"
        "X3BvcwoKICAgICAgICBwcm9wcy5zcDFfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AxX21vZGUs"
        "IHByb3BzLnNwMV9wb3MpCiAgICAgICAgcHJvcHMuc3AyX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3Bz"
        "LnNwMl9tb2RlLCBwcm9wcy5zcDJfcG9zKQogICAgICAgIHByb3BzLnNwM19hY3R1YWxfcG9zID0gZ2V0"
        "X3Bvcyhwcm9wcy5zcDNfbW9kZSwgcHJvcHMuc3AzX3BvcykKCiAgICAgICAgZGVmIGNyZWF0ZV9zcGhl"
        "cmUobmFtZSwgbG9jKToKICAgICAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcobmFtZSkK"
        "ICAgICAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcobmFtZSwgbWVzaCkKICAgICAgICAg"
        "ICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAg"
        "ICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MTYsIHZfc2Vn"
        "bWVudHM9OCwgcmFkaXVzPTAuNSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAg"
        "ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqLmxvY2F0aW9uID0gbG9jCiAgICAgICAgICAgIHJldHVy"
        "biBvYmoKCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVfMV9OQU1FLCBwcm9wcy5zcDFfYWN0dWFs"
        "X3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8yX05BTUUsIHByb3BzLnNwMl9hY3R1YWxf"
        "cG9zKQogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzNfTkFNRSwgcHJvcHMuc3AzX2FjdHVhbF9w"
        "b3MpCgogICAgICAgICMg5LiJ6KeS5b2i5L2c5oiQCiAgICAgICAgZGVmIGNyZWF0ZV90cmlhbmdsZShu"
        "YW1lLCBwMSwgcDIsIHAzLCBjb2xvciwgYWxwaGEsIHRoaWNrbmVzcyk6CiAgICAgICAgICAgIG1lc2gg"
        "PSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVj"
        "dHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAg"
        "ICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICB2MSA9IGJtLnZlcnRzLm5ldyhwMSkK"
        "ICAgICAgICAgICAgdjIgPSBibS52ZXJ0cy5uZXcocDIpCiAgICAgICAgICAgIHYzID0gYm0udmVydHMu"
        "bmV3KHAzKQogICAgICAgICAgICBibS5mYWNlcy5uZXcoKHYxLCB2MiwgdjMpKQogICAgICAgICAgICBi"
        "bS50b19tZXNoKG1lc2gpCiAgICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBzb2wgPSBvYmou"
        "bW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlmeSIsIHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAg"
        "c29sLnRoaWNrbmVzcyA9IHRoaWNrbmVzcwogICAgICAgICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0g"
        "Y3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0XyIrbmFtZSwgY29sb3IsIGFscGhhKQoKICAgICAgICBj"
        "cmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQV9OQU1FLCAoMCwwLDApLCBwcm9wcy5zcDFfYWN0dWFsX3Bv"
        "cywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnRyaUFfY29sb3IsIHByb3BzLnRyaV9hbHBoYSwg"
        "cHJvcHMudHJpX3RoaWNrbmVzcykKICAgICAgICBjcmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQl9OQU1F"
        "LCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnNwM19hY3R1"
        "YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25l"
        "c3MpCgogICAgICAgICMg5bm+5L2V6KiI566XCiAgICAgICAgY2FsY19nZW9fZGF0YShwcm9wcykKCiAg"
        "ICAgICAgIyDoppbopprljJbopoHntKDjga7kvZzmiJAKICAgICAgICBkaXN0ID0gcHJvcHMuZ2VvX3Bs"
        "YW5lX2Rpc3QKICAgICAgICBpZiBkaXN0ID4gMC4wMToKICAgICAgICAgICAgIyDnn6LljbAKICAgICAg"
        "ICAgICAgbWVzaF9hcnIgPSBicHkuZGF0YS5tZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAg"
        "IG9ial9hcnIgPSBicHkuZGF0YS5vYmplY3RzLm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAg"
        "ICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5u"
        "ZXcoKQogICAgICAgICAgICByID0gcHJvcHMuYXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRf"
        "bCA9IG1pbihkaXN0ICogMC4zLCByICogNC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVh"
        "ZF9sCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2Fw"
        "X3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9s"
        "KQogICAgICAgICAgICBnZW9tX2hlYWQgPSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRz"
        "PVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0w"
        "LjAsIGRlcHRoPWhlYWRfbCkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9"
        "W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRf"
        "bC8yKSkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZl"
        "Yz0oMCwgMCwgYm9keV9sLzIpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAg"
        "ICAgICBibS5mcmVlKCkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAo"
        "MCwgMCwgMCkKICAgICAgICAgICAgZm9vdF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19w"
        "bGFuZV9mb290KQogICAgICAgICAgICByb3RfcXVhdCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSku"
        "cm90YXRpb25fZGlmZmVyZW5jZShmb290X3ZlYy5ub3JtYWxpemVkKCkpCiAgICAgICAgICAgIG9ial9h"
        "cnIucm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9u"
        "X3F1YXRlcm5pb24gPSByb3RfcXVhdAogICAgICAgICAgICBvYmpfYXJyLmFjdGl2ZV9tYXRlcmlhbCA9"
        "IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9BcnJvdyIsIHByb3BzLmFycm93X2NvbG9yLCAxLjAp"
        "CiAgICAgICAgICAgIG9ial9hcnIuaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9wcy5zaG93X2Fycm93CiAg"
        "ICAgICAgICAgIG9ial9hcnIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19hcnJvdwoKICAgICAg"
        "ICAgICAgIyDlhoYKICAgICAgICAgICAgbWVzaF9jaXIgPSBicHkuZGF0YS5tZXNoZXMubmV3KENJUkNM"
        "RV9OQU1FKQogICAgICAgICAgICBvYmpfY2lyID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoQ0lSQ0xFX05B"
        "TUUsIG1lc2hfY2lyKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfY2lyKQogICAg"
        "ICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY2lyY2xl"
        "KGJtLCBjYXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9MzIsIHJhZGl1cz1wcm9w"
        "cy5jaXJjbGVfcmFkaXVzKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfY2lyKQogICAgICAgICAg"
        "ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX2Npci5sb2NhdGlvbiA9IHByb3BzLmdlb19wbGFuZV9m"
        "b290CiAgICAgICAgICAgIG5vcm1hbF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFu"
        "ZV9ub3JtYWwpCiAgICAgICAgICAgIGlmIG5vcm1hbF92ZWMubGVuZ3RoID4gMDoKICAgICAgICAgICAg"
        "ICAgIHJvdF9xdWF0X2NpciA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSkucm90YXRpb25fZGlmZmVy"
        "ZW5jZShub3JtYWxfdmVjKQogICAgICAgICAgICAgICAgb2JqX2Npci5yb3RhdGlvbl9tb2RlID0gJ1FV"
        "QVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0aW9uX3F1YXRlcm5pb24gPSByb3Rf"
        "cXVhdF9jaXIKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMubmV3KG5hbWU9IlNvbGlk"
        "aWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tuZXNzID0gcHJvcHMuY2ly"
        "Y2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9t"
        "YXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNpcmNs"
        "ZV9hbHBoYSkKICAgICAgICAgICAgb2JqX2Npci5oaWRlX3ZpZXdwb3J0ID0gbm90IHByb3BzLnNob3df"
        "Y2lyY2xlCiAgICAgICAgICAgIG9ial9jaXIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19jaXJj"
        "bGUKCiAgICAgICAgICAgICMg5pyA55+t6Led6Zui44Gu6YCP5piO55CD5L2TKOWGheauuykKICAgICAg"
        "ICAgICAgbWVzaF9zcGggPSBicHkuZGF0YS5tZXNoZXMubmV3KERJU1RfU1BIRVJFX05BTUUpCiAgICAg"
        "ICAgICAgIG9ial9zcGggPSBicHkuZGF0YS5vYmplY3RzLm5ldyhESVNUX1NQSEVSRV9OQU1FLCBtZXNo"
        "X3NwaCkKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX3NwaCkKICAgICAgICAgICAg"
        "Ym0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1"
        "X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRzPTE2LCByYWRpdXM9ZGlzdCkKICAgICAgICAgICAgYm0udG9f"
        "bWVzaChtZXNoX3NwaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9ial9zcGgubG9j"
        "YXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9zcGgucG9seWdvbnM6"
        "IHBvbHkudXNlX3Ntb290aCA9IFRydWUKICAgICAgICAgICAgb2JqX3NwaC5hY3RpdmVfbWF0ZXJpYWwg"
        "PSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfRGlzdFNwaGVyZSIsIHByb3BzLmRpc3Rfc3BoZXJl"
        "X2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBoYSkKICAgICAgICAgICAgb2JqX3NwaC5oaWRlX3Zp"
        "ZXdwb3J0ID0gbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUKICAgICAgICAgICAgb2JqX3NwaC5oaWRl"
        "X3JlbmRlciA9IG5vdCBwcm9wcy5zaG93X2Rpc3Rfc3BoZXJlCgogICAgICAgICMg5aSW5q6744Gu5aSn"
        "44GN44Gq6YCP5piO55CD5L2TIChORVcpCiAgICAgICAgb3V0ZXJfciA9IHByb3BzLmdlb19vdXRlcl9y"
        "YWRpdXMKICAgICAgICBpZiBvdXRlcl9yID4gMDoKICAgICAgICAgICAgbWVzaF9vdXQgPSBicHkuZGF0"
        "YS5tZXNoZXMubmV3KE9VVEVSX1NQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfb3V0ID0gYnB5LmRh"
        "dGEub2JqZWN0cy5uZXcoT1VURVJfU1BIRVJFX05BTUUsIG1lc2hfb3V0KQogICAgICAgICAgICBzdWJf"
        "Y29sLm9iamVjdHMubGluayhvYmpfb3V0KQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAg"
        "ICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVu"
        "dHM9MTYsIHJhZGl1cz1vdXRlcl9yKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfb3V0KQogICAg"
        "ICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX291dC5sb2NhdGlvbiA9ICgwLCAwLCAwKQog"
        "ICAgICAgICAgICBmb3IgcG9seSBpbiBtZXNoX291dC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0g"
        "VHJ1ZQogICAgICAgICAgICBvYmpfb3V0LmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQ"
        "UkVGSVgrIk1hdF9PdXRlclNwaGVyZSIsIHByb3BzLm91dGVyX3NwaGVyZV9jb2xvciwgcHJvcHMub3V0"
        "ZXJfc3BoZXJlX2FscGhhKQogICAgICAgICAgICBvYmpfb3V0LmhpZGVfdmlld3BvcnQgPSBub3QgcHJv"
        "cHMuc2hvd19vdXRlcl9zcGhlcmUKICAgICAgICAgICAgb2JqX291dC5oaWRlX3JlbmRlciA9IG5vdCBw"
        "cm9wcy5zaG93X291dGVyX3NwaGVyZQoKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBU"
        "Q1RBX09UX0RldGFjaE9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0"
        "Y3RhLmRldGFjaF9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz44GL44KJ5YiH44KK"
        "6Zui44GXIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFyZW50X2NvbCA9"
        "IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlm"
        "IHBhcmVudF9jb2w6CiAgICAgICAgICAgIHBhcmVudF9jb2wubmFtZSA9IFBBUkVOVF9DT0xMRUNUSU9O"
        "X05BTUUgKyAiX0RldGFjaGVkIgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWIh+OC"
        "iumbouOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
        "VF9SZXNldFByb3BzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yZXNl"
        "dF9wcm9wcyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aIu+OBmSIKICAgIGRlZiBleGVjdXRl"
        "KHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAg"
        "ICAgICAgcmVzZXRfbGlzdCA9IFsKICAgICAgICAgICAgInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhh"
        "IiwgInRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciIs"
        "IAogICAgICAgICAgICAic2hvd19hcnJvdyIsICJzaG93X2NpcmNsZSIsICJzaG93X2Rpc3Rfc3BoZXJl"
        "IiwgInNob3dfb3V0ZXJfc3BoZXJlIiwKICAgICAgICAgICAgImFycm93X3RoaWNrbmVzcyIsICJhcnJv"
        "d19jb2xvciIsICJjaXJjbGVfcmFkaXVzIiwgImNpcmNsZV90aGlja25lc3MiLCAiY2lyY2xlX2NvbG9y"
        "IiwgImNpcmNsZV9hbHBoYSIsCiAgICAgICAgICAgICJkaXN0X3NwaGVyZV9jb2xvciIsICJkaXN0X3Nw"
        "aGVyZV9hbHBoYSIsICJvdXRlcl9zcGhlcmVfY29sb3IiLCAib3V0ZXJfc3BoZXJlX2FscGhhIgogICAg"
        "ICAgIF0KICAgICAgICBmb3IgcCBpbiByZXNldF9saXN0OgogICAgICAgICAgICBwcm9wcy5wcm9wZXJ0"
        "eV91bnNldChwKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfUmFuZG9t"
        "UmVzZXQoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnJhbmRvbV9yZXNl"
        "dCIKICAgIGJsX2xhYmVsID0gIuODqeODs+ODgOODoOWGjeioiOeul++8huabtOaWsCIKICAgIGRlZiBl"
        "eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5vcHMudGN0YS5jcmVhdGVfb2JqZWN0cygp"
        "CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9Db3B5R2VvSW5mbyhicHku"
        "dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY29weV9nZW9faW5mbyIKICAgIGJs"
        "X2xhYmVsID0gIuW5vuS9leaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNv"
        "bnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGlu"
        "ZXMgPSBbCiAgICAgICAgICAgIGYiU3AxIERpc3Q6IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSwgQW5n"
        "OiBYPXtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9fc3AxX2FuZ1sxXTouMWZ9"
        "LCBaPXtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAgZiJTcDIgRGlzdDoge3By"
        "b3BzLmdlb19zcDJfZGlzdDouMWZ9LCBBbmc6IFg9e3Byb3BzLmdlb19zcDJfYW5nWzBdOi4xZn0sIFk9"
        "e3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDJfYW5nWzJdOi4xZn0iLAog"
        "ICAgICAgICAgICBmIlNwMyBEaXN0OiB7cHJvcHMuZ2VvX3NwM19kaXN0Oi4xZn0sIEFuZzogWD17cHJv"
        "cHMuZ2VvX3NwM19hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfSwgWj17cHJv"
        "cHMuZ2VvX3NwM19hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiUGxhbmUgQ3Jvc3MgQW5nbGU6IHtw"
        "cm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfSIsCiAgICAgICAgICAgIGYiU2hvcnRlc3QgRGlzdCB0byBQ"
        "bGFuZSBCIChJbm5lciBSYWRpdXMpOiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIsCiAgICAgICAg"
        "ICAgIGYiU2hvcnRlc3QgRm9vdCBQb3M6IFg9e3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIFk9"
        "e3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIFo9e3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4x"
        "Zn0iLAogICAgICAgICAgICBmIk91dGVyIFNoZWxsIFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2Vv"
        "X291dGVyX3JhZGl1czouMWZ9IgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2Vy"
        "LmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwg"
        "IuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
        "VENUQV9PVF9PcGVuTGluayhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEu"
        "b3Blbl9saW5rIgogICAgYmxfbGFiZWwgPSAi44Oq44Oz44Kv44KS6ZaL44GPIgogICAgZGVmIGV4ZWN1"
        "dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy53bS51cmxfb3Blbih1cmw9Imh0dHBzOi8v"
        "d3d3LmJsZW5kZXIub3JnLyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
        "VF9EZWxldGVBbGwoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmRlbGV0"
        "ZV9hbGwiCiAgICBibF9sYWJlbCA9ICLplqLpgKPlhajliYrpmaQiCiAgICBkZWYgZXhlY3V0ZShzZWxm"
        "LCBjb250ZXh0KToKICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBB"
        "UkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgZm9y"
        "IG9iaiBpbiBwYXJlbnRfY29sLmFsbF9vYmplY3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2Jq"
        "ZWN0cy5yZW1vdmUob2JqLCBkb191bmxpbms9VHJ1ZSkKICAgICAgICAgICAgYnB5LmRhdGEuY29sbGVj"
        "dGlvbnMucmVtb3ZlKHBhcmVudF9jb2wpCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi"
        "5YWo5YmK6Zmk44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09CiMgNS4gVUkg44OR44ON44Or5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RB"
        "X1BUX1BhbmVsQmFzZToKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90"
        "eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiVENUQSIKCmNsYXNzIFRDVEFfUFRfVmlld0luZm8o"
        "VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
        "VF92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICIxLiDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEiCiAg"
        "ICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAg"
        "ICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9y"
        "KCJ0Y3RhLnZpZXdfc2VsZWN0ZWQiLCBpY29uPSdWSUVXWk9PTScpCiAgICAgICAgbGF5b3V0Lm9wZXJh"
        "dG9yKCJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iLCBpY29uPSdGSUxFX1JFRlJFU0gnKQogICAgICAgIGJv"
        "eCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2VudGVyOiAoe3Byb3BzLnZp"
        "ZXdfY2VudGVyLng6LjFmfSwge3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwge3Byb3BzLnZpZXdfY2Vu"
        "dGVyLno6LjFmfSkiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiU2l6ZSAocHgpOiBXPXtwcm9wcy52"
        "aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3X3NpemVbMV19IikKICAgICAgICBib3gubGFiZWwodGV4"
        "dD1mIkNhbWVyYSBEaXN0OiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rp"
        "c3RhbmNlID4gMCBlbHNlICJDYW1lcmEgRGlzdDogTi9BIikKICAgICAgICBsYXlvdXQub3BlcmF0b3Io"
        "InRjdGEuY29weV92aWV3X2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFzcyBUQ1RBX1BUX01haW4o"
        "VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
        "VF9tYWluIgogICAgYmxfbGFiZWwgPSAiMi4g44Oh44Kk44Oz5a6f6KGMIgogICAgZGVmIGRyYXcoc2Vs"
        "ZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3Bl"
        "cmF0b3IoInRjdGEuY3JlYXRlX29iamVjdHMiLCBpY29uPSdQTEFZJywgdGV4dD0i5L2c5oiQICjnlJ/m"
        "iJDjg7vmm7TmlrApIikKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuZGV0YWNoX29iamVjdHMi"
        "LCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBUQ1RBX1BUX1NldHRpbmdzKFRDVEFfUFRfUGFuZWxCYXNl"
        "LCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc2V0dGluZ3MiCiAgICBi"
        "bF9sYWJlbCA9ICIzLiDjg5Hjg6njg6Hjg7zjgr/oqK3lrpoiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250"
        "ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5z"
        "Y2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJlc2V0X3Byb3BzIiwg"
        "aWNvbj0nTE9PUF9CQUNLJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFi"
        "ZWwodGV4dD0iVG9ydXMgRnJhbWU6IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRvcnVzX2NvbG9y"
        "IiwgdGV4dD0iQ29sb3IiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidG9ydXNfYWxwaGEiLCB0ZXh0"
        "PSJBbHBoYSIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
        "IlNwaGVyZXM6IikKICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCA0KToKICAgICAgICAgICAgcm93ID0g"
        "Ym94LnJvdygpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYi"
        "U3B7aX0iKQogICAgICAgICAgICBpZiBnZXRhdHRyKHByb3BzLCBmInNwe2l9X21vZGUiKSA9PSAnTUFO"
        "VUFMJzoKICAgICAgICAgICAgICAgIGJveC5wcm9wKHByb3BzLCBmInNwe2l9X3BvcyIsIHRleHQ9IlhZ"
        "WiIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRyaWFu"
        "Z2xlczoiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX3RoaWNrbmVzcyIpCiAgICAgICAgYm94"
        "LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpQV9jb2xv"
        "ciIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0cmlCX2NvbG9yIikKICAgICAgICAKICAgICAgICAj"
        "IOihqOekui/pnZ7ooajnpLrjg4jjgrDjg6vjgajoqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94"
        "KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iR2VvbWV0cmljIFZpc3VhbHMgVG9nZ2xlOiIpCiAgICAg"
        "ICAgCiAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Fy"
        "cm93IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfYXJyb3cgZWxzZSAnVFJJQV9E"
        "T1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfY2lyY2xlIiwgaWNvbj0nVFJJQV9SSUdI"
        "VCcgaWYgbm90IHByb3BzLnNob3dfY2lyY2xlIGVsc2UgJ1RSSUFfRE9XTicpCiAgICAgICAgCiAgICAg"
        "ICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Rpc3Rfc3BoZXJl"
        "IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUgZWxzZSAnVFJJ"
        "QV9ET1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfb3V0ZXJfc3BoZXJlIiwgaWNvbj0n"
        "VFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfb3V0ZXJfc3BoZXJlIGVsc2UgJ1RSSUFfRE9XTicp"
        "CgogICAgICAgIGlmIHByb3BzLnNob3dfYXJyb3c6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4o"
        "YWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJhcnJvd190aGlja25lc3MiKQog"
        "ICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImFycm93X2NvbG9yIikKICAgICAgICAKICAgICAgICBp"
        "ZiBwcm9wcy5zaG93X2NpcmNsZToKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVl"
        "KQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJj"
        "aXJjbGVfcmFkaXVzIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNz"
        "IikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiKQogICAgICAgICAgICBj"
        "b2wucHJvcChwcm9wcywgImNpcmNsZV9hbHBoYSIpCiAgICAgICAgICAgIAogICAgICAgIGlmIHByb3Bz"
        "LnNob3dfZGlzdF9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkK"
        "ICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlz"
        "dF9zcGhlcmVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImRpc3Rfc3BoZXJlX2Fs"
        "cGhhIikKCiAgICAgICAgaWYgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9"
        "IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAg"
        "ICAgIGNvbC5wcm9wKHByb3BzLCAib3V0ZXJfc3BoZXJlX2NvbG9yIikKICAgICAgICAgICAgY29sLnBy"
        "b3AocHJvcHMsICJvdXRlcl9zcGhlcmVfYWxwaGEiKQoKY2xhc3MgVENUQV9QVF9HZW9JbmZvKFRDVEFf"
        "UFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfZ2Vv"
        "X2luZm8iCiAgICBibF9sYWJlbCA9ICI0LiDlub7kvZXmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBj"
        "b250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4"
        "dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJhbmRvbV9yZXNl"
        "dCIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgp"
        "CiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZSAxIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJv"
        "eC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0iKQogICAgICAgIGJv"
        "eC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5n"
        "ZW9fc3AxX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9wrAiKQogICAgICAg"
        "IGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMiAoZnJvbSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwo"
        "dGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwo"
        "dGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9h"
        "bmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfcKwIikKICAgICAgICBib3gubGFi"
        "ZWwodGV4dD0iU3BoZXJlIDMgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
        "IERpc3Q6IHtwcm9wcy5nZW9fc3AzX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
        "IEFuZzoge3Byb3BzLmdlb19zcDNfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzFdOi4x"
        "Zn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgCiAgICAgICAgYm94ID0g"
        "bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlBsYW5lIENyb3NzIEFuZ2xlIChBICYg"
        "Qik6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5n"
        "bGU6LjFmfcKwIikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gu"
        "bGFiZWwodGV4dD0iUGxhbmUgQiBJbm5lciBEaXN0IChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5s"
        "YWJlbCh0ZXh0PWYiICBTaG9ydGVzdCBEaXN0OiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIpCiAg"
        "ICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEZvb3Q6ICh7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFm"
        "fSwge3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIHtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTou"
        "MWZ9KSIpCgogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJP"
        "dXRlciBCb3VuZCBTcGhlcmUgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
        "IFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2VvX291dGVyX3JhZGl1czouMWZ9IikKCiAgICAgICAg"
        "bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfZ2VvX2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFz"
        "cyBUQ1RBX1BUX1N5c3RlbShUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAgIGJs"
        "X2lkbmFtZSA9ICJUQ1RBX1BUX3N5c3RlbSIKICAgIGJsX2xhYmVsID0gIjUuIOOCt+OCueODhuODoCIK"
        "ICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAg"
        "ICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLm9wZW5fbGluayIsIGljb249J1VSTCcpCiAgICAgICAg"
        "bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRlbGV0ZV9hbGwiLCBpY29uPSdUUkFTSCcsIHRleHQ9IuOCouOD"
        "ieOCquODs+WJiumZpCAo5YWo44Kv44Oq44KiKSIpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNi4g55m76Yyy"
        "5Yem55CGCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PQpjbGFzc2VzID0gKAogICAgVENUQV9Qcm9wZXJ0aWVzLAogICAg"
        "VENUQV9PVF9WaWV3U2VsZWN0ZWQsCiAgICBUQ1RBX09UX1VwZGF0ZVZpZXdJbmZvLAogICAgVENUQV9P"
        "VF9Db3B5Vmlld0luZm8sCiAgICBUQ1RBX09UX0NyZWF0ZU9iamVjdHMsCiAgICBUQ1RBX09UX0RldGFj"
        "aE9iamVjdHMsCiAgICBUQ1RBX09UX1Jlc2V0UHJvcHMsCiAgICBUQ1RBX09UX1JhbmRvbVJlc2V0LAog"
        "ICAgVENUQV9PVF9Db3B5R2VvSW5mbywKICAgIFRDVEFfT1RfT3BlbkxpbmssCiAgICBUQ1RBX09UX0Rl"
        "bGV0ZUFsbCwKICAgIFRDVEFfUFRfVmlld0luZm8sCiAgICBUQ1RBX1BUX01haW4sCiAgICBUQ1RBX1BU"
        "X1NldHRpbmdzLAogICAgVENUQV9QVF9HZW9JbmZvLAogICAgVENUQV9QVF9TeXN0ZW0sCikKCmRlZiBy"
        "ZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOgogICAgICAgIGJweS51dGlscy5yZWdpc3Rl"
        "cl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcyA9IGJweS5wcm9wcy5Qb2lu"
        "dGVyUHJvcGVydHkodHlwZT1UQ1RBX1Byb3BlcnRpZXMpCgpkZWYgdW5yZWdpc3RlcigpOgogICAgZm9y"
        "IGNscyBpbiByZXZlcnNlZChjbGFzc2VzKToKICAgICAgICBicHkudXRpbHMudW5yZWdpc3Rlcl9jbGFz"
        "cyhjbHMpCiAgICBkZWwgYnB5LnR5cGVzLlNjZW5lLnRjdGFfcHJvcHMKCmlmIF9fbmFtZV9fID09ICJf"
        "X21haW5fXyI6CiAgICByZWdpc3Rlcigp"
        )
    },
    {
        "name": "平面2つなす角度 20260713_004",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
        "ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA1LCAwKSwKICAgICJi"
        "bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
        "IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjgbjjga7mnIDnn63ot53pm6LvvIjlhoXmrrvvvInj"
        "gajjgIEz55CD5L2T44KS5YyF44KA5pyA5aSn6Led6Zui77yI5aSW5q6777yJ44Gu5bm+5L2V5a2m55qE"
        "6KaW6Kaa5YyWIiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQg"
        "Ym1lc2gKaW1wb3J0IG1hdGgKaW1wb3J0IG1hdGh1dGlscwppbXBvcnQgcmFuZG9tCgojID09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT0KIyAxLiDliJ3mnJ/lgKTlrprnvqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBSRUZJWCA9ICJUQ1RBXyIK"
        "UEFSRU5UX0NPTExFQ1RJT05fTkFNRSA9ICJUb3J1c0N1YmVTcGFjZSIKU1VCX0NPTExFQ1RJT05fTkFN"
        "RSA9ICJBbmFseXplck9iamVjdHMiClRPUlVTX1NLRUxFVE9OX05BTUUgPSAiVG9ydXNTa2VsZXRvbiIK"
        "U1BIRVJFXzFfTkFNRSA9ICJTcGhlcmVfMSIKU1BIRVJFXzJfTkFNRSA9ICJTcGhlcmVfMiIKU1BIRVJF"
        "XzNfTkFNRSA9ICJTcGhlcmVfMyIKVFJJQU5HTEVfQV9OQU1FID0gIlRyaWFuZ2xlX0EiClRSSUFOR0xF"
        "X0JfTkFNRSA9ICJUcmlhbmdsZV9CIgpBUlJPV19OQU1FID0gIkFycm93X1Nob3J0ZXN0RGlzdCIKQ0lS"
        "Q0xFX05BTUUgPSAiQ2lyY2xlX1BsYW5lQiIKRElTVF9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfU2hvcnRl"
        "c3REaXN0IgpPVVRFUl9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfT3V0ZXJCb3VuZCIgIyDmlrDopo/ov73l"
        "iqA6IDPnkIPjgpLljIXjgoDlpKfjgY3jgarnkIPkvZMKCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIuIOODl+OD"
        "reODkeODhuOCo+Wumue+qe+8iOabtOaWsOOCs+ODvOODq+ODkOODg+OCr+WQq+OCgO+8iQojID09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT0KZGVmIHVwZGF0ZV92aXNfYXJyb3coc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHku"
        "ZGF0YS5vYmplY3RzLmdldChBUlJPV19OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9iai5oaWRlX3Zp"
        "ZXdwb3J0ID0gbm90IHNlbGYuc2hvd19hcnJvdwogICAgICAgIG9iai5oaWRlX3JlbmRlciA9IG5vdCBz"
        "ZWxmLnNob3dfYXJyb3cKCmRlZiB1cGRhdGVfdmlzX2NpcmNsZShzZWxmLCBjb250ZXh0KToKICAgIG9i"
        "aiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KENJUkNMRV9OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9i"
        "ai5oaWRlX3ZpZXdwb3J0ID0gbm90IHNlbGYuc2hvd19jaXJjbGUKICAgICAgICBvYmouaGlkZV9yZW5k"
        "ZXIgPSBub3Qgc2VsZi5zaG93X2NpcmNsZQoKZGVmIHVwZGF0ZV92aXNfc3BoZXJlKHNlbGYsIGNvbnRl"
        "eHQpOgogICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQoRElTVF9TUEhFUkVfTkFNRSkKICAgIGlm"
        "IG9iajoKICAgICAgICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfZGlzdF9zcGhlcmUK"
        "ICAgICAgICBvYmouaGlkZV9yZW5kZXIgPSBub3Qgc2VsZi5zaG93X2Rpc3Rfc3BoZXJlCgpkZWYgdXBk"
        "YXRlX3Zpc19vdXRlcl9zcGhlcmUoc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHkuZGF0YS5vYmpl"
        "Y3RzLmdldChPVVRFUl9TUEhFUkVfTkFNRSkKICAgIGlmIG9iajoKICAgICAgICBvYmouaGlkZV92aWV3"
        "cG9ydCA9IG5vdCBzZWxmLnNob3dfb3V0ZXJfc3BoZXJlCiAgICAgICAgb2JqLmhpZGVfcmVuZGVyID0g"
        "bm90IHNlbGYuc2hvd19vdXRlcl9zcGhlcmUKCmNsYXNzIFRDVEFfUHJvcGVydGllcyhicHkudHlwZXMu"
        "UHJvcGVydHlHcm91cCk6CiAgICAjIOODiOODvOODqeOCuemqqOagvOioreWumgogICAgdG9ydXNfY29s"
        "b3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlRvcnVzIENvbG9yIiwgc3VidHlw"
        "ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMSwgMC41LCAwLjgsIDEuMCksIG1pbj0w"
        "LjAsIG1heD0xLjApCiAgICB0b3J1c19hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0i"
        "VG9ydXMgQWxwaGEiLCBkZWZhdWx0PTAuNSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgIyDphY3n"
        "va7jg6Ljg7zjg4kKICAgIG1vZGVfb3B0aW9ucyA9IFsoJ1JBTkRPTScsICLjg6njg7Pjg4Djg6AiLCAi"
        "IiksICgnTUFOVUFMJywgIuaMh+WumuS9jee9riIsICIiKV0KICAgIHNwMV9tb2RlOiBicHkucHJvcHMu"
        "RW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRP"
        "TScpCiAgICBzcDJfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9"
        "bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgc3AzX21vZGU6IGJweS5wcm9wcy5FbnVt"
        "UHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykK"
        "ICAgIAogICAgc3AxX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRp"
        "b24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4wLCAyLjApKQogICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0"
        "VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMiIsIGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkp"
        "CiAgICBzcDNfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAz"
        "IiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0yLjApKQogICAgCiAgICBzcDFfYWN0dWFsX3BvczogYnB5LnBy"
        "b3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AyX2FjdHVhbF9wb3M6"
        "IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKICAgIHNwM19hY3R1"
        "YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkpCgogICAg"
        "IyDkuInop5LlvaLoqK3lrpoKICAgIHRyaV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
        "KG5hbWU9IlRoaWNrbmVzcyIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgdHJpX2FscGhhOiBicHku"
        "cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJBbHBoYSIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wLCBtYXg9"
        "MS4wKQogICAgdHJpQV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQ29s"
        "b3IgQSIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgwLjgsIDAuMiwgMC4y"
        "LCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgdHJpQl9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
        "dG9yUHJvcGVydHkobmFtZT0iQ29sb3IgQiIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
        "ZWZhdWx0PSgwLjIsIDAuOCwgMC4yLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg6KGo56S6"
        "L+mdnuihqOekuuODiOOCsOODqwogICAgc2hvd19hcnJvdzogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShu"
        "YW1lPSLnn6LljbAiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2Fycm93KQogICAgc2hv"
        "d19jaXJjbGU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5YaG55ukIiwgZGVmYXVsdD1UcnVl"
        "LCB1cGRhdGU9dXBkYXRlX3Zpc19jaXJjbGUpCiAgICBzaG93X2Rpc3Rfc3BoZXJlOiBicHkucHJvcHMu"
        "Qm9vbFByb3BlcnR5KG5hbWU9IuacgOefrei3nemboueQg+S9kyjlhoXmrrspIiwgZGVmYXVsdD1UcnVl"
        "LCB1cGRhdGU9dXBkYXRlX3Zpc19zcGhlcmUpCiAgICBzaG93X291dGVyX3NwaGVyZTogYnB5LnByb3Bz"
        "LkJvb2xQcm9wZXJ0eShuYW1lPSLmnIDlpKfot53pm6LnkIPkvZMo5aSW5q67KSIsIGRlZmF1bHQ9VHJ1"
        "ZSwgdXBkYXRlPXVwZGF0ZV92aXNfb3V0ZXJfc3BoZXJlKQoKICAgICMg6KaW6Kaa5YyW6Kit5a6aCiAg"
        "ICBhcnJvd190aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFycm93IFRoaWNr"
        "bmVzcyIsIGRlZmF1bHQ9MC4wNSwgbWluPTAuMDEsIG1heD0xLjApCiAgICBhcnJvd19jb2xvcjogYnB5"
        "LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQXJyb3cgQ29sb3IiLCBzdWJ0eXBlPSdDT0xP"
        "Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjgsIDAuMCwgMS4wKSwgbWluPTAuMCwgbWF4"
        "PTEuMCkKICAgIGNpcmNsZV9yYWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNs"
        "ZSBSYWRpdXMiLCBkZWZhdWx0PTMuMCwgbWluPTAuMSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5w"
        "cm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWlu"
        "PTAuMCkKICAgIGNpcmNsZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
        "Q2lyY2xlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwg"
        "MC41LCAwLjAsIDAuNCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBjaXJjbGVfYWxwaGE6IGJweS5wcm9w"
        "cy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBBbHBoYSIsIGRlZmF1bHQ9MC40LCBtaW49MC4wLCBt"
        "YXg9MS4wKQogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
        "KG5hbWU9IklubmVyIFNwaGVyZSBDb2xvciIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
        "ZWZhdWx0PSgwLjAsIDAuOCwgMS4wLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgZGlzdF9zcGhl"
        "cmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IklubmVyIFNwaGVyZSBBbHBoYSIs"
        "IGRlZmF1bHQ9MC4wNiwgbWluPTAuMCwgbWF4PTEuMCkKICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5"
        "LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iT3V0ZXIgU3BoZXJlIENvbG9yIiwgc3VidHlw"
        "ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4wLCAxLjAsIDEuMCksIG1pbj0w"
        "LjAsIG1heD0xLjApCiAgICBvdXRlcl9zcGhlcmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
        "KG5hbWU9Ik91dGVyIFNwaGVyZSBBbHBoYSIsIGRlZmF1bHQ9MC4wNCwgbWluPTAuMCwgbWF4PTEuMCkK"
        "CiAgICAjIOODk+ODpeODvOODneODvOODiOODu+W5vuS9leaDheWgsQogICAgdmlld19jZW50ZXI6IGJw"
        "eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgQ2VudGVyIikKICAgIHZpZXdfc2l6"
        "ZTogYnB5LnByb3BzLkludFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgU2l6ZSAoUHgpIiwgc2l6ZT0y"
        "KQogICAgdmlld19kaXN0YW5jZTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iVmlldyBEaXN0"
        "YW5jZSIpCiAgICAKICAgIGdlb19zcDFfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAg"
        "Z2VvX3NwMV9hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19z"
        "cDJfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3NwMl9hbmc6IGJweS5wcm9w"
        "cy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19zcDNfZGlzdDogYnB5LnByb3BzLkZs"
        "b2F0UHJvcGVydHkoKQogICAgZ2VvX3NwM19hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
        "KHNpemU9MykKICAgIAogICAgZ2VvX3BsYW5lX2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgp"
        "CiAgICBnZW9fcGxhbmVfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5l"
        "X2Zvb3Q6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19wbGFuZV9u"
        "b3JtYWw6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19vdXRlcl9y"
        "YWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkgIyDlpJbmrrvnkIPkvZPjga7ljYrlvoQKCgoj"
        "ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPplqLmlbAKIyA9PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09CmRlZiBnZXRfM2Rfdmlld19jb250ZXh0KCk6CiAgICBmb3Igd2luZG93IGluIGJweS5jb250ZXh0"
        "LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgZm9yIGFyZWEgaW4gd2luZG93LnNjcmVlbi5h"
        "cmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09ICdWSUVXXzNEJzoKICAgICAgICAgICAgICAg"
        "IGZvciByZWdpb24gaW4gYXJlYS5yZWdpb25zOgogICAgICAgICAgICAgICAgICAgIGlmIHJlZ2lvbi50"
        "eXBlID09ICdXSU5ET1cnOgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJlYSwgcmVnaW9u"
        "LCBhcmVhLnNwYWNlcy5hY3RpdmUKICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lCgpkZWYgY3JlYXRl"
        "X21hdGVyaWFsKG5hbWUsIGNvbG9yLCBhbHBoYSk6CiAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMu"
        "Z2V0KG5hbWUpCiAgICBpZiBub3QgbWF0OgogICAgICAgIG1hdCA9IGJweS5kYXRhLm1hdGVyaWFscy5u"
        "ZXcobmFtZSkKICAgIG1hdC51c2Vfbm9kZXMgPSBUcnVlCiAgICAKICAgIGlmIGhhc2F0dHIobWF0LCAi"
        "YmxlbmRfbWV0aG9kIik6CiAgICAgICAgbWF0LmJsZW5kX21ldGhvZCA9ICdCTEVORCcKICAgIGlmIGhh"
        "c2F0dHIobWF0LCAic2hhZG93X21ldGhvZCIpOgogICAgICAgIG1hdC5zaGFkb3dfbWV0aG9kID0gJ05P"
        "TkUnCiAgICAKICAgIGJzZGYgPSBtYXQubm9kZV90cmVlLm5vZGVzLmdldCgiUHJpbmNpcGxlZCBCU0RG"
        "IikKICAgIGlmIGJzZGY6CiAgICAgICAgYnNkZi5pbnB1dHNbIkJhc2UgQ29sb3IiXS5kZWZhdWx0X3Zh"
        "bHVlID0gY29sb3IKICAgICAgICBic2RmLmlucHV0c1siQWxwaGEiXS5kZWZhdWx0X3ZhbHVlID0gYWxw"
        "aGEKICAgIHJldHVybiBtYXQKCmRlZiBjYWxjX2dlb19kYXRhKHByb3BzKToKICAgIGRlZiBjYWxjX2Rp"
        "c3RfYW5nbGUodmVjKToKICAgICAgICBkaXN0ID0gdmVjLmxlbmd0aAogICAgICAgIGlmIGRpc3QgPT0g"
        "MDogcmV0dXJuIDAsIDAsIDAsIDAKICAgICAgICBuID0gdmVjLm5vcm1hbGl6ZWQoKQogICAgICAgIGF4"
        "ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLngpKQogICAgICAgIGF5ID0gbWF0aC5kZWdyZWVzKG1h"
        "dGguYWNvcyhuLnkpKQogICAgICAgIGF6ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLnopKQogICAg"
        "ICAgIHJldHVybiBkaXN0LCBheCwgYXksIGF6CgogICAgcDAgPSBtYXRodXRpbHMuVmVjdG9yKCgwLCAw"
        "LCAwKSkKICAgIHAxID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDFfYWN0dWFsX3BvcykKICAgIHAy"
        "ID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgIHAzID0gbWF0aHV0aWxz"
        "LlZlY3Rvcihwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICBkMSwgYXgxLCBheTEsIGF6MSA9IGNhbGNf"
        "ZGlzdF9hbmdsZShwMSkKICAgIHByb3BzLmdlb19zcDFfZGlzdCA9IGQxCiAgICBwcm9wcy5nZW9fc3Ax"
        "X2FuZyA9IChheDEsIGF5MSwgYXoxKQoKICAgIGQyLCBheDIsIGF5MiwgYXoyID0gY2FsY19kaXN0X2Fu"
        "Z2xlKHAyKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0ID0gZDIKICAgIHByb3BzLmdlb19zcDJfYW5nID0g"
        "KGF4MiwgYXkyLCBhejIpCgogICAgZDMsIGF4MywgYXkzLCBhejMgPSBjYWxjX2Rpc3RfYW5nbGUocDMp"
        "CiAgICBwcm9wcy5nZW9fc3AzX2Rpc3QgPSBkMwogICAgcHJvcHMuZ2VvX3NwM19hbmcgPSAoYXgzLCBh"
        "eTMsIGF6MykKICAgIAogICAgIyDlpJbmrrvnkIPkvZPvvIgz44Gk44Gu55CD44KS44GZ44G544Gm5YyF"
        "44KA77yJ44Gu5Y2K5b6ECiAgICBwcm9wcy5nZW9fb3V0ZXJfcmFkaXVzID0gbWF4KGQxLCBkMiwgZDMp"
        "CgogICAgdjEgPSBwMSAtIHAwCiAgICB2MiA9IHAyIC0gcDAKICAgIHYzID0gcDIgLSBwMQogICAgdjQg"
        "PSBwMyAtIHAxCiAgICBuMSA9IHYxLmNyb3NzKHYyKQogICAgbjIgPSB2My5jcm9zcyh2NCkKICAgIAog"
        "ICAgaWYgbjEubGVuZ3RoID4gMC4wMDAxIGFuZCBuMi5sZW5ndGggPiAwLjAwMDE6CiAgICAgICAgbjFf"
        "bm9ybSA9IG4xLm5vcm1hbGl6ZWQoKQogICAgICAgIG4yX25vcm0gPSBuMi5ub3JtYWxpemVkKCkKICAg"
        "ICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gbjJfbm9ybQogICAgICAgIGRvdCA9IG1heCgtMS4w"
        "LCBtaW4oMS4wLCBuMV9ub3JtLmRvdChuMl9ub3JtKSkpCiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Fu"
        "Z2xlID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhkb3QpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
        "ZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwx"
        "KQoKICAgIGlmIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICB0ID0gbjJfbm9ybS5kb3QocDEpCiAg"
        "ICAgICAgSCA9IG4yX25vcm0gKiB0CiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSBhYnModCkK"
        "ICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9IEgKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2Vv"
        "X3BsYW5lX2Rpc3QgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9ICgwLCAwLCAwKQoK"
        "IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09CiMgNC4g44Kq44Oa44Os44O844K/44O8ICjlh6bnkIbjg63jgrjjg4Pjgq8p"
        "CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RBX09UX1ZpZXdTZWxlY3RlZChicHkudHlwZXMuT3BlcmF0"
        "b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudmlld19zZWxlY3RlZCIKICAgIGJsX2xhYmVsID0gIumB"
        "uOaKnuOCkueUu+mdouS4reWkruOBqyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
        "ICAgIGJweS5vcHMudmlldzNkLnZpZXdfc2VsZWN0ZWQoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVE"
        "J30KCmNsYXNzIFRDVEFfT1RfVXBkYXRlVmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJs"
        "X2lkbmFtZSA9ICJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4Xl"
        "oLHmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBhcmVhLCByZWdp"
        "b24sIHNwYWNlID0gZ2V0XzNkX3ZpZXdfY29udGV4dCgpCiAgICAgICAgaWYgbm90IHNwYWNlOgogICAg"
        "ICAgICAgICBzZWxmLnJlcG9ydCh7J1dBUk5JTkcnfSwgIjNE44OT44Ol44O844GM6KaL44Gk44GL44KK"
        "44G+44Gb44KTIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0g"
        "c3BhY2UucmVnaW9uXzNkCiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAg"
        "ICAgICBwcm9wcy52aWV3X2NlbnRlciA9IHJ2M2Qudmlld19sb2NhdGlvbgogICAgICAgIHByb3BzLnZp"
        "ZXdfc2l6ZSA9IChyZWdpb24ud2lkdGgsIHJlZ2lvbi5oZWlnaHQpCiAgICAgICAgaWYgcnYzZC52aWV3"
        "X3BlcnNwZWN0aXZlID09ICdQRVJTUCc6CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBy"
        "djNkLnZpZXdfZGlzdGFuY2UKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcm9wcy52aWV3X2Rpc3Rh"
        "bmNlID0gMC4wIAogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weVZp"
        "ZXdJbmZvKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X3ZpZXdf"
        "aW5mbyIKICAgIGJsX2xhYmVsID0gIuODk+ODpeODvOaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBl"
        "eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3By"
        "b3BzCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGYiQ2VudGVyOiBYPXtwcm9wcy52aWV3X2Nl"
        "bnRlci54Oi4xZn0sIFk9e3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwgWj17cHJvcHMudmlld19jZW50"
        "ZXIuejouMWZ9IiwKICAgICAgICAgICAgZiJTaXplOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtw"
        "cm9wcy52aWV3X3NpemVbMV19IiwKICAgICAgICAgICAgZiJEaXN0YW5jZToge3Byb3BzLnZpZXdfZGlz"
        "dGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiRGlzdGFuY2U6IE4vQSIK"
        "ICAgICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpv"
        "aW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfj"
        "gZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ3JlYXRlT2JqZWN0"
        "cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY3JlYXRlX29iamVjdHMi"
        "CiAgICBibF9sYWJlbCA9ICLkvZzmiJAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAg"
        "ICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIAogICAgICAgIHBhcmVu"
        "dF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAg"
        "ICAgICBpZiBub3QgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNv"
        "bGxlY3Rpb25zLm5ldyhQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNj"
        "ZW5lLmNvbGxlY3Rpb24uY2hpbGRyZW4ubGluayhwYXJlbnRfY29sKQogICAgICAgICAgICAKICAgICAg"
        "ICBzdWJfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFNVQl9DT0xMRUNUSU9OX05BTUUpCiAg"
        "ICAgICAgaWYgbm90IHN1Yl9jb2w6CiAgICAgICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0"
        "aW9ucy5uZXcoU1VCX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICAgICAgcGFyZW50X2NvbC5jaGlsZHJl"
        "bi5saW5rKHN1Yl9jb2wpCgogICAgICAgIG5hbWVzX3RvX2RlbGV0ZSA9IFsKICAgICAgICAgICAgVE9S"
        "VVNfU0tFTEVUT05fTkFNRSwgU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFN"
        "RSwgCiAgICAgICAgICAgIFRSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FLCBBUlJPV19OQU1F"
        "LCBDSVJDTEVfTkFNRSwgRElTVF9TUEhFUkVfTkFNRSwgT1VURVJfU1BIRVJFX05BTUUKICAgICAgICBd"
        "CiAgICAgICAgZm9yIG9ial9uYW1lIGluIG5hbWVzX3RvX2RlbGV0ZToKICAgICAgICAgICAgaWYgb2Jq"
        "X25hbWUgaW4gYnB5LmRhdGEub2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMu"
        "cmVtb3ZlKGJweS5kYXRhLm9iamVjdHNbb2JqX25hbWVdLCBkb191bmxpbms9VHJ1ZSkKCiAgICAgICAg"
        "IyDpqqjmoLzkvZzmiJAKICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhUT1JVU19TS0VM"
        "RVRPTl9OQU1FKQogICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3KFRPUlVTX1NLRUxFVE9O"
        "X05BTUUsIG1lc2gpCiAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgIGJtID0g"
        "Ym1lc2gubmV3KCkKICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2N1YmUoYm0sIHNpemU9MTAuMCkKICAg"
        "ICAgICBibWVzaC5vcHMuZGVsZXRlKGJtLCBnZW9tPWJtLmZhY2VzLCBjb250ZXh0PSdGQUNFUycpCiAg"
        "ICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgIGJtLmZyZWUoKQogICAgICAgIHNraW5fbW9kID0g"
        "b2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU2tpbiIsIHR5cGU9J1NLSU4nKQogICAgICAgIHN1Yl9tb2Qg"
        "PSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTdWJkaXZpc2lvbiIsIHR5cGU9J1NVQlNVUkYnKQogICAg"
        "ICAgIHN1Yl9tb2QubGV2ZWxzID0gMgogICAgICAgIGZvciB2IGluIG9iai5kYXRhLnNraW5fdmVydGlj"
        "ZXNbMF0uZGF0YToKICAgICAgICAgICAgdi5yYWRpdXMgPSAoMC4yLCAwLjIpCiAgICAgICAgb2JqLmFj"
        "dGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Ub3J1cyIsIHByb3BzLnRv"
        "cnVzX2NvbG9yLCBwcm9wcy50b3J1c19hbHBoYSkKCiAgICAgICAgIyDnkIPkvZPkvZzmiJAKICAgICAg"
        "ICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9wX3Bvcyk6CiAgICAgICAgICAgIGlmIG1vZGUgPT0gJ1JBTkRP"
        "TSc6CiAgICAgICAgICAgICAgICByZXR1cm4gKHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVu"
        "aWZvcm0oLTUsIDUpLCByYW5kb20udW5pZm9ybSgtNSwgNSkpCiAgICAgICAgICAgIHJldHVybiBwcm9w"
        "X3BvcwoKICAgICAgICBwcm9wcy5zcDFfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AxX21vZGUs"
        "IHByb3BzLnNwMV9wb3MpCiAgICAgICAgcHJvcHMuc3AyX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3Bz"
        "LnNwMl9tb2RlLCBwcm9wcy5zcDJfcG9zKQogICAgICAgIHByb3BzLnNwM19hY3R1YWxfcG9zID0gZ2V0"
        "X3Bvcyhwcm9wcy5zcDNfbW9kZSwgcHJvcHMuc3AzX3BvcykKCiAgICAgICAgZGVmIGNyZWF0ZV9zcGhl"
        "cmUobmFtZSwgbG9jKToKICAgICAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcobmFtZSkK"
        "ICAgICAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcobmFtZSwgbWVzaCkKICAgICAgICAg"
        "ICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAg"
        "ICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MTYsIHZfc2Vn"
        "bWVudHM9OCwgcmFkaXVzPTAuNSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAg"
        "ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqLmxvY2F0aW9uID0gbG9jCiAgICAgICAgICAgIHJldHVy"
        "biBvYmoKCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVfMV9OQU1FLCBwcm9wcy5zcDFfYWN0dWFs"
        "X3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8yX05BTUUsIHByb3BzLnNwMl9hY3R1YWxf"
        "cG9zKQogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzNfTkFNRSwgcHJvcHMuc3AzX2FjdHVhbF9w"
        "b3MpCgogICAgICAgICMg5LiJ6KeS5b2i5L2c5oiQCiAgICAgICAgZGVmIGNyZWF0ZV90cmlhbmdsZShu"
        "YW1lLCBwMSwgcDIsIHAzLCBjb2xvciwgYWxwaGEsIHRoaWNrbmVzcyk6CiAgICAgICAgICAgIG1lc2gg"
        "PSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVj"
        "dHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAg"
        "ICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICB2MSA9IGJtLnZlcnRzLm5ldyhwMSkK"
        "ICAgICAgICAgICAgdjIgPSBibS52ZXJ0cy5uZXcocDIpCiAgICAgICAgICAgIHYzID0gYm0udmVydHMu"
        "bmV3KHAzKQogICAgICAgICAgICBibS5mYWNlcy5uZXcoKHYxLCB2MiwgdjMpKQogICAgICAgICAgICBi"
        "bS50b19tZXNoKG1lc2gpCiAgICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBzb2wgPSBvYmou"
        "bW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlmeSIsIHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAg"
        "c29sLnRoaWNrbmVzcyA9IHRoaWNrbmVzcwogICAgICAgICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0g"
        "Y3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0XyIrbmFtZSwgY29sb3IsIGFscGhhKQoKICAgICAgICBj"
        "cmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQV9OQU1FLCAoMCwwLDApLCBwcm9wcy5zcDFfYWN0dWFsX3Bv"
        "cywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnRyaUFfY29sb3IsIHByb3BzLnRyaV9hbHBoYSwg"
        "cHJvcHMudHJpX3RoaWNrbmVzcykKICAgICAgICBjcmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQl9OQU1F"
        "LCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnNwM19hY3R1"
        "YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25l"
        "c3MpCgogICAgICAgICMg5bm+5L2V6KiI566XCiAgICAgICAgY2FsY19nZW9fZGF0YShwcm9wcykKCiAg"
        "ICAgICAgIyDoppbopprljJbopoHntKDjga7kvZzmiJAKICAgICAgICBkaXN0ID0gcHJvcHMuZ2VvX3Bs"
        "YW5lX2Rpc3QKICAgICAgICBpZiBkaXN0ID4gMC4wMToKICAgICAgICAgICAgIyDnn6LljbAKICAgICAg"
        "ICAgICAgbWVzaF9hcnIgPSBicHkuZGF0YS5tZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAg"
        "IG9ial9hcnIgPSBicHkuZGF0YS5vYmplY3RzLm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAg"
        "ICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5u"
        "ZXcoKQogICAgICAgICAgICByID0gcHJvcHMuYXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRf"
        "bCA9IG1pbihkaXN0ICogMC4zLCByICogNC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVh"
        "ZF9sCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2Fw"
        "X3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9s"
        "KQogICAgICAgICAgICBnZW9tX2hlYWQgPSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRz"
        "PVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0w"
        "LjAsIGRlcHRoPWhlYWRfbCkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9"
        "W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRf"
        "bC8yKSkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZl"
        "Yz0oMCwgMCwgYm9keV9sLzIpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAg"
        "ICAgICBibS5mcmVlKCkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAo"
        "MCwgMCwgMCkKICAgICAgICAgICAgZm9vdF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19w"
        "bGFuZV9mb290KQogICAgICAgICAgICByb3RfcXVhdCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSku"
        "cm90YXRpb25fZGlmZmVyZW5jZShmb290X3ZlYy5ub3JtYWxpemVkKCkpCiAgICAgICAgICAgIG9ial9h"
        "cnIucm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9u"
        "X3F1YXRlcm5pb24gPSByb3RfcXVhdAogICAgICAgICAgICBvYmpfYXJyLmFjdGl2ZV9tYXRlcmlhbCA9"
        "IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9BcnJvdyIsIHByb3BzLmFycm93X2NvbG9yLCAxLjAp"
        "CiAgICAgICAgICAgIG9ial9hcnIuaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9wcy5zaG93X2Fycm93CiAg"
        "ICAgICAgICAgIG9ial9hcnIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19hcnJvdwoKICAgICAg"
        "ICAgICAgIyDlhoYKICAgICAgICAgICAgbWVzaF9jaXIgPSBicHkuZGF0YS5tZXNoZXMubmV3KENJUkNM"
        "RV9OQU1FKQogICAgICAgICAgICBvYmpfY2lyID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoQ0lSQ0xFX05B"
        "TUUsIG1lc2hfY2lyKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfY2lyKQogICAg"
        "ICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY2lyY2xl"
        "KGJtLCBjYXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9MzIsIHJhZGl1cz1wcm9w"
        "cy5jaXJjbGVfcmFkaXVzKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfY2lyKQogICAgICAgICAg"
        "ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX2Npci5sb2NhdGlvbiA9IHByb3BzLmdlb19wbGFuZV9m"
        "b290CiAgICAgICAgICAgIG5vcm1hbF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFu"
        "ZV9ub3JtYWwpCiAgICAgICAgICAgIGlmIG5vcm1hbF92ZWMubGVuZ3RoID4gMDoKICAgICAgICAgICAg"
        "ICAgIHJvdF9xdWF0X2NpciA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSkucm90YXRpb25fZGlmZmVy"
        "ZW5jZShub3JtYWxfdmVjKQogICAgICAgICAgICAgICAgb2JqX2Npci5yb3RhdGlvbl9tb2RlID0gJ1FV"
        "QVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0aW9uX3F1YXRlcm5pb24gPSByb3Rf"
        "cXVhdF9jaXIKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMubmV3KG5hbWU9IlNvbGlk"
        "aWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tuZXNzID0gcHJvcHMuY2ly"
        "Y2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9t"
        "YXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNpcmNs"
        "ZV9hbHBoYSkKICAgICAgICAgICAgb2JqX2Npci5oaWRlX3ZpZXdwb3J0ID0gbm90IHByb3BzLnNob3df"
        "Y2lyY2xlCiAgICAgICAgICAgIG9ial9jaXIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19jaXJj"
        "bGUKCiAgICAgICAgICAgICMg5pyA55+t6Led6Zui44Gu6YCP5piO55CD5L2TKOWGheauuykKICAgICAg"
        "ICAgICAgbWVzaF9zcGggPSBicHkuZGF0YS5tZXNoZXMubmV3KERJU1RfU1BIRVJFX05BTUUpCiAgICAg"
        "ICAgICAgIG9ial9zcGggPSBicHkuZGF0YS5vYmplY3RzLm5ldyhESVNUX1NQSEVSRV9OQU1FLCBtZXNo"
        "X3NwaCkKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX3NwaCkKICAgICAgICAgICAg"
        "Ym0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1"
        "X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRzPTE2LCByYWRpdXM9ZGlzdCkKICAgICAgICAgICAgYm0udG9f"
        "bWVzaChtZXNoX3NwaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9ial9zcGgubG9j"
        "YXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9zcGgucG9seWdvbnM6"
        "IHBvbHkudXNlX3Ntb290aCA9IFRydWUKICAgICAgICAgICAgb2JqX3NwaC5hY3RpdmVfbWF0ZXJpYWwg"
        "PSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfRGlzdFNwaGVyZSIsIHByb3BzLmRpc3Rfc3BoZXJl"
        "X2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBoYSkKICAgICAgICAgICAgb2JqX3NwaC5oaWRlX3Zp"
        "ZXdwb3J0ID0gbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUKICAgICAgICAgICAgb2JqX3NwaC5oaWRl"
        "X3JlbmRlciA9IG5vdCBwcm9wcy5zaG93X2Rpc3Rfc3BoZXJlCgogICAgICAgICMg5aSW5q6744Gu5aSn"
        "44GN44Gq6YCP5piO55CD5L2TIChORVcpCiAgICAgICAgb3V0ZXJfciA9IHByb3BzLmdlb19vdXRlcl9y"
        "YWRpdXMKICAgICAgICBpZiBvdXRlcl9yID4gMDoKICAgICAgICAgICAgbWVzaF9vdXQgPSBicHkuZGF0"
        "YS5tZXNoZXMubmV3KE9VVEVSX1NQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfb3V0ID0gYnB5LmRh"
        "dGEub2JqZWN0cy5uZXcoT1VURVJfU1BIRVJFX05BTUUsIG1lc2hfb3V0KQogICAgICAgICAgICBzdWJf"
        "Y29sLm9iamVjdHMubGluayhvYmpfb3V0KQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAg"
        "ICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVu"
        "dHM9MTYsIHJhZGl1cz1vdXRlcl9yKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfb3V0KQogICAg"
        "ICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX291dC5sb2NhdGlvbiA9ICgwLCAwLCAwKQog"
        "ICAgICAgICAgICBmb3IgcG9seSBpbiBtZXNoX291dC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0g"
        "VHJ1ZQogICAgICAgICAgICBvYmpfb3V0LmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQ"
        "UkVGSVgrIk1hdF9PdXRlclNwaGVyZSIsIHByb3BzLm91dGVyX3NwaGVyZV9jb2xvciwgcHJvcHMub3V0"
        "ZXJfc3BoZXJlX2FscGhhKQogICAgICAgICAgICBvYmpfb3V0LmhpZGVfdmlld3BvcnQgPSBub3QgcHJv"
        "cHMuc2hvd19vdXRlcl9zcGhlcmUKICAgICAgICAgICAgb2JqX291dC5oaWRlX3JlbmRlciA9IG5vdCBw"
        "cm9wcy5zaG93X291dGVyX3NwaGVyZQoKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBU"
        "Q1RBX09UX0RldGFjaE9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0"
        "Y3RhLmRldGFjaF9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz44GL44KJ5YiH44KK"
        "6Zui44GXIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFyZW50X2NvbCA9"
        "IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlm"
        "IHBhcmVudF9jb2w6CiAgICAgICAgICAgIHBhcmVudF9jb2wubmFtZSA9IFBBUkVOVF9DT0xMRUNUSU9O"
        "X05BTUUgKyAiX0RldGFjaGVkIgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWIh+OC"
        "iumbouOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
        "VF9SZXNldFByb3BzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yZXNl"
        "dF9wcm9wcyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aIu+OBmSIKICAgIGRlZiBleGVjdXRl"
        "KHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAg"
        "ICAgICAgcmVzZXRfbGlzdCA9IFsKICAgICAgICAgICAgInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhh"
        "IiwgInRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciIs"
        "IAogICAgICAgICAgICAic2hvd19hcnJvdyIsICJzaG93X2NpcmNsZSIsICJzaG93X2Rpc3Rfc3BoZXJl"
        "IiwgInNob3dfb3V0ZXJfc3BoZXJlIiwKICAgICAgICAgICAgImFycm93X3RoaWNrbmVzcyIsICJhcnJv"
        "d19jb2xvciIsICJjaXJjbGVfcmFkaXVzIiwgImNpcmNsZV90aGlja25lc3MiLCAiY2lyY2xlX2NvbG9y"
        "IiwgImNpcmNsZV9hbHBoYSIsCiAgICAgICAgICAgICJkaXN0X3NwaGVyZV9jb2xvciIsICJkaXN0X3Nw"
        "aGVyZV9hbHBoYSIsICJvdXRlcl9zcGhlcmVfY29sb3IiLCAib3V0ZXJfc3BoZXJlX2FscGhhIgogICAg"
        "ICAgIF0KICAgICAgICBmb3IgcCBpbiByZXNldF9saXN0OgogICAgICAgICAgICBwcm9wcy5wcm9wZXJ0"
        "eV91bnNldChwKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfUmFuZG9t"
        "UmVzZXQoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnJhbmRvbV9yZXNl"
        "dCIKICAgIGJsX2xhYmVsID0gIuODqeODs+ODgOODoOWGjeioiOeul++8huabtOaWsCIKICAgIGRlZiBl"
        "eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5vcHMudGN0YS5jcmVhdGVfb2JqZWN0cygp"
        "CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9Db3B5R2VvSW5mbyhicHku"
        "dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY29weV9nZW9faW5mbyIKICAgIGJs"
        "X2xhYmVsID0gIuW5vuS9leaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNv"
        "bnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGlu"
        "ZXMgPSBbCiAgICAgICAgICAgIGYiU3AxIERpc3Q6IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSwgQW5n"
        "OiBYPXtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9fc3AxX2FuZ1sxXTouMWZ9"
        "LCBaPXtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAgZiJTcDIgRGlzdDoge3By"
        "b3BzLmdlb19zcDJfZGlzdDouMWZ9LCBBbmc6IFg9e3Byb3BzLmdlb19zcDJfYW5nWzBdOi4xZn0sIFk9"
        "e3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDJfYW5nWzJdOi4xZn0iLAog"
        "ICAgICAgICAgICBmIlNwMyBEaXN0OiB7cHJvcHMuZ2VvX3NwM19kaXN0Oi4xZn0sIEFuZzogWD17cHJv"
        "cHMuZ2VvX3NwM19hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfSwgWj17cHJv"
        "cHMuZ2VvX3NwM19hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiUGxhbmUgQ3Jvc3MgQW5nbGU6IHtw"
        "cm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfSIsCiAgICAgICAgICAgIGYiU2hvcnRlc3QgRGlzdCB0byBQ"
        "bGFuZSBCIChJbm5lciBSYWRpdXMpOiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIsCiAgICAgICAg"
        "ICAgIGYiU2hvcnRlc3QgRm9vdCBQb3M6IFg9e3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIFk9"
        "e3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIFo9e3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4x"
        "Zn0iLAogICAgICAgICAgICBmIk91dGVyIFNoZWxsIFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2Vv"
        "X291dGVyX3JhZGl1czouMWZ9IgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2Vy"
        "LmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwg"
        "IuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
        "VENUQV9PVF9PcGVuTGluayhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEu"
        "b3Blbl9saW5rIgogICAgYmxfbGFiZWwgPSAi44Oq44Oz44Kv44KS6ZaL44GPIgogICAgZGVmIGV4ZWN1"
        "dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy53bS51cmxfb3Blbih1cmw9Imh0dHBzOi8v"
        "d3d3LmJsZW5kZXIub3JnLyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
        "VF9EZWxldGVBbGwoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmRlbGV0"
        "ZV9hbGwiCiAgICBibF9sYWJlbCA9ICLplqLpgKPlhajliYrpmaQiCiAgICBkZWYgZXhlY3V0ZShzZWxm"
        "LCBjb250ZXh0KToKICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBB"
        "UkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgZm9y"
        "IG9iaiBpbiBwYXJlbnRfY29sLmFsbF9vYmplY3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2Jq"
        "ZWN0cy5yZW1vdmUob2JqLCBkb191bmxpbms9VHJ1ZSkKICAgICAgICAgICAgYnB5LmRhdGEuY29sbGVj"
        "dGlvbnMucmVtb3ZlKHBhcmVudF9jb2wpCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi"
        "5YWo5YmK6Zmk44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09CiMgNS4gVUkg44OR44ON44Or5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RB"
        "X1BUX1BhbmVsQmFzZToKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90"
        "eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiVENUQSIKCmNsYXNzIFRDVEFfUFRfVmlld0luZm8o"
        "VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
        "VF92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICIxLiDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEiCiAg"
        "ICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAg"
        "ICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9y"
        "KCJ0Y3RhLnZpZXdfc2VsZWN0ZWQiLCBpY29uPSdWSUVXWk9PTScpCiAgICAgICAgbGF5b3V0Lm9wZXJh"
        "dG9yKCJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iLCBpY29uPSdGSUxFX1JFRlJFU0gnKQogICAgICAgIGJv"
        "eCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2VudGVyOiAoe3Byb3BzLnZp"
        "ZXdfY2VudGVyLng6LjFmfSwge3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwge3Byb3BzLnZpZXdfY2Vu"
        "dGVyLno6LjFmfSkiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiU2l6ZSAocHgpOiBXPXtwcm9wcy52"
        "aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3X3NpemVbMV19IikKICAgICAgICBib3gubGFiZWwodGV4"
        "dD1mIkNhbWVyYSBEaXN0OiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rp"
        "c3RhbmNlID4gMCBlbHNlICJDYW1lcmEgRGlzdDogTi9BIikKICAgICAgICBsYXlvdXQub3BlcmF0b3Io"
        "InRjdGEuY29weV92aWV3X2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFzcyBUQ1RBX1BUX01haW4o"
        "VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
        "VF9tYWluIgogICAgYmxfbGFiZWwgPSAiMi4g44Oh44Kk44Oz5a6f6KGMIgogICAgZGVmIGRyYXcoc2Vs"
        "ZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3Bl"
        "cmF0b3IoInRjdGEuY3JlYXRlX29iamVjdHMiLCBpY29uPSdQTEFZJywgdGV4dD0i5L2c5oiQICjnlJ/m"
        "iJDjg7vmm7TmlrApIikKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuZGV0YWNoX29iamVjdHMi"
        "LCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBUQ1RBX1BUX1NldHRpbmdzKFRDVEFfUFRfUGFuZWxCYXNl"
        "LCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc2V0dGluZ3MiCiAgICBi"
        "bF9sYWJlbCA9ICIzLiDjg5Hjg6njg6Hjg7zjgr/oqK3lrpoiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250"
        "ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5z"
        "Y2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJlc2V0X3Byb3BzIiwg"
        "aWNvbj0nTE9PUF9CQUNLJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFi"
        "ZWwodGV4dD0iVG9ydXMgRnJhbWU6IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRvcnVzX2NvbG9y"
        "IiwgdGV4dD0iQ29sb3IiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidG9ydXNfYWxwaGEiLCB0ZXh0"
        "PSJBbHBoYSIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
        "IlNwaGVyZXM6IikKICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCA0KToKICAgICAgICAgICAgcm93ID0g"
        "Ym94LnJvdygpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYi"
        "U3B7aX0iKQogICAgICAgICAgICBpZiBnZXRhdHRyKHByb3BzLCBmInNwe2l9X21vZGUiKSA9PSAnTUFO"
        "VUFMJzoKICAgICAgICAgICAgICAgIGJveC5wcm9wKHByb3BzLCBmInNwe2l9X3BvcyIsIHRleHQ9IlhZ"
        "WiIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRyaWFu"
        "Z2xlczoiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX3RoaWNrbmVzcyIpCiAgICAgICAgYm94"
        "LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpQV9jb2xv"
        "ciIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0cmlCX2NvbG9yIikKICAgICAgICAKICAgICAgICAj"
        "IOihqOekui/pnZ7ooajnpLrjg4jjgrDjg6vjgajoqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94"
        "KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iR2VvbWV0cmljIFZpc3VhbHMgVG9nZ2xlOiIpCiAgICAg"
        "ICAgCiAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Fy"
        "cm93IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfYXJyb3cgZWxzZSAnVFJJQV9E"
        "T1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfY2lyY2xlIiwgaWNvbj0nVFJJQV9SSUdI"
        "VCcgaWYgbm90IHByb3BzLnNob3dfY2lyY2xlIGVsc2UgJ1RSSUFfRE9XTicpCiAgICAgICAgCiAgICAg"
        "ICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Rpc3Rfc3BoZXJl"
        "IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUgZWxzZSAnVFJJ"
        "QV9ET1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfb3V0ZXJfc3BoZXJlIiwgaWNvbj0n"
        "VFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfb3V0ZXJfc3BoZXJlIGVsc2UgJ1RSSUFfRE9XTicp"
        "CgogICAgICAgIGlmIHByb3BzLnNob3dfYXJyb3c6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4o"
        "YWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJhcnJvd190aGlja25lc3MiKQog"
        "ICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImFycm93X2NvbG9yIikKICAgICAgICAKICAgICAgICBp"
        "ZiBwcm9wcy5zaG93X2NpcmNsZToKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVl"
        "KQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJj"
        "aXJjbGVfcmFkaXVzIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNz"
        "IikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiKQogICAgICAgICAgICBj"
        "b2wucHJvcChwcm9wcywgImNpcmNsZV9hbHBoYSIpCiAgICAgICAgICAgIAogICAgICAgIGlmIHByb3Bz"
        "LnNob3dfZGlzdF9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkK"
        "ICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlz"
        "dF9zcGhlcmVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImRpc3Rfc3BoZXJlX2Fs"
        "cGhhIikKCiAgICAgICAgaWYgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9"
        "IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAg"
        "ICAgIGNvbC5wcm9wKHByb3BzLCAib3V0ZXJfc3BoZXJlX2NvbG9yIikKICAgICAgICAgICAgY29sLnBy"
        "b3AocHJvcHMsICJvdXRlcl9zcGhlcmVfYWxwaGEiKQoKY2xhc3MgVENUQV9QVF9HZW9JbmZvKFRDVEFf"
        "UFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfZ2Vv"
        "X2luZm8iCiAgICBibF9sYWJlbCA9ICI0LiDlub7kvZXmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBj"
        "b250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4"
        "dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJhbmRvbV9yZXNl"
        "dCIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgp"
        "CiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZSAxIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJv"
        "eC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0iKQogICAgICAgIGJv"
        "eC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5n"
        "ZW9fc3AxX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9wrAiKQogICAgICAg"
        "IGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMiAoZnJvbSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwo"
        "dGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwo"
        "dGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9h"
        "bmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfcKwIikKICAgICAgICBib3gubGFi"
        "ZWwodGV4dD0iU3BoZXJlIDMgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
        "IERpc3Q6IHtwcm9wcy5nZW9fc3AzX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
        "IEFuZzoge3Byb3BzLmdlb19zcDNfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzFdOi4x"
        "Zn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgCiAgICAgICAgYm94ID0g"
        "bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlBsYW5lIENyb3NzIEFuZ2xlIChBICYg"
        "Qik6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5n"
        "bGU6LjFmfcKwIikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gu"
        "bGFiZWwodGV4dD0iUGxhbmUgQiBJbm5lciBEaXN0IChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5s"
        "YWJlbCh0ZXh0PWYiICBTaG9ydGVzdCBEaXN0OiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIpCiAg"
        "ICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEZvb3Q6ICh7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFm"
        "fSwge3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIHtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTou"
        "MWZ9KSIpCgogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJP"
        "dXRlciBCb3VuZCBTcGhlcmUgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
        "IFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2VvX291dGVyX3JhZGl1czouMWZ9IikKCiAgICAgICAg"
        "bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfZ2VvX2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFz"
        "cyBUQ1RBX1BUX1N5c3RlbShUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAgIGJs"
        "X2lkbmFtZSA9ICJUQ1RBX1BUX3N5c3RlbSIKICAgIGJsX2xhYmVsID0gIjUuIOOCt+OCueODhuODoCIK"
        "ICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAg"
        "ICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLm9wZW5fbGluayIsIGljb249J1VSTCcpCiAgICAgICAg"
        "bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRlbGV0ZV9hbGwiLCBpY29uPSdUUkFTSCcsIHRleHQ9IuOCouOD"
        "ieOCquODs+WJiumZpCAo5YWo44Kv44Oq44KiKSIpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNi4g55m76Yyy"
        "5Yem55CGCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PQpjbGFzc2VzID0gKAogICAgVENUQV9Qcm9wZXJ0aWVzLAogICAg"
        "VENUQV9PVF9WaWV3U2VsZWN0ZWQsCiAgICBUQ1RBX09UX1VwZGF0ZVZpZXdJbmZvLAogICAgVENUQV9P"
        "VF9Db3B5Vmlld0luZm8sCiAgICBUQ1RBX09UX0NyZWF0ZU9iamVjdHMsCiAgICBUQ1RBX09UX0RldGFj"
        "aE9iamVjdHMsCiAgICBUQ1RBX09UX1Jlc2V0UHJvcHMsCiAgICBUQ1RBX09UX1JhbmRvbVJlc2V0LAog"
        "ICAgVENUQV9PVF9Db3B5R2VvSW5mbywKICAgIFRDVEFfT1RfT3BlbkxpbmssCiAgICBUQ1RBX09UX0Rl"
        "bGV0ZUFsbCwKICAgIFRDVEFfUFRfVmlld0luZm8sCiAgICBUQ1RBX1BUX01haW4sCiAgICBUQ1RBX1BU"
        "X1NldHRpbmdzLAogICAgVENUQV9QVF9HZW9JbmZvLAogICAgVENUQV9QVF9TeXN0ZW0sCikKCmRlZiBy"
        "ZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOgogICAgICAgIGJweS51dGlscy5yZWdpc3Rl"
        "cl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcyA9IGJweS5wcm9wcy5Qb2lu"
        "dGVyUHJvcGVydHkodHlwZT1UQ1RBX1Byb3BlcnRpZXMpCgpkZWYgdW5yZWdpc3RlcigpOgogICAgZm9y"
        "IGNscyBpbiByZXZlcnNlZChjbGFzc2VzKToKICAgICAgICBicHkudXRpbHMudW5yZWdpc3Rlcl9jbGFz"
        "cyhjbHMpCiAgICBkZWwgYnB5LnR5cGVzLlNjZW5lLnRjdGFfcHJvcHMKCmlmIF9fbmFtZV9fID09ICJf"
        "X21haW5fXyI6CiAgICByZWdpc3Rlcigp"
        )
    },
    {
        "name": "平面2つなす角度 20260713_003",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
        "ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA0LCAwKSwKICAgICJi"
        "bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
        "IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjga7lub7kvZXmg4XloLHoqIjnrpfjgajmnIDnn63o"
        "t53pm6Ljga7oppbopprljJbvvIjooajnpLrliIfmm7/mqZ/og73ku5jjgY3vvIkiLAogICAgImNhdGVn"
        "b3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0aAppbXBv"
        "cnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneacn+WApOWu"
        "mue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElPTl9OQU1F"
        "ID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2JqZWN0cyIK"
        "VE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0gIlNwaGVy"
        "ZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVyZV8zIgpU"
        "UklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFuZ2xlX0Ii"
        "CkFSUk9XX05BTUUgPSAiQXJyb3dfU2hvcnRlc3REaXN0IgpDSVJDTEVfTkFNRSA9ICJDaXJjbGVfUGxh"
        "bmVCIgpESVNUX1NQSEVSRV9OQU1FID0gIlNwaGVyZV9TaG9ydGVzdERpc3QiCgojID09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT0KIyAyLiDjg5fjg63jg5Hjg4bjgqPlrprnvqnvvIjmm7TmlrDjgrPjg7zjg6vjg5Djg4Pjgq/lkKvj"
        "goDvvIkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09CmRlZiB1cGRhdGVfdmlzX2Fycm93KHNlbGYsIGNvbnRleHQpOgog"
        "ICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQoQVJST1dfTkFNRSkKICAgIGlmIG9iajoKICAgICAg"
        "ICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfYXJyb3cKICAgICAgICBvYmouaGlkZV9y"
        "ZW5kZXIgPSBub3Qgc2VsZi5zaG93X2Fycm93CgpkZWYgdXBkYXRlX3Zpc19jaXJjbGUoc2VsZiwgY29u"
        "dGV4dCk6CiAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLmdldChDSVJDTEVfTkFNRSkKICAgIGlmIG9i"
        "ajoKICAgICAgICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfY2lyY2xlCiAgICAgICAg"
        "b2JqLmhpZGVfcmVuZGVyID0gbm90IHNlbGYuc2hvd19jaXJjbGUKCmRlZiB1cGRhdGVfdmlzX3NwaGVy"
        "ZShzZWxmLCBjb250ZXh0KToKICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KERJU1RfU1BIRVJF"
        "X05BTUUpCiAgICBpZiBvYmo6CiAgICAgICAgb2JqLmhpZGVfdmlld3BvcnQgPSBub3Qgc2VsZi5zaG93"
        "X2Rpc3Rfc3BoZXJlCiAgICAgICAgb2JqLmhpZGVfcmVuZGVyID0gbm90IHNlbGYuc2hvd19kaXN0X3Nw"
        "aGVyZQoKY2xhc3MgVENUQV9Qcm9wZXJ0aWVzKGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgICMg"
        "44OI44O844Op44K56aqo5qC86Kit5a6aCiAgICB0b3J1c19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
        "dG9yUHJvcGVydHkobmFtZT0iVG9ydXMgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9"
        "NCwgZGVmYXVsdD0oMC4xLCAwLjUsIDAuOCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRvcnVz"
        "X2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJUb3J1cyBBbHBoYSIsIGRlZmF1bHQ9"
        "MC41LCBtaW49MC4wLCBtYXg9MS4wKQogICAgCiAgICAjIOmFjee9ruODouODvOODiQogICAgbW9kZV9v"
        "cHRpb25zID0gWygnUkFORE9NJywgIuODqeODs+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH5a6a"
        "5L2N572uIiwgIiIpXQogICAgc3AxX21vZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9k"
        "ZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBicHku"
        "cHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9"
        "J1JBTkRPTScpCiAgICBzcDNfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwg"
        "aXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgCiAgICBzcDFfcG9zOiBicHku"
        "cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAxIiwgZGVmYXVsdD0oMi4wLCAy"
        "LjAsIDIuMCkpCiAgICBzcDJfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQ"
        "b3NpdGlvbiAyIiwgZGVmYXVsdD0oLTIuMCwgLTIuMCwgMi4wKSkKICAgIHNwM19wb3M6IGJweS5wcm9w"
        "cy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlBvc2l0aW9uIDMiLCBkZWZhdWx0PSgwLjAsIDMuMCwg"
        "LTIuMCkpCiAgICAKICAgIHNwMV9hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
        "eShkZWZhdWx0PSgwLDAsMCkpCiAgICBzcDJfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9y"
        "UHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AzX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5GbG9h"
        "dFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKCiAgICAjIOS4ieinkuW9ouioreWumgogICAg"
        "dHJpX3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iVGhpY2tuZXNzIiwgZGVm"
        "YXVsdD0wLjEsIG1pbj0wLjApCiAgICB0cmlfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5h"
        "bWU9IkFscGhhIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlBX2NvbG9yOiBi"
        "cHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciBBIiwgc3VidHlwZT0nQ09MT1Jf"
        "R0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4yLCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0x"
        "LjApCiAgICB0cmlCX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xv"
        "ciBCIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwgMC44LCAwLjIs"
        "IDEuMCksIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDooajnpLov6Z2e6KGo56S644OI44Kw44OrIChO"
        "RVcpCiAgICBzaG93X2Fycm93OiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuefouWNsCIsIGRl"
        "ZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNfYXJyb3cpCiAgICBzaG93X2NpcmNsZTogYnB5LnBy"
        "b3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlhobnm6QiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVf"
        "dmlzX2NpcmNsZSkKICAgIHNob3dfZGlzdF9zcGhlcmU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFt"
        "ZT0i55CD5L2TIiwgZGVmYXVsdD1UcnVlLCB1cGRhdGU9dXBkYXRlX3Zpc19zcGhlcmUpCgogICAgIyDn"
        "n6LljbDoqK3lrpoKICAgIGFycm93X3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFt"
        "ZT0iQXJyb3cgVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjA1LCBtaW49MC4wMSwgbWF4PTEuMCkKICAgIGFy"
        "cm93X2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJBcnJvdyBDb2xvciIs"
        "IHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgxLjAsIDAuOCwgMC4wLCAxLjAp"
        "LCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg5YaG6Kit5a6aCiAgICBjaXJjbGVfcmFkaXVzOiBicHku"
        "cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJDaXJjbGUgUmFkaXVzIiwgZGVmYXVsdD0zLjAsIG1pbj0w"
        "LjEpCiAgICBjaXJjbGVfdGhpY2tuZXNzOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJDaXJj"
        "bGUgVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjApCiAgICBjaXJjbGVfY29sb3I6IGJweS5w"
        "cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNpcmNsZSBDb2xvciIsIHN1YnR5cGU9J0NPTE9S"
        "X0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgxLjAsIDAuNSwgMC4wLCAwLjQpLCBtaW49MC4wLCBtYXg9"
        "MS4wKQogICAgY2lyY2xlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJDaXJjbGUg"
        "QWxwaGEiLCBkZWZhdWx0PTAuNCwgbWluPTAuMCwgbWF4PTEuMCkKCiAgICAjIOi3nemboueQg+S9k+io"
        "reWumgogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5h"
        "bWU9IkRpc3QgU3BoZXJlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1"
        "bHQ9KDAuMCwgMC44LCAxLjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBkaXN0X3NwaGVyZV9h"
        "bHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iRGlzdCBTcGhlcmUgQWxwaGEiLCBkZWZh"
        "dWx0PTAuMDYsIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDjg5Pjg6Xjg7zjg53jg7zjg4jjg7vlub7k"
        "vZXmg4XloLEKICAgIHZpZXdfY2VudGVyOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
        "PSJWaWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6IGJweS5wcm9wcy5JbnRWZWN0b3JQcm9wZXJ0eShu"
        "YW1lPSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikKICAgIHZpZXdfZGlzdGFuY2U6IGJweS5wcm9wcy5G"
        "bG9hdFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFuY2UiKQogICAgCiAgICBnZW9fc3AxX2Rpc3Q6IGJw"
        "eS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDFfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0"
        "b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fc3AyX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
        "KCkKICAgIGdlb19zcDJfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAg"
        "ICBnZW9fcGxhbmVfYW5nbGU6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19wbGFuZV9k"
        "aXN0OiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9fcGxhbmVfZm9vdDogYnB5LnByb3Bz"
        "LkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQogICAgZ2VvX3BsYW5lX25vcm1hbDogYnB5LnByb3Bz"
        "LkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDMuIOODpuODvOOD"
        "huOCo+ODquODhuOCo+mWouaVsAojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGVmIGdldF8zZF92aWV3X2NvbnRleHQo"
        "KToKICAgIGZvciB3aW5kb3cgaW4gYnB5LmNvbnRleHQud2luZG93X21hbmFnZXIud2luZG93czoKICAg"
        "ICAgICBmb3IgYXJlYSBpbiB3aW5kb3cuc2NyZWVuLmFyZWFzOgogICAgICAgICAgICBpZiBhcmVhLnR5"
        "cGUgPT0gJ1ZJRVdfM0QnOgogICAgICAgICAgICAgICAgZm9yIHJlZ2lvbiBpbiBhcmVhLnJlZ2lvbnM6"
        "CiAgICAgICAgICAgICAgICAgICAgaWYgcmVnaW9uLnR5cGUgPT0gJ1dJTkRPVyc6CiAgICAgICAgICAg"
        "ICAgICAgICAgICAgIHJldHVybiBhcmVhLCByZWdpb24sIGFyZWEuc3BhY2VzLmFjdGl2ZQogICAgcmV0"
        "dXJuIE5vbmUsIE5vbmUsIE5vbmUKCmRlZiBjcmVhdGVfbWF0ZXJpYWwobmFtZSwgY29sb3IsIGFscGhh"
        "KToKICAgIG1hdCA9IGJweS5kYXRhLm1hdGVyaWFscy5nZXQobmFtZSkKICAgIGlmIG5vdCBtYXQ6CiAg"
        "ICAgICAgbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxzLm5ldyhuYW1lKQogICAgbWF0LnVzZV9ub2RlcyA9"
        "IFRydWUKICAgIAogICAgaWYgaGFzYXR0cihtYXQsICJibGVuZF9tZXRob2QiKToKICAgICAgICBtYXQu"
        "YmxlbmRfbWV0aG9kID0gJ0JMRU5EJwogICAgaWYgaGFzYXR0cihtYXQsICJzaGFkb3dfbWV0aG9kIik6"
        "CiAgICAgICAgbWF0LnNoYWRvd19tZXRob2QgPSAnTk9ORScKICAgIAogICAgYnNkZiA9IG1hdC5ub2Rl"
        "X3RyZWUubm9kZXMuZ2V0KCJQcmluY2lwbGVkIEJTREYiKQogICAgaWYgYnNkZjoKICAgICAgICBic2Rm"
        "LmlucHV0c1siQmFzZSBDb2xvciJdLmRlZmF1bHRfdmFsdWUgPSBjb2xvcgogICAgICAgIGJzZGYuaW5w"
        "dXRzWyJBbHBoYSJdLmRlZmF1bHRfdmFsdWUgPSBhbHBoYQogICAgcmV0dXJuIG1hdAoKZGVmIGNhbGNf"
        "Z2VvX2RhdGEocHJvcHMpOgogICAgZGVmIGNhbGNfZGlzdF9hbmdsZSh2ZWMpOgogICAgICAgIGRpc3Qg"
        "PSB2ZWMubGVuZ3RoCiAgICAgICAgaWYgZGlzdCA9PSAwOiByZXR1cm4gMCwgMCwgMCwgMAogICAgICAg"
        "IG4gPSB2ZWMubm9ybWFsaXplZCgpCiAgICAgICAgYXggPSBtYXRoLmRlZ3JlZXMobWF0aC5hY29zKG4u"
        "eCkpCiAgICAgICAgYXkgPSBtYXRoLmRlZ3JlZXMobWF0aC5hY29zKG4ueSkpCiAgICAgICAgYXogPSBt"
        "YXRoLmRlZ3JlZXMobWF0aC5hY29zKG4ueikpCiAgICAgICAgcmV0dXJuIGRpc3QsIGF4LCBheSwgYXoK"
        "CiAgICBwMCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsIDAsIDApKQogICAgcDEgPSBtYXRodXRpbHMuVmVj"
        "dG9yKHByb3BzLnNwMV9hY3R1YWxfcG9zKQogICAgcDIgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLnNw"
        "Ml9hY3R1YWxfcG9zKQogICAgcDMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLnNwM19hY3R1YWxfcG9z"
        "KQoKICAgIGQxLCBheDEsIGF5MSwgYXoxID0gY2FsY19kaXN0X2FuZ2xlKHAxKQogICAgcHJvcHMuZ2Vv"
        "X3NwMV9kaXN0ID0gZDEKICAgIHByb3BzLmdlb19zcDFfYW5nID0gKGF4MSwgYXkxLCBhejEpCgogICAg"
        "ZDIsIGF4MiwgYXkyLCBhejIgPSBjYWxjX2Rpc3RfYW5nbGUocDIpCiAgICBwcm9wcy5nZW9fc3AyX2Rp"
        "c3QgPSBkMgogICAgcHJvcHMuZ2VvX3NwMl9hbmcgPSAoYXgyLCBheTIsIGF6MikKCiAgICB2MSA9IHAx"
        "IC0gcDAKICAgIHYyID0gcDIgLSBwMAogICAgdjMgPSBwMiAtIHAxCiAgICB2NCA9IHAzIC0gcDEKICAg"
        "IG4xID0gdjEuY3Jvc3ModjIpCiAgICBuMiA9IHYzLmNyb3NzKHY0KQogICAgCiAgICBpZiBuMS5sZW5n"
        "dGggPiAwLjAwMDEgYW5kIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICBuMV9ub3JtID0gbjEubm9y"
        "bWFsaXplZCgpCiAgICAgICAgbjJfbm9ybSA9IG4yLm5vcm1hbGl6ZWQoKQogICAgICAgIHByb3BzLmdl"
        "b19wbGFuZV9ub3JtYWwgPSBuMl9ub3JtCiAgICAgICAgZG90ID0gbWF4KC0xLjAsIG1pbigxLjAsIG4x"
        "X25vcm0uZG90KG4yX25vcm0pKSkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfYW5nbGUgPSBtYXRoLmRl"
        "Z3JlZXMobWF0aC5hY29zKGRvdCkpCiAgICBlbHNlOgogICAgICAgIHByb3BzLmdlb19wbGFuZV9hbmds"
        "ZSA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9ub3JtYWwgPSAoMCwwLDEpCgogICAgaWYgbjIu"
        "bGVuZ3RoID4gMC4wMDAxOgogICAgICAgIHQgPSBuMl9ub3JtLmRvdChwMSkKICAgICAgICBIID0gbjJf"
        "bm9ybSAqIHQKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9IGFicyh0KQogICAgICAgIHByb3Bz"
        "Lmdlb19wbGFuZV9mb290ID0gSAogICAgZWxzZToKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9"
        "IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0gKDAsIDAsIDApCgojID09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWHpueQhuODreOCuOODg+OCrykKIyA9PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVkKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9p"
        "ZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgogICAgYmxfbGFiZWwgPSAi6YG45oqe44KS55S76Z2i"
        "5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy52"
        "aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENU"
        "QV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRj"
        "dGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIueUu+mdouaDheWgseabtOaWsCIKICAg"
        "IGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGFyZWEsIHJlZ2lvbiwgc3BhY2UgPSBn"
        "ZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBpZiBub3Qgc3BhY2U6CiAgICAgICAgICAgIHNlbGYu"
        "cmVwb3J0KHsnV0FSTklORyd9LCAiM0Tjg5Pjg6Xjg7zjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiKQog"
        "ICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQogICAgICAgIHJ2M2QgPSBzcGFjZS5yZWdpb25f"
        "M2QKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIHByb3BzLnZp"
        "ZXdfY2VudGVyID0gcnYzZC52aWV3X2xvY2F0aW9uCiAgICAgICAgcHJvcHMudmlld19zaXplID0gKHJl"
        "Z2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodCkKICAgICAgICBpZiBydjNkLnZpZXdfcGVyc3BlY3RpdmUg"
        "PT0gJ1BFUlNQJzoKICAgICAgICAgICAgcHJvcHMudmlld19kaXN0YW5jZSA9IHJ2M2Qudmlld19kaXN0"
        "YW5jZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSAwLjAgCiAg"
        "ICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9Db3B5Vmlld0luZm8oYnB5LnR5"
        "cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNvcHlfdmlld19pbmZvIgogICAgYmxf"
        "bGFiZWwgPSAi44OT44Ol44O85oOF5aCx44KS44Kz44OU44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwg"
        "Y29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBs"
        "aW5lcyA9IFsKICAgICAgICAgICAgZiJDZW50ZXI6IFg9e3Byb3BzLnZpZXdfY2VudGVyLng6LjFmfSwg"
        "WT17cHJvcHMudmlld19jZW50ZXIueTouMWZ9LCBaPXtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0iLAog"
        "ICAgICAgICAgICBmIlNpemU6IFc9e3Byb3BzLnZpZXdfc2l6ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6"
        "ZVsxXX0iLAogICAgICAgICAgICBmIkRpc3RhbmNlOiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBp"
        "ZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNlICJEaXN0YW5jZTogTi9BIgogICAgICAgIF0KICAg"
        "ICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAg"
        "ICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAg"
        "cmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9DcmVhdGVPYmplY3RzKGJweS50eXBlcy5P"
        "cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jcmVhdGVfb2JqZWN0cyIKICAgIGJsX2xhYmVs"
        "ID0gIuS9nOaIkCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0g"
        "Y29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgCiAgICAgICAgcGFyZW50X2NvbCA9IGJweS5k"
        "YXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlmIG5vdCBw"
        "YXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMubmV3"
        "KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgICAgIGNvbnRleHQuc2NlbmUuY29sbGVjdGlv"
        "bi5jaGlsZHJlbi5saW5rKHBhcmVudF9jb2wpCiAgICAgICAgICAgIAogICAgICAgIHN1Yl9jb2wgPSBi"
        "cHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoU1VCX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBub3Qg"
        "c3ViX2NvbDoKICAgICAgICAgICAgc3ViX2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLm5ldyhTVUJf"
        "Q09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBwYXJlbnRfY29sLmNoaWxkcmVuLmxpbmsoc3ViX2Nv"
        "bCkKCiAgICAgICAgbmFtZXNfdG9fZGVsZXRlID0gWwogICAgICAgICAgICBUT1JVU19TS0VMRVRPTl9O"
        "QU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBTUEhFUkVfM19OQU1FLCAKICAgICAgICAg"
        "ICAgVFJJQU5HTEVfQV9OQU1FLCBUUklBTkdMRV9CX05BTUUsIEFSUk9XX05BTUUsIENJUkNMRV9OQU1F"
        "LCBESVNUX1NQSEVSRV9OQU1FCiAgICAgICAgXQogICAgICAgIGZvciBvYmpfbmFtZSBpbiBuYW1lc190"
        "b19kZWxldGU6CiAgICAgICAgICAgIGlmIG9ial9uYW1lIGluIGJweS5kYXRhLm9iamVjdHM6CiAgICAg"
        "ICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShicHkuZGF0YS5vYmplY3RzW29ial9uYW1l"
        "XSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMg6aqo5qC85L2c5oiQCiAgICAgICAgbWVzaCA9IGJw"
        "eS5kYXRhLm1lc2hlcy5uZXcoVE9SVVNfU0tFTEVUT05fTkFNRSkKICAgICAgICBvYmogPSBicHkuZGF0"
        "YS5vYmplY3RzLm5ldyhUT1JVU19TS0VMRVRPTl9OQU1FLCBtZXNoKQogICAgICAgIHN1Yl9jb2wub2Jq"
        "ZWN0cy5saW5rKG9iaikKICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgYm1lc2gub3BzLmNy"
        "ZWF0ZV9jdWJlKGJtLCBzaXplPTEwLjApCiAgICAgICAgYm1lc2gub3BzLmRlbGV0ZShibSwgZ2VvbT1i"
        "bS5mYWNlcywgY29udGV4dD0nRkFDRVMnKQogICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAgICBi"
        "bS5mcmVlKCkKICAgICAgICBza2luX21vZCA9IG9iai5tb2RpZmllcnMubmV3KG5hbWU9IlNraW4iLCB0"
        "eXBlPSdTS0lOJykKICAgICAgICBzdWJfbW9kID0gb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU3ViZGl2"
        "aXNpb24iLCB0eXBlPSdTVUJTVVJGJykKICAgICAgICBzdWJfbW9kLmxldmVscyA9IDIKICAgICAgICBm"
        "b3IgdiBpbiBvYmouZGF0YS5za2luX3ZlcnRpY2VzWzBdLmRhdGE6CiAgICAgICAgICAgIHYucmFkaXVz"
        "ID0gKDAuMiwgMC4yKQogICAgICAgIG9iai5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwo"
        "UFJFRklYKyJNYXRfVG9ydXMiLCBwcm9wcy50b3J1c19jb2xvciwgcHJvcHMudG9ydXNfYWxwaGEpCgog"
        "ICAgICAgICMg55CD5L2T5L2c5oiQCiAgICAgICAgZGVmIGdldF9wb3MobW9kZSwgcHJvcF9wb3MpOgog"
        "ICAgICAgICAgICBpZiBtb2RlID09ICdSQU5ET00nOgogICAgICAgICAgICAgICAgcmV0dXJuIChyYW5k"
        "b20udW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVuaWZvcm0oLTUs"
        "IDUpKQogICAgICAgICAgICByZXR1cm4gcHJvcF9wb3MKCiAgICAgICAgcHJvcHMuc3AxX2FjdHVhbF9w"
        "b3MgPSBnZXRfcG9zKHByb3BzLnNwMV9tb2RlLCBwcm9wcy5zcDFfcG9zKQogICAgICAgIHByb3BzLnNw"
        "Ml9hY3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDJfbW9kZSwgcHJvcHMuc3AyX3BvcykKICAgICAg"
        "ICBwcm9wcy5zcDNfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AzX21vZGUsIHByb3BzLnNwM19w"
        "b3MpCgogICAgICAgIGRlZiBjcmVhdGVfc3BoZXJlKG5hbWUsIGxvYyk6CiAgICAgICAgICAgIG1lc2gg"
        "PSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVj"
        "dHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAg"
        "ICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3Bo"
        "ZXJlKGJtLCB1X3NlZ21lbnRzPTE2LCB2X3NlZ21lbnRzPTgsIHJhZGl1cz0wLjUpCiAgICAgICAgICAg"
        "IGJtLnRvX21lc2gobWVzaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9iai5sb2Nh"
        "dGlvbiA9IGxvYwogICAgICAgICAgICByZXR1cm4gb2JqCgogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BI"
        "RVJFXzFfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhF"
        "UkVfMl9OQU1FLCBwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVS"
        "RV8zX05BTUUsIHByb3BzLnNwM19hY3R1YWxfcG9zKQoKICAgICAgICAjIOS4ieinkuW9ouS9nOaIkAog"
        "ICAgICAgIGRlZiBjcmVhdGVfdHJpYW5nbGUobmFtZSwgcDEsIHAyLCBwMywgY29sb3IsIGFscGhhLCB0"
        "aGlja25lc3MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhuYW1lKQogICAg"
        "ICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1lLCBtZXNoKQogICAgICAgICAgICBz"
        "dWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAg"
        "ICAgICAgdjEgPSBibS52ZXJ0cy5uZXcocDEpCiAgICAgICAgICAgIHYyID0gYm0udmVydHMubmV3KHAy"
        "KQogICAgICAgICAgICB2MyA9IGJtLnZlcnRzLm5ldyhwMykKICAgICAgICAgICAgYm0uZmFjZXMubmV3"
        "KCh2MSwgdjIsIHYzKSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAgICBibS5m"
        "cmVlKCkKICAgICAgICAgICAgc29sID0gb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU29saWRpZnkiLCB0"
        "eXBlPSdTT0xJRElGWScpCiAgICAgICAgICAgIHNvbC50aGlja25lc3MgPSB0aGlja25lc3MKICAgICAg"
        "ICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF8iK25h"
        "bWUsIGNvbG9yLCBhbHBoYSkKCiAgICAgICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0FfTkFNRSwg"
        "KDAsMCwwKSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy50"
        "cmlBX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25lc3MpCiAgICAgICAgY3Jl"
        "YXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0JfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNw"
        "Ml9hY3R1YWxfcG9zLCBwcm9wcy5zcDNfYWN0dWFsX3BvcywgcHJvcHMudHJpQl9jb2xvciwgcHJvcHMu"
        "dHJpX2FscGhhLCBwcm9wcy50cmlfdGhpY2tuZXNzKQoKICAgICAgICAjIOW5vuS9leioiOeulwogICAg"
        "ICAgIGNhbGNfZ2VvX2RhdGEocHJvcHMpCgogICAgICAgICMg6KaW6Kaa5YyW6KaB57Sg44Gu5L2c5oiQ"
        "CiAgICAgICAgZGlzdCA9IHByb3BzLmdlb19wbGFuZV9kaXN0CiAgICAgICAgaWYgZGlzdCA+IDAuMDE6"
        "CiAgICAgICAgICAgICMg55+i5Y2wCiAgICAgICAgICAgIG1lc2hfYXJyID0gYnB5LmRhdGEubWVzaGVz"
        "Lm5ldyhBUlJPV19OQU1FKQogICAgICAgICAgICBvYmpfYXJyID0gYnB5LmRhdGEub2JqZWN0cy5uZXco"
        "QVJST1dfTkFNRSwgbWVzaF9hcnIpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9ial9h"
        "cnIpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgciA9IHByb3BzLmFycm93"
        "X3RoaWNrbmVzcwogICAgICAgICAgICBoZWFkX2wgPSBtaW4oZGlzdCAqIDAuMywgciAqIDQuMCkKICAg"
        "ICAgICAgICAgYm9keV9sID0gZGlzdCAtIGhlYWRfbAogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRl"
        "X2NvbmUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVz"
        "MT1yLCByYWRpdXMyPXIsIGRlcHRoPWJvZHlfbCkKICAgICAgICAgICAgZ2VvbV9oZWFkID0gYm1lc2gu"
        "b3BzLmNyZWF0ZV9jb25lKGJtLCBjYXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9"
        "MTYsIHJhZGl1czE9cioyLjUsIHJhZGl1czI9MC4wLCBkZXB0aD1oZWFkX2wpCiAgICAgICAgICAgIGJt"
        "ZXNoLm9wcy50cmFuc2xhdGUoYm0sIHZlcnRzPVt2IGZvciB2IGluIGdlb21faGVhZFsndmVydHMnXV0s"
        "IHZlYz0oMCwgMCwgYm9keV9sLzIgKyBoZWFkX2wvMikpCiAgICAgICAgICAgIGJtZXNoLm9wcy50cmFu"
        "c2xhdGUoYm0sIHZlcnRzPWJtLnZlcnRzLCB2ZWM9KDAsIDAsIGJvZHlfbC8yKSkKICAgICAgICAgICAg"
        "Ym0udG9fbWVzaChtZXNoX2FycikKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAogICAg"
        "ICAgICAgICBvYmpfYXJyLmxvY2F0aW9uID0gKDAsIDAsIDApCiAgICAgICAgICAgIGZvb3RfdmVjID0g"
        "bWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5nZW9fcGxhbmVfZm9vdCkKICAgICAgICAgICAgcm90X3F1YXQg"
        "PSBtYXRodXRpbHMuVmVjdG9yKCgwLDAsMSkpLnJvdGF0aW9uX2RpZmZlcmVuY2UoZm9vdF92ZWMubm9y"
        "bWFsaXplZCgpKQogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9uX21vZGUgPSAnUVVBVEVSTklPTicK"
        "ICAgICAgICAgICAgb2JqX2Fyci5yb3RhdGlvbl9xdWF0ZXJuaW9uID0gcm90X3F1YXQKICAgICAgICAg"
        "ICAgb2JqX2Fyci5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfQXJy"
        "b3ciLCBwcm9wcy5hcnJvd19jb2xvciwgMS4wKQogICAgICAgICAgICAKICAgICAgICAgICAgIyDliJ3m"
        "nJ/ooajnpLrnirbmhYvjgpLpgannlKgKICAgICAgICAgICAgb2JqX2Fyci5oaWRlX3ZpZXdwb3J0ID0g"
        "bm90IHByb3BzLnNob3dfYXJyb3cKICAgICAgICAgICAgb2JqX2Fyci5oaWRlX3JlbmRlciA9IG5vdCBw"
        "cm9wcy5zaG93X2Fycm93CgogICAgICAgICAgICAjIOWGhgogICAgICAgICAgICBtZXNoX2NpciA9IGJw"
        "eS5kYXRhLm1lc2hlcy5uZXcoQ0lSQ0xFX05BTUUpCiAgICAgICAgICAgIG9ial9jaXIgPSBicHkuZGF0"
        "YS5vYmplY3RzLm5ldyhDSVJDTEVfTkFNRSwgbWVzaF9jaXIpCiAgICAgICAgICAgIHN1Yl9jb2wub2Jq"
        "ZWN0cy5saW5rKG9ial9jaXIpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAg"
        "Ym1lc2gub3BzLmNyZWF0ZV9jaXJjbGUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBz"
        "ZWdtZW50cz0zMiwgcmFkaXVzPXByb3BzLmNpcmNsZV9yYWRpdXMpCiAgICAgICAgICAgIGJtLnRvX21l"
        "c2gobWVzaF9jaXIpCiAgICAgICAgICAgIGJtLmZyZWUoKQoKICAgICAgICAgICAgb2JqX2Npci5sb2Nh"
        "dGlvbiA9IHByb3BzLmdlb19wbGFuZV9mb290CiAgICAgICAgICAgIG5vcm1hbF92ZWMgPSBtYXRodXRp"
        "bHMuVmVjdG9yKHByb3BzLmdlb19wbGFuZV9ub3JtYWwpCiAgICAgICAgICAgIGlmIG5vcm1hbF92ZWMu"
        "bGVuZ3RoID4gMDoKICAgICAgICAgICAgICAgIHJvdF9xdWF0X2NpciA9IG1hdGh1dGlscy5WZWN0b3Io"
        "KDAsMCwxKSkucm90YXRpb25fZGlmZmVyZW5jZShub3JtYWxfdmVjKQogICAgICAgICAgICAgICAgb2Jq"
        "X2Npci5yb3RhdGlvbl9tb2RlID0gJ1FVQVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJv"
        "dGF0aW9uX3F1YXRlcm5pb24gPSByb3RfcXVhdF9jaXIKICAgICAgICAgICAgc29sID0gb2JqX2Npci5t"
        "b2RpZmllcnMubmV3KG5hbWU9IlNvbGlkaWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBz"
        "b2wudGhpY2tuZXNzID0gcHJvcHMuY2lyY2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFj"
        "dGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5j"
        "aXJjbGVfY29sb3IsIHByb3BzLmNpcmNsZV9hbHBoYSkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9i"
        "al9jaXIuaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9wcy5zaG93X2NpcmNsZQogICAgICAgICAgICBvYmpf"
        "Y2lyLmhpZGVfcmVuZGVyID0gbm90IHByb3BzLnNob3dfY2lyY2xlCgogICAgICAgICAgICAjIOmAj+aY"
        "jueQg+S9kwogICAgICAgICAgICBtZXNoX3NwaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcoRElTVF9TUEhF"
        "UkVfTkFNRSkKICAgICAgICAgICAgb2JqX3NwaCA9IGJweS5kYXRhLm9iamVjdHMubmV3KERJU1RfU1BI"
        "RVJFX05BTUUsIG1lc2hfc3BoKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfc3Bo"
        "KQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVf"
        "dXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVudHM9MTYsIHJhZGl1cz1kaXN0KQogICAg"
        "ICAgICAgICBibS50b19tZXNoKG1lc2hfc3BoKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAg"
        "ICAgb2JqX3NwaC5sb2NhdGlvbiA9ICgwLCAwLCAwKQogICAgICAgICAgICBmb3IgcG9seSBpbiBtZXNo"
        "X3NwaC5wb2x5Z29uczoKICAgICAgICAgICAgICAgIHBvbHkudXNlX3Ntb290aCA9IFRydWUKICAgICAg"
        "ICAgICAgb2JqX3NwaC5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRf"
        "RGlzdFNwaGVyZSIsIHByb3BzLmRpc3Rfc3BoZXJlX2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBo"
        "YSkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9zcGguaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9w"
        "cy5zaG93X2Rpc3Rfc3BoZXJlCiAgICAgICAgICAgIG9ial9zcGguaGlkZV9yZW5kZXIgPSBub3QgcHJv"
        "cHMuc2hvd19kaXN0X3NwaGVyZQoKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RB"
        "X09UX0RldGFjaE9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3Rh"
        "LmRldGFjaF9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz44GL44KJ5YiH44KK6Zui"
        "44GXIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFyZW50X2NvbCA9IGJw"
        "eS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlmIHBh"
        "cmVudF9jb2w6CiAgICAgICAgICAgIHBhcmVudF9jb2wubmFtZSA9IFBBUkVOVF9DT0xMRUNUSU9OX05B"
        "TUUgKyAiX0RldGFjaGVkIgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWIh+OCiumb"
        "ouOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9S"
        "ZXNldFByb3BzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yZXNldF9w"
        "cm9wcyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aIu+OBmSIKICAgIGRlZiBleGVjdXRlKHNl"
        "bGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAg"
        "ICAgcmVzZXRfbGlzdCA9IFsKICAgICAgICAgICAgInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhhIiwg"
        "InRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciIsIAog"
        "ICAgICAgICAgICAic2hvd19hcnJvdyIsICJzaG93X2NpcmNsZSIsICJzaG93X2Rpc3Rfc3BoZXJlIiwK"
        "ICAgICAgICAgICAgImFycm93X3RoaWNrbmVzcyIsICJhcnJvd19jb2xvciIsICJjaXJjbGVfcmFkaXVz"
        "IiwgImNpcmNsZV90aGlja25lc3MiLCAiY2lyY2xlX2NvbG9yIiwgImNpcmNsZV9hbHBoYSIsCiAgICAg"
        "ICAgICAgICJkaXN0X3NwaGVyZV9jb2xvciIsICJkaXN0X3NwaGVyZV9hbHBoYSIKICAgICAgICBdCiAg"
        "ICAgICAgZm9yIHAgaW4gcmVzZXRfbGlzdDoKICAgICAgICAgICAgcHJvcHMucHJvcGVydHlfdW5zZXQo"
        "cCkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX1JhbmRvbVJlc2V0KGJw"
        "eS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yYW5kb21fcmVzZXQiCiAgICBi"
        "bF9sYWJlbCA9ICLjg6njg7Pjg4Djg6Dlho3oqIjnrpfvvIbmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShz"
        "ZWxmLCBjb250ZXh0KToKICAgICAgICBicHkub3BzLnRjdGEuY3JlYXRlX29iamVjdHMoKQogICAgICAg"
        "IHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weUdlb0luZm8oYnB5LnR5cGVzLk9w"
        "ZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNvcHlfZ2VvX2luZm8iCiAgICBibF9sYWJlbCA9"
        "ICLlub7kvZXmg4XloLHjgpLjgrPjg5Tjg7wiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToK"
        "ICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIGxpbmVzID0gWwog"
        "ICAgICAgICAgICBmIlNwMSBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0iLAogICAgICAgICAg"
        "ICBmIlNwMSBBbmc6IFg9e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn0sIFk9e3Byb3BzLmdlb19zcDFf"
        "YW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn0iLAogICAgICAgICAgICBmIlNw"
        "MiBEaXN0OiB7cHJvcHMuZ2VvX3NwMl9kaXN0Oi4xZn0iLAogICAgICAgICAgICBmIlNwMiBBbmc6IFg9"
        "e3Byb3BzLmdlb19zcDJfYW5nWzBdOi4xZn0sIFk9e3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn0sIFo9"
        "e3Byb3BzLmdlb19zcDJfYW5nWzJdOi4xZn0iLAogICAgICAgICAgICBmIlBsYW5lIENyb3NzIEFuZ2xl"
        "OiB7cHJvcHMuZ2VvX3BsYW5lX2FuZ2xlOi4xZn0iLAogICAgICAgICAgICBmIlNob3J0ZXN0IERpc3Qg"
        "dG8gUGxhbmUgQjoge3Byb3BzLmdlb19wbGFuZV9kaXN0Oi4xZn0iLAogICAgICAgICAgICBmIlNob3J0"
        "ZXN0IEZvb3QgUG9zOiBYPXtwcm9wcy5nZW9fcGxhbmVfZm9vdFswXTouMWZ9LCBZPXtwcm9wcy5nZW9f"
        "cGxhbmVfZm9vdFsxXTouMWZ9LCBaPXtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTouMWZ9IgogICAgICAg"
        "IF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5l"
        "cykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAg"
        "ICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9PcGVuTGluayhicHkudHlwZXMu"
        "T3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEub3Blbl9saW5rIgogICAgYmxfbGFiZWwgPSAi"
        "44Oq44Oz44Kv44KS6ZaL44GPIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAg"
        "YnB5Lm9wcy53bS51cmxfb3Blbih1cmw9Imh0dHBzOi8vd3d3LmJsZW5kZXIub3JnLyIpCiAgICAgICAg"
        "cmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9EZWxldGVBbGwoYnB5LnR5cGVzLk9wZXJh"
        "dG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmRlbGV0ZV9hbGwiCiAgICBibF9sYWJlbCA9ICLplqLp"
        "gKPlhajliYrpmaQiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwYXJlbnRf"
        "Y29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAg"
        "ICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgZm9yIG9iaiBpbiBwYXJlbnRfY29sLmFsbF9vYmpl"
        "Y3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2JqZWN0cy5yZW1vdmUob2JqLCBkb191bmxpbms9"
        "VHJ1ZSkKICAgICAgICAgICAgYnB5LmRhdGEuY29sbGVjdGlvbnMucmVtb3ZlKHBhcmVudF9jb2wpCiAg"
        "ICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi5YWo5YmK6Zmk44GX44G+44GX44GfIikKICAg"
        "ICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNS4gVUkg44OR44ON44Or"
        "5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RBX1BUX1BhbmVsQmFzZToKICAgIGJsX3NwYWNl"
        "X3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkg"
        "PSAiVENUQSIKCmNsYXNzIFRDVEFfUFRfVmlld0luZm8oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBl"
        "cy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9"
        "ICIxLiDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToK"
        "ICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50"
        "Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnZpZXdfc2VsZWN0ZWQiLCBpY29u"
        "PSdWSUVXWk9PTScpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8i"
        "LCBpY29uPSdGSUxFX1JFRlJFU0gnKQogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJv"
        "eC5sYWJlbCh0ZXh0PWYiQ2VudGVyOiAoe3Byb3BzLnZpZXdfY2VudGVyLng6LjFmfSwge3Byb3BzLnZp"
        "ZXdfY2VudGVyLnk6LjFmfSwge3Byb3BzLnZpZXdfY2VudGVyLno6LjFmfSkiKQogICAgICAgIGJveC5s"
        "YWJlbCh0ZXh0PWYiU2l6ZSAocHgpOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3"
        "X3NpemVbMV19IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIkNhbWVyYSBEaXN0OiB7cHJvcHMudmll"
        "d19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNlICJDYW1lcmEgRGlz"
        "dDogTi9BIikKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuY29weV92aWV3X2luZm8iLCBpY29u"
        "PSdDT1BZRE9XTicpCgpjbGFzcyBUQ1RBX1BUX01haW4oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBl"
        "cy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9tYWluIgogICAgYmxfbGFiZWwgPSAiMi4g"
        "44Oh44Kk44Oz5a6f6KGMIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0"
        "ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuY3JlYXRlX29iamVjdHMi"
        "LCBpY29uPSdQTEFZJywgdGV4dD0i5L2c5oiQICjnlJ/miJDjg7vmm7TmlrApIikKICAgICAgICBsYXlv"
        "dXQub3BlcmF0b3IoInRjdGEuZGV0YWNoX29iamVjdHMiLCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBU"
        "Q1RBX1BUX1NldHRpbmdzKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxf"
        "aWRuYW1lID0gIlRDVEFfUFRfc2V0dGluZ3MiCiAgICBibF9sYWJlbCA9ICIzLiDjg5Hjg6njg6Hjg7zj"
        "gr/oqK3lrpoiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxm"
        "LmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5"
        "b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJlc2V0X3Byb3BzIiwgaWNvbj0nTE9PUF9CQUNLJykKICAgICAgICBi"
        "b3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iVG9ydXMgRnJhbWU6IikKICAg"
        "ICAgICBib3gucHJvcChwcm9wcywgInRvcnVzX2NvbG9yIiwgdGV4dD0iQ29sb3IiKQogICAgICAgIGJv"
        "eC5wcm9wKHByb3BzLCAidG9ydXNfYWxwaGEiLCB0ZXh0PSJBbHBoYSIpCiAgICAgICAgYm94ID0gbGF5"
        "b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZXM6IikKICAgICAgICBmb3IgaSBp"
        "biByYW5nZSgxLCA0KToKICAgICAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgICAgIHJvdy5w"
        "cm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYiU3B7aX0iKQogICAgICAgICAgICBpZiBnZXRh"
        "dHRyKHByb3BzLCBmInNwe2l9X21vZGUiKSA9PSAnTUFOVUFMJzoKICAgICAgICAgICAgICAgIGJveC5w"
        "cm9wKHByb3BzLCBmInNwe2l9X3BvcyIsIHRleHQ9IlhZWiIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJv"
        "eCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRyaWFuZ2xlczoiKQogICAgICAgIGJveC5wcm9wKHBy"
        "b3BzLCAidHJpX3RoaWNrbmVzcyIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiKQog"
        "ICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpQV9jb2xvciIpCiAgICAgICAgYm94LnByb3AocHJvcHMs"
        "ICJ0cmlCX2NvbG9yIikKICAgICAgICAKICAgICAgICAjIOihqOekui/pnZ7ooajnpLrjg4jjgrDjg6vj"
        "gajoqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0i"
        "U2hvcnRlc3QgRGlzdGFuY2UgVmlzdWFsczoiKQogICAgICAgIAogICAgICAgIHJvdyA9IGJveC5yb3co"
        "KQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd19hcnJvdyIsIGljb249J1RSSUFfUklHSFQnIGlm"
        "IG5vdCBwcm9wcy5zaG93X2Fycm93IGVsc2UgJ1RSSUFfRE9XTicpCiAgICAgICAgcm93LnByb3AocHJv"
        "cHMsICJzaG93X2NpcmNsZSIsIGljb249J1RSSUFfUklHSFQnIGlmIG5vdCBwcm9wcy5zaG93X2NpcmNs"
        "ZSBlbHNlICdUUklBX0RPV04nKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd19kaXN0X3NwaGVy"
        "ZSIsIHRleHQ9IlNwaGVyZSIsIGljb249J1RSSUFfUklHSFQnIGlmIG5vdCBwcm9wcy5zaG93X2Rpc3Rf"
        "c3BoZXJlIGVsc2UgJ1RSSUFfRE9XTicpCgogICAgICAgICMg44OB44Kn44OD44Kv44GM5YWl44Gj44Gm"
        "44GE44KL5aC05ZCI44Gu44G/6Kit5a6a6aCF55uu44KS6KGo56S6CiAgICAgICAgaWYgcHJvcHMuc2hv"
        "d19hcnJvdzoKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAg"
        "ICBjb2wucHJvcChwcm9wcywgImFycm93X3RoaWNrbmVzcyIpCiAgICAgICAgICAgIGNvbC5wcm9wKHBy"
        "b3BzLCAiYXJyb3dfY29sb3IiKQogICAgICAgIAogICAgICAgIGlmIHByb3BzLnNob3dfY2lyY2xlOgog"
        "ICAgICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgICAgIGNvbC5zZXBh"
        "cmF0b3IoKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImNpcmNsZV9yYWRpdXMiKQogICAgICAg"
        "ICAgICBjb2wucHJvcChwcm9wcywgImNpcmNsZV90aGlja25lc3MiKQogICAgICAgICAgICBjb2wucHJv"
        "cChwcm9wcywgImNpcmNsZV9jb2xvciIpCiAgICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiY2lyY2xl"
        "X2FscGhhIikKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd19kaXN0X3NwaGVyZToKICAg"
        "ICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAgICBjb2wuc2VwYXJh"
        "dG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJkaXN0X3NwaGVyZV9jb2xvciIpCiAgICAg"
        "ICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfYWxwaGEiKQoKY2xhc3MgVENUQV9QVF9H"
        "ZW9JbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0g"
        "IlRDVEFfUFRfZ2VvX2luZm8iCiAgICBibF9sYWJlbCA9ICI0LiDlub7kvZXmg4XloLEiCiAgICBkZWYg"
        "ZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHBy"
        "b3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3Rh"
        "LnJhbmRvbV9yZXNldCIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgYm94ID0g"
        "bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZSAxIChmcm9tIDAsMCwwKToi"
        "KQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0i"
        "KQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9"
        "wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9"
        "wrAiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMiAoZnJvbSAwLDAsMCk6IikKICAgICAg"
        "ICBib3gubGFiZWwodGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IikKICAgICAg"
        "ICBib3gubGFiZWwodGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfcKwLCB7cHJv"
        "cHMuZ2VvX3NwMl9hbmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfcKwIikKICAg"
        "ICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iUGxh"
        "bmUgQ3Jvc3MgQW5nbGUgKEEgJiBCKToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmdsZTog"
        "e3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9wrAiKQogICAgICAgIAogICAgICAgIGJveCA9IGxheW91"
        "dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJQbGFuZSBCIGZyb20gMCwwLDA6IikKICAgICAg"
        "ICBib3gubGFiZWwodGV4dD1mIiAgU2hvcnRlc3QgRGlzdCAoUmFkaXVzKToge3Byb3BzLmdlb19wbGFu"
        "ZV9kaXN0Oi4xZn0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBGb290IChUb3VjaCBQb2ludCk6"
        "ICh7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFmfSwge3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4x"
        "Zn0sIHtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTouMWZ9KSIpCgogICAgICAgIGxheW91dC5vcGVyYXRv"
        "cigidGN0YS5jb3B5X2dlb19pbmZvIiwgaWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9TeXN0"
        "ZW0oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENU"
        "QV9QVF9zeXN0ZW0iCiAgICBibF9sYWJlbCA9ICI1LiDjgrfjgrnjg4bjg6AiCiAgICBkZWYgZHJhdyhz"
        "ZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIGxheW91dC5v"
        "cGVyYXRvcigidGN0YS5vcGVuX2xpbmsiLCBpY29uPSdVUkwnKQogICAgICAgIGxheW91dC5vcGVyYXRv"
        "cigidGN0YS5kZWxldGVfYWxsIiwgaWNvbj0nVFJBU0gnLCB0ZXh0PSLjgqLjg4njgqrjg7PliYrpmaQg"
        "KOWFqOOCr+ODquOCoikiKQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDYuIOeZu+mMsuWHpueQhgojID09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT0KY2xhc3NlcyA9ICgKICAgIFRDVEFfUHJvcGVydGllcywKICAgIFRDVEFfT1RfVmlld1Nl"
        "bGVjdGVkLAogICAgVENUQV9PVF9VcGRhdGVWaWV3SW5mbywKICAgIFRDVEFfT1RfQ29weVZpZXdJbmZv"
        "LAogICAgVENUQV9PVF9DcmVhdGVPYmplY3RzLAogICAgVENUQV9PVF9EZXRhY2hPYmplY3RzLAogICAg"
        "VENUQV9PVF9SZXNldFByb3BzLAogICAgVENUQV9PVF9SYW5kb21SZXNldCwKICAgIFRDVEFfT1RfQ29w"
        "eUdlb0luZm8sCiAgICBUQ1RBX09UX09wZW5MaW5rLAogICAgVENUQV9PVF9EZWxldGVBbGwsCiAgICBU"
        "Q1RBX1BUX1ZpZXdJbmZvLAogICAgVENUQV9QVF9NYWluLAogICAgVENUQV9QVF9TZXR0aW5ncywKICAg"
        "IFRDVEFfUFRfR2VvSW5mbywKICAgIFRDVEFfUFRfU3lzdGVtLAopCgpkZWYgcmVnaXN0ZXIoKToKICAg"
        "IGZvciBjbHMgaW4gY2xhc3NlczoKICAgICAgICBicHkudXRpbHMucmVnaXN0ZXJfY2xhc3MoY2xzKQog"
        "ICAgYnB5LnR5cGVzLlNjZW5lLnRjdGFfcHJvcHMgPSBicHkucHJvcHMuUG9pbnRlclByb3BlcnR5KHR5"
        "cGU9VENUQV9Qcm9wZXJ0aWVzKQoKZGVmIHVucmVnaXN0ZXIoKToKICAgIGZvciBjbHMgaW4gcmV2ZXJz"
        "ZWQoY2xhc3Nlcyk6CiAgICAgICAgYnB5LnV0aWxzLnVucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgZGVs"
        "IGJweS50eXBlcy5TY2VuZS50Y3RhX3Byb3BzCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAg"
        "cmVnaXN0ZXIoKQ=="
        )
    },
    {
        "name": "平面2つなす角度 20260713_002",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
        "ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCAzLCAwKSwKICAgICJi"
        "bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
        "IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjga7lub7kvZXmg4XloLHoqIjnrpfjgajmnIDnn63o"
        "t53pm6Ljga7oppbopprljJbvvIjnn6LljbDjg7vlhobjg7vmjqXjgZnjgovnkIPkvZPvvIkiLAogICAg"
        "ImNhdGVnb3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0"
        "aAppbXBvcnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneac"
        "n+WApOWumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElP"
        "Tl9OQU1FID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2Jq"
        "ZWN0cyIKVE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0g"
        "IlNwaGVyZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVy"
        "ZV8zIgpUUklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFu"
        "Z2xlX0IiCkFSUk9XX05BTUUgPSAiQXJyb3dfU2hvcnRlc3REaXN0IgpDSVJDTEVfTkFNRSA9ICJDaXJj"
        "bGVfUGxhbmVCIgpESVNUX1NQSEVSRV9OQU1FID0gIlNwaGVyZV9TaG9ydGVzdERpc3QiICMg5paw6KaP"
        "6L+95YqgOiDot53pm6LjgpLnpLrjgZnmjqXjgZnjgovnkIPkvZMKCiMgPT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIu"
        "IOODl+ODreODkeODhuOCo+Wumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3MgVENUQV9Qcm9wZXJ0aWVz"
        "KGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgICMg44OI44O844Op44K56aqo5qC86Kit5a6aCiAg"
        "ICB0b3J1c19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iVG9ydXMgQ29s"
        "b3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4xLCAwLjUsIDAuOCwg"
        "MS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRvcnVzX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9w"
        "ZXJ0eShuYW1lPSJUb3J1cyBBbHBoYSIsIGRlZmF1bHQ9MC41LCBtaW49MC4wLCBtYXg9MS4wKQogICAg"
        "CiAgICAjIOmFjee9ruODouODvOODiQogICAgbW9kZV9vcHRpb25zID0gWygnUkFORE9NJywgIuODqeOD"
        "s+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH5a6a5L2N572uIiwgIiIpXQogICAgc3AxX21vZGU6"
        "IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVm"
        "YXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBicHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1v"
        "ZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRPTScpCiAgICBzcDNfbW9kZTogYnB5"
        "LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0"
        "PSdSQU5ET00nKQogICAgCiAgICAjIOaMh+WumuW6p+aomeWFpeWKmwogICAgc3AxX3BvczogYnB5LnBy"
        "b3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4w"
        "LCAyLjApKQogICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9z"
        "aXRpb24gMiIsIGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkpCiAgICBzcDNfcG9zOiBicHkucHJvcHMu"
        "RmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAzIiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0y"
        "LjApKQogICAgCiAgICAjIOWGhemDqOioiOeul+eUqO+8iOWun+W6p+aome+8iQogICAgc3AxX2FjdHVh"
        "bF9wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKICAgIHNw"
        "Ml9hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkp"
        "CiAgICBzcDNfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0o"
        "MCwwLDApKQoKICAgICMg5LiJ6KeS5b2i6Kit5a6aCiAgICB0cmlfdGhpY2tuZXNzOiBicHkucHJvcHMu"
        "RmxvYXRQcm9wZXJ0eShuYW1lPSJUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWluPTAuMCkKICAgIHRy"
        "aV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQWxwaGEiLCBkZWZhdWx0PTAuMSwg"
        "bWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUFfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3Bl"
        "cnR5KG5hbWU9IkNvbG9yIEEiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0o"
        "MC44LCAwLjIsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUJfY29sb3I6IGJweS5w"
        "cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNvbG9yIEIiLCBzdWJ0eXBlPSdDT0xPUl9HQU1N"
        "QScsIHNpemU9NCwgZGVmYXVsdD0oMC4yLCAwLjgsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkK"
        "CiAgICAjIOefouWNsOioreWumgogICAgYXJyb3dfdGhpY2tuZXNzOiBicHkucHJvcHMuRmxvYXRQcm9w"
        "ZXJ0eShuYW1lPSJBcnJvdyBUaGlja25lc3MiLCBkZWZhdWx0PTAuMDUsIG1pbj0wLjAxLCBtYXg9MS4w"
        "KQogICAgYXJyb3dfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkFycm93"
        "IENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwgMC44LCAw"
        "LjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDlhoboqK3lrpoKICAgIGNpcmNsZV9yYWRp"
        "dXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBSYWRpdXMiLCBkZWZhdWx0PTMu"
        "MCwgbWluPTAuMSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5h"
        "bWU9IkNpcmNsZSBUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWluPTAuMCkKICAgIGNpcmNsZV9jb2xv"
        "cjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQ2lyY2xlIENvbG9yIiwgc3VidHlw"
        "ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwgMC41LCAwLjAsIDAuNCksIG1pbj0w"
        "LjAsIG1heD0xLjApCiAgICBjaXJjbGVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9"
        "IkNpcmNsZSBBbHBoYSIsIGRlZmF1bHQ9MC40LCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg6Led6Zui"
        "55CD5L2T6Kit5a6aIChORVcpCiAgICBkaXN0X3NwaGVyZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
        "dG9yUHJvcGVydHkobmFtZT0iRGlzdCBTcGhlcmUgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScs"
        "IHNpemU9NCwgZGVmYXVsdD0oMC4wLCAwLjgsIDEuMCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAg"
        "IGRpc3Rfc3BoZXJlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJEaXN0IFNwaGVy"
        "ZSBBbHBoYSIsIGRlZmF1bHQ9MC4wNiwgbWluPTAuMCwgbWF4PTEuMCkgIyDopoHmnJvjga7liJ3mnJ/l"
        "gKQwLjA2CgogICAgIyDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEKICAgIHZpZXdfY2VudGVyOiBicHku"
        "cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJWaWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6"
        "IGJweS5wcm9wcy5JbnRWZWN0b3JQcm9wZXJ0eShuYW1lPSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikK"
        "ICAgIHZpZXdfZGlzdGFuY2U6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFu"
        "Y2UiKQogICAgCiAgICAjIOW5vuS9leaDheWgsQogICAgZ2VvX3NwMV9kaXN0OiBicHkucHJvcHMuRmxv"
        "YXRQcm9wZXJ0eSgpCiAgICBnZW9fc3AxX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHko"
        "c2l6ZT0zKQogICAgZ2VvX3NwMl9kaXN0OiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9f"
        "c3AyX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQogICAgZ2VvX3BsYW5l"
        "X2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9fcGxhbmVfZGlzdDogYnB5LnBy"
        "b3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5lX2Zvb3Q6IGJweS5wcm9wcy5GbG9hdFZlY3Rv"
        "clByb3BlcnR5KHNpemU9MykKICAgIGdlb19wbGFuZV9ub3JtYWw6IGJweS5wcm9wcy5GbG9hdFZlY3Rv"
        "clByb3BlcnR5KHNpemU9MykKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bj"
        "gqPplqLmlbAKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09CmRlZiBnZXRfM2Rfdmlld19jb250ZXh0KCk6CiAgICBmb3Ig"
        "d2luZG93IGluIGJweS5jb250ZXh0LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgZm9yIGFy"
        "ZWEgaW4gd2luZG93LnNjcmVlbi5hcmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09ICdWSUVX"
        "XzNEJzoKICAgICAgICAgICAgICAgIGZvciByZWdpb24gaW4gYXJlYS5yZWdpb25zOgogICAgICAgICAg"
        "ICAgICAgICAgIGlmIHJlZ2lvbi50eXBlID09ICdXSU5ET1cnOgogICAgICAgICAgICAgICAgICAgICAg"
        "ICByZXR1cm4gYXJlYSwgcmVnaW9uLCBhcmVhLnNwYWNlcy5hY3RpdmUKICAgIHJldHVybiBOb25lLCBO"
        "b25lLCBOb25lCgpkZWYgY3JlYXRlX21hdGVyaWFsKG5hbWUsIGNvbG9yLCBhbHBoYSk6CiAgICBtYXQg"
        "PSBicHkuZGF0YS5tYXRlcmlhbHMuZ2V0KG5hbWUpCiAgICBpZiBub3QgbWF0OgogICAgICAgIG1hdCA9"
        "IGJweS5kYXRhLm1hdGVyaWFscy5uZXcobmFtZSkKICAgIG1hdC51c2Vfbm9kZXMgPSBUcnVlCiAgICAK"
        "ICAgIGlmIGhhc2F0dHIobWF0LCAiYmxlbmRfbWV0aG9kIik6CiAgICAgICAgbWF0LmJsZW5kX21ldGhv"
        "ZCA9ICdCTEVORCcKICAgIGlmIGhhc2F0dHIobWF0LCAic2hhZG93X21ldGhvZCIpOgogICAgICAgIG1h"
        "dC5zaGFkb3dfbWV0aG9kID0gJ05PTkUnCiAgICAKICAgIGJzZGYgPSBtYXQubm9kZV90cmVlLm5vZGVz"
        "LmdldCgiUHJpbmNpcGxlZCBCU0RGIikKICAgIGlmIGJzZGY6CiAgICAgICAgYnNkZi5pbnB1dHNbIkJh"
        "c2UgQ29sb3IiXS5kZWZhdWx0X3ZhbHVlID0gY29sb3IKICAgICAgICBic2RmLmlucHV0c1siQWxwaGEi"
        "XS5kZWZhdWx0X3ZhbHVlID0gYWxwaGEKICAgIHJldHVybiBtYXQKCmRlZiBjYWxjX2dlb19kYXRhKHBy"
        "b3BzKToKICAgIGRlZiBjYWxjX2Rpc3RfYW5nbGUodmVjKToKICAgICAgICBkaXN0ID0gdmVjLmxlbmd0"
        "aAogICAgICAgIGlmIGRpc3QgPT0gMDogcmV0dXJuIDAsIDAsIDAsIDAKICAgICAgICBuID0gdmVjLm5v"
        "cm1hbGl6ZWQoKQogICAgICAgIGF4ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLngpKQogICAgICAg"
        "IGF5ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLnkpKQogICAgICAgIGF6ID0gbWF0aC5kZWdyZWVz"
        "KG1hdGguYWNvcyhuLnopKQogICAgICAgIHJldHVybiBkaXN0LCBheCwgYXksIGF6CgogICAgcDAgPSBt"
        "YXRodXRpbHMuVmVjdG9yKCgwLCAwLCAwKSkKICAgIHAxID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5z"
        "cDFfYWN0dWFsX3BvcykKICAgIHAyID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDJfYWN0dWFsX3Bv"
        "cykKICAgIHAzID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICBkMSwg"
        "YXgxLCBheTEsIGF6MSA9IGNhbGNfZGlzdF9hbmdsZShwMSkKICAgIHByb3BzLmdlb19zcDFfZGlzdCA9"
        "IGQxCiAgICBwcm9wcy5nZW9fc3AxX2FuZyA9IChheDEsIGF5MSwgYXoxKQoKICAgIGQyLCBheDIsIGF5"
        "MiwgYXoyID0gY2FsY19kaXN0X2FuZ2xlKHAyKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0ID0gZDIKICAg"
        "IHByb3BzLmdlb19zcDJfYW5nID0gKGF4MiwgYXkyLCBhejIpCgogICAgdjEgPSBwMSAtIHAwCiAgICB2"
        "MiA9IHAyIC0gcDAKICAgIHYzID0gcDIgLSBwMQogICAgdjQgPSBwMyAtIHAxCiAgICBuMSA9IHYxLmNy"
        "b3NzKHYyKQogICAgbjIgPSB2My5jcm9zcyh2NCkKICAgIAogICAgaWYgbjEubGVuZ3RoID4gMC4wMDAx"
        "IGFuZCBuMi5sZW5ndGggPiAwLjAwMDE6CiAgICAgICAgbjFfbm9ybSA9IG4xLm5vcm1hbGl6ZWQoKQog"
        "ICAgICAgIG4yX25vcm0gPSBuMi5ub3JtYWxpemVkKCkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9y"
        "bWFsID0gbjJfbm9ybQogICAgICAgIGRvdCA9IG1heCgtMS4wLCBtaW4oMS4wLCBuMV9ub3JtLmRvdChu"
        "Ml9ub3JtKSkpCiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2FuZ2xlID0gbWF0aC5kZWdyZWVzKG1hdGgu"
        "YWNvcyhkb3QpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAg"
        "ICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwxKQoKICAgIGlmIG4yLmxlbmd0aCA+IDAu"
        "MDAwMToKICAgICAgICB0ID0gbjJfbm9ybS5kb3QocDEpCiAgICAgICAgSCA9IG4yX25vcm0gKiB0CiAg"
        "ICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSBhYnModCkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVf"
        "Zm9vdCA9IEgKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSAwLjAKICAgICAg"
        "ICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9ICgwLCAwLCAwKQoKIyA9PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNC4g44Kq"
        "44Oa44Os44O844K/44O8ICjlh6bnkIbjg63jgrjjg4Pjgq8pCiMgPT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBU"
        "Q1RBX09UX1ZpZXdTZWxlY3RlZChicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRj"
        "dGEudmlld19zZWxlY3RlZCIKICAgIGJsX2xhYmVsID0gIumBuOaKnuOCkueUu+mdouS4reWkruOBqyIK"
        "ICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5vcHMudmlldzNkLnZpZXdf"
        "c2VsZWN0ZWQoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfVXBkYXRl"
        "Vmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnVwZGF0ZV92"
        "aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4XloLHmm7TmlrAiCiAgICBkZWYgZXhlY3V0"
        "ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBhcmVhLCByZWdpb24sIHNwYWNlID0gZ2V0XzNkX3ZpZXdf"
        "Y29udGV4dCgpCiAgICAgICAgaWYgbm90IHNwYWNlOgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J1dB"
        "Uk5JTkcnfSwgIjNE44OT44Ol44O844GM6KaL44Gk44GL44KK44G+44Gb44KTIikKICAgICAgICAgICAg"
        "cmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0gc3BhY2UucmVnaW9uXzNkCiAgICAgICAg"
        "cHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBwcm9wcy52aWV3X2NlbnRlciA9"
        "IHJ2M2Qudmlld19sb2NhdGlvbgogICAgICAgIHByb3BzLnZpZXdfc2l6ZSA9IChyZWdpb24ud2lkdGgs"
        "IHJlZ2lvbi5oZWlnaHQpCiAgICAgICAgaWYgcnYzZC52aWV3X3BlcnNwZWN0aXZlID09ICdQRVJTUCc6"
        "CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBydjNkLnZpZXdfZGlzdGFuY2UKICAgICAg"
        "ICBlbHNlOgogICAgICAgICAgICBwcm9wcy52aWV3X2Rpc3RhbmNlID0gMC4wIAogICAgICAgIHJldHVy"
        "biB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weVZpZXdJbmZvKGJweS50eXBlcy5PcGVyYXRv"
        "cik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIuOD"
        "k+ODpeODvOaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgog"
        "ICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGluZXMgPSBbCiAg"
        "ICAgICAgICAgIGYiQ2VudGVyOiBYPXtwcm9wcy52aWV3X2NlbnRlci54Oi4xZn0sIFk9e3Byb3BzLnZp"
        "ZXdfY2VudGVyLnk6LjFmfSwgWj17cHJvcHMudmlld19jZW50ZXIuejouMWZ9IiwKICAgICAgICAgICAg"
        "ZiJTaXplOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3X3NpemVbMV19IiwKICAg"
        "ICAgICAgICAgZiJEaXN0YW5jZToge3Byb3BzLnZpZXdfZGlzdGFuY2U6LjFmfSIgaWYgcHJvcHMudmll"
        "d19kaXN0YW5jZSA+IDAgZWxzZSAiRGlzdGFuY2U6IE4vQSIKICAgICAgICBdCiAgICAgICAgY29udGV4"
        "dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpvaW4obGluZXMpCiAgICAgICAgc2VsZi5y"
        "ZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJ"
        "TklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ3JlYXRlT2JqZWN0cyhicHkudHlwZXMuT3BlcmF0b3IpOgog"
        "ICAgYmxfaWRuYW1lID0gInRjdGEuY3JlYXRlX29iamVjdHMiCiAgICBibF9sYWJlbCA9ICLkvZzmiJAi"
        "CiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
        "bmUudGN0YV9wcm9wcwogICAgICAgIAogICAgICAgIHBhcmVudF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0"
        "aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBub3QgcGFyZW50X2NvbDoK"
        "ICAgICAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLm5ldyhQQVJFTlRfQ09M"
        "TEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNjZW5lLmNvbGxlY3Rpb24uY2hpbGRyZW4u"
        "bGluayhwYXJlbnRfY29sKQogICAgICAgICAgICAKICAgICAgICBzdWJfY29sID0gYnB5LmRhdGEuY29s"
        "bGVjdGlvbnMuZ2V0KFNVQl9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgbm90IHN1Yl9jb2w6CiAg"
        "ICAgICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5uZXcoU1VCX0NPTExFQ1RJT05f"
        "TkFNRSkKICAgICAgICAgICAgcGFyZW50X2NvbC5jaGlsZHJlbi5saW5rKHN1Yl9jb2wpCgogICAgICAg"
        "ICMg5pei5a2Y5YmK6ZmkCiAgICAgICAgbmFtZXNfdG9fZGVsZXRlID0gWwogICAgICAgICAgICBUT1JV"
        "U19TS0VMRVRPTl9OQU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBTUEhFUkVfM19OQU1F"
        "LCAKICAgICAgICAgICAgVFJJQU5HTEVfQV9OQU1FLCBUUklBTkdMRV9CX05BTUUsIEFSUk9XX05BTUUs"
        "IENJUkNMRV9OQU1FLCBESVNUX1NQSEVSRV9OQU1FCiAgICAgICAgXQogICAgICAgIGZvciBvYmpfbmFt"
        "ZSBpbiBuYW1lc190b19kZWxldGU6CiAgICAgICAgICAgIGlmIG9ial9uYW1lIGluIGJweS5kYXRhLm9i"
        "amVjdHM6CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShicHkuZGF0YS5vYmpl"
        "Y3RzW29ial9uYW1lXSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMgMS4g6aqo5qC85L2c5oiQCiAg"
        "ICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcoVE9SVVNfU0tFTEVUT05fTkFNRSkKICAgICAg"
        "ICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhUT1JVU19TS0VMRVRPTl9OQU1FLCBtZXNoKQogICAg"
        "ICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAg"
        "ICAgYm1lc2gub3BzLmNyZWF0ZV9jdWJlKGJtLCBzaXplPTEwLjApCiAgICAgICAgYm1lc2gub3BzLmRl"
        "bGV0ZShibSwgZ2VvbT1ibS5mYWNlcywgY29udGV4dD0nRkFDRVMnKQogICAgICAgIGJtLnRvX21lc2go"
        "bWVzaCkKICAgICAgICBibS5mcmVlKCkKICAgICAgICBza2luX21vZCA9IG9iai5tb2RpZmllcnMubmV3"
        "KG5hbWU9IlNraW4iLCB0eXBlPSdTS0lOJykKICAgICAgICBzdWJfbW9kID0gb2JqLm1vZGlmaWVycy5u"
        "ZXcobmFtZT0iU3ViZGl2aXNpb24iLCB0eXBlPSdTVUJTVVJGJykKICAgICAgICBzdWJfbW9kLmxldmVs"
        "cyA9IDIKICAgICAgICBmb3IgdiBpbiBvYmouZGF0YS5za2luX3ZlcnRpY2VzWzBdLmRhdGE6CiAgICAg"
        "ICAgICAgIHYucmFkaXVzID0gKDAuMiwgMC4yKQogICAgICAgIG9iai5hY3RpdmVfbWF0ZXJpYWwgPSBj"
        "cmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfVG9ydXMiLCBwcm9wcy50b3J1c19jb2xvciwgcHJvcHMu"
        "dG9ydXNfYWxwaGEpCgogICAgICAgICMgMi4g55CD5L2T5L2c5oiQCiAgICAgICAgZGVmIGdldF9wb3Mo"
        "bW9kZSwgcHJvcF9wb3MpOgogICAgICAgICAgICBpZiBtb2RlID09ICdSQU5ET00nOgogICAgICAgICAg"
        "ICAgICAgcmV0dXJuIChyYW5kb20udW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSwg"
        "cmFuZG9tLnVuaWZvcm0oLTUsIDUpKQogICAgICAgICAgICByZXR1cm4gcHJvcF9wb3MKCiAgICAgICAg"
        "cHJvcHMuc3AxX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3BzLnNwMV9tb2RlLCBwcm9wcy5zcDFfcG9z"
        "KQogICAgICAgIHByb3BzLnNwMl9hY3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDJfbW9kZSwgcHJv"
        "cHMuc3AyX3BvcykKICAgICAgICBwcm9wcy5zcDNfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3Az"
        "X21vZGUsIHByb3BzLnNwM19wb3MpCgogICAgICAgIGRlZiBjcmVhdGVfc3BoZXJlKG5hbWUsIGxvYyk6"
        "CiAgICAgICAgICAgIG1lc2ggPSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9i"
        "aiA9IGJweS5kYXRhLm9iamVjdHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2Jq"
        "ZWN0cy5saW5rKG9iaikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVz"
        "aC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1X3NlZ21lbnRzPTE2LCB2X3NlZ21lbnRzPTgsIHJhZGl1"
        "cz0wLjUpCiAgICAgICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAg"
        "ICAgICAgICAgIG9iai5sb2NhdGlvbiA9IGxvYwogICAgICAgICAgICByZXR1cm4gb2JqCgogICAgICAg"
        "IGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzFfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICAgICAg"
        "Y3JlYXRlX3NwaGVyZShTUEhFUkVfMl9OQU1FLCBwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgICAgICBj"
        "cmVhdGVfc3BoZXJlKFNQSEVSRV8zX05BTUUsIHByb3BzLnNwM19hY3R1YWxfcG9zKQoKICAgICAgICAj"
        "IDMuIOS4ieinkuW9ouS9nOaIkAogICAgICAgIGRlZiBjcmVhdGVfdHJpYW5nbGUobmFtZSwgcDEsIHAy"
        "LCBwMywgY29sb3IsIGFscGhhLCB0aGlja25lc3MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEu"
        "bWVzaGVzLm5ldyhuYW1lKQogICAgICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1l"
        "LCBtZXNoKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIGJt"
        "ID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgdjEgPSBibS52ZXJ0cy5uZXcocDEpCiAgICAgICAgICAg"
        "IHYyID0gYm0udmVydHMubmV3KHAyKQogICAgICAgICAgICB2MyA9IGJtLnZlcnRzLm5ldyhwMykKICAg"
        "ICAgICAgICAgYm0uZmFjZXMubmV3KCh2MSwgdjIsIHYzKSkKICAgICAgICAgICAgYm0udG9fbWVzaCht"
        "ZXNoKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgc29sID0gb2JqLm1vZGlmaWVycy5u"
        "ZXcobmFtZT0iU29saWRpZnkiLCB0eXBlPSdTT0xJRElGWScpCiAgICAgICAgICAgIHNvbC50aGlja25l"
        "c3MgPSB0aGlja25lc3MKICAgICAgICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRl"
        "cmlhbChQUkVGSVgrIk1hdF8iK25hbWUsIGNvbG9yLCBhbHBoYSkKCiAgICAgICAgY3JlYXRlX3RyaWFu"
        "Z2xlKFRSSUFOR0xFX0FfTkFNRSwgKDAsMCwwKSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNw"
        "Ml9hY3R1YWxfcG9zLCBwcm9wcy50cmlBX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90"
        "aGlja25lc3MpCiAgICAgICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0JfTkFNRSwgcHJvcHMuc3Ax"
        "X2FjdHVhbF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy5zcDNfYWN0dWFsX3BvcywgcHJv"
        "cHMudHJpQl9jb2xvciwgcHJvcHMudHJpX2FscGhhLCBwcm9wcy50cmlfdGhpY2tuZXNzKQoKICAgICAg"
        "ICAjIDQuIOW5vuS9leioiOeulwogICAgICAgIGNhbGNfZ2VvX2RhdGEocHJvcHMpCgogICAgICAgICMg"
        "NS4g5pyA55+t6Led6Zui44Gu6KaW6Kaa5YyW77yI55+i5Y2w44O75YaG44O76YCP5piO55CD5L2T77yJ"
        "CiAgICAgICAgZGlzdCA9IHByb3BzLmdlb19wbGFuZV9kaXN0CiAgICAgICAgaWYgZGlzdCA+IDAuMDE6"
        "CiAgICAgICAgICAgICMgLS0tIOefouWNsCAtLS0KICAgICAgICAgICAgbWVzaF9hcnIgPSBicHkuZGF0"
        "YS5tZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAgIG9ial9hcnIgPSBicHkuZGF0YS5vYmpl"
        "Y3RzLm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxp"
        "bmsob2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICByID0gcHJv"
        "cHMuYXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRfbCA9IG1pbihkaXN0ICogMC4zLCByICog"
        "NC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVhZF9sCiAgICAgICAgICAgIGJtZXNoLm9w"
        "cy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2"
        "LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9sKQogICAgICAgICAgICBnZW9tX2hlYWQg"
        "PSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBz"
        "ZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0wLjAsIGRlcHRoPWhlYWRfbCkKICAgICAg"
        "ICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2"
        "ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRfbC8yKSkKICAgICAgICAgICAgYm1lc2gu"
        "b3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZlYz0oMCwgMCwgYm9keV9sLzIpKQogICAg"
        "ICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAg"
        "ICAgCiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9v"
        "dF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFuZV9mb290KQogICAgICAgICAgICBy"
        "b3RfcXVhdCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSkucm90YXRpb25fZGlmZmVyZW5jZShmb290"
        "X3ZlYy5ub3JtYWxpemVkKCkpCiAgICAgICAgICAgIG9ial9hcnIucm90YXRpb25fbW9kZSA9ICdRVUFU"
        "RVJOSU9OJwogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9uX3F1YXRlcm5pb24gPSByb3RfcXVhdAog"
        "ICAgICAgICAgICBvYmpfYXJyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgr"
        "Ik1hdF9BcnJvdyIsIHByb3BzLmFycm93X2NvbG9yLCAxLjApCgogICAgICAgICAgICAjIC0tLSDlhoYg"
        "KOedgOW8vueCueOBruazoue0iykgLS0tCiAgICAgICAgICAgIG1lc2hfY2lyID0gYnB5LmRhdGEubWVz"
        "aGVzLm5ldyhDSVJDTEVfTkFNRSkKICAgICAgICAgICAgb2JqX2NpciA9IGJweS5kYXRhLm9iamVjdHMu"
        "bmV3KENJUkNMRV9OQU1FLCBtZXNoX2NpcikKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmso"
        "b2JqX2NpcikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMu"
        "Y3JlYXRlX2NpcmNsZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3RyaXM9RmFsc2UsIHNlZ21lbnRzPTMy"
        "LCByYWRpdXM9cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoX2Np"
        "cikKICAgICAgICAgICAgYm0uZnJlZSgpCgogICAgICAgICAgICBvYmpfY2lyLmxvY2F0aW9uID0gcHJv"
        "cHMuZ2VvX3BsYW5lX2Zvb3QKICAgICAgICAgICAgbm9ybWFsX3ZlYyA9IG1hdGh1dGlscy5WZWN0b3Io"
        "cHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkKICAgICAgICAgICAgaWYgbm9ybWFsX3ZlYy5sZW5ndGggPiAw"
        "OgogICAgICAgICAgICAgICAgcm90X3F1YXRfY2lyID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5y"
        "b3RhdGlvbl9kaWZmZXJlbmNlKG5vcm1hbF92ZWMpCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0"
        "aW9uX21vZGUgPSAnUVVBVEVSTklPTicKICAgICAgICAgICAgICAgIG9ial9jaXIucm90YXRpb25fcXVh"
        "dGVybmlvbiA9IHJvdF9xdWF0X2NpcgoKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMu"
        "bmV3KG5hbWU9IlNvbGlkaWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tu"
        "ZXNzID0gcHJvcHMuY2lyY2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRl"
        "cmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29s"
        "b3IsIHByb3BzLmNpcmNsZV9hbHBoYSkKCiAgICAgICAgICAgICMgLS0tIOmAj+aYjueQg+S9kyAo5bmz"
        "6Z2i44Gr5o6l44GZ44KL44K344Oj44Oc44Oz546JKSBORVcgLS0tCiAgICAgICAgICAgIG1lc2hfc3Bo"
        "ID0gYnB5LmRhdGEubWVzaGVzLm5ldyhESVNUX1NQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfc3Bo"
        "ID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoRElTVF9TUEhFUkVfTkFNRSwgbWVzaF9zcGgpCiAgICAgICAg"
        "ICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9ial9zcGgpCiAgICAgICAgICAgIAogICAgICAgICAgICBi"
        "bSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgICMg5Y2K5b6EID0g5Y6f54K544GL44KJ44Gu5pyA55+t"
        "6Led6ZuiKGRpc3QpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2Vn"
        "bWVudHM9MzIsIHZfc2VnbWVudHM9MTYsIHJhZGl1cz1kaXN0KQogICAgICAgICAgICBibS50b19tZXNo"
        "KG1lc2hfc3BoKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgCiAgICAgICAgICAgICMg"
        "5Lit5b+D44Gv5Y6f54K5KDAsMCwwKeOAgeOCueODoOODvOOCuuOCt+OCp+ODvOODiemBqeeUqAogICAg"
        "ICAgICAgICBvYmpfc3BoLmxvY2F0aW9uID0gKDAsIDAsIDApCiAgICAgICAgICAgIGZvciBwb2x5IGlu"
        "IG1lc2hfc3BoLnBvbHlnb25zOgogICAgICAgICAgICAgICAgcG9seS51c2Vfc21vb3RoID0gVHJ1ZQog"
        "ICAgICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9zcGguYWN0aXZlX21hdGVyaWFsID0gY3JlYXRl"
        "X21hdGVyaWFsKFBSRUZJWCsiTWF0X0Rpc3RTcGhlcmUiLCBwcm9wcy5kaXN0X3NwaGVyZV9jb2xvciwg"
        "cHJvcHMuZGlzdF9zcGhlcmVfYWxwaGEpCgogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNz"
        "IFRDVEFfT1RfRGV0YWNoT2JqZWN0cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0g"
        "InRjdGEuZGV0YWNoX29iamVjdHMiCiAgICBibF9sYWJlbCA9ICLjgqLjg4njgqrjg7PjgYvjgonliIfj"
        "gorpm6LjgZciCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwYXJlbnRfY29s"
        "ID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAg"
        "aWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbC5uYW1lID0gUEFSRU5UX0NPTExFQ1RJ"
        "T05fTkFNRSArICJfRGV0YWNoZWQiCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi5YiH"
        "44KK6Zui44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RB"
        "X09UX1Jlc2V0UHJvcHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnJl"
        "c2V0X3Byb3BzIgogICAgYmxfbGFiZWwgPSAi5Yid5pyf5YCk44Gr5oi744GZIgogICAgZGVmIGV4ZWN1"
        "dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMK"
        "ICAgICAgICByZXNldF9saXN0ID0gWwogICAgICAgICAgICAidG9ydXNfY29sb3IiLCAidG9ydXNfYWxw"
        "aGEiLCAidHJpX3RoaWNrbmVzcyIsICJ0cmlfYWxwaGEiLCAidHJpQV9jb2xvciIsICJ0cmlCX2NvbG9y"
        "IiwgCiAgICAgICAgICAgICJhcnJvd190aGlja25lc3MiLCAiYXJyb3dfY29sb3IiLCAiY2lyY2xlX3Jh"
        "ZGl1cyIsICJjaXJjbGVfdGhpY2tuZXNzIiwgImNpcmNsZV9jb2xvciIsICJjaXJjbGVfYWxwaGEiLAog"
        "ICAgICAgICAgICAiZGlzdF9zcGhlcmVfY29sb3IiLCAiZGlzdF9zcGhlcmVfYWxwaGEiCiAgICAgICAg"
        "XQogICAgICAgIGZvciBwIGluIHJlc2V0X2xpc3Q6CiAgICAgICAgICAgIHByb3BzLnByb3BlcnR5X3Vu"
        "c2V0KHApCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9SYW5kb21SZXNl"
        "dChicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEucmFuZG9tX3Jlc2V0Igog"
        "ICAgYmxfbGFiZWwgPSAi44Op44Oz44OA44Og5YaN6KiI566X77yG5pu05pawIgogICAgZGVmIGV4ZWN1"
        "dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy50Y3RhLmNyZWF0ZV9vYmplY3RzKCkKICAg"
        "ICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0NvcHlHZW9JbmZvKGJweS50eXBl"
        "cy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X2dlb19pbmZvIgogICAgYmxfbGFi"
        "ZWwgPSAi5bm+5L2V5oOF5aCx44KS44Kz44OU44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4"
        "dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9"
        "IFsKICAgICAgICAgICAgZiJTcDEgRGlzdDoge3Byb3BzLmdlb19zcDFfZGlzdDouMWZ9IiwKICAgICAg"
        "ICAgICAgZiJTcDEgQW5nOiBYPXtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9f"
        "c3AxX2FuZ1sxXTouMWZ9LCBaPXtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAg"
        "ZiJTcDIgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IiwKICAgICAgICAgICAgZiJTcDIgQW5n"
        "OiBYPXtwcm9wcy5nZW9fc3AyX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9fc3AyX2FuZ1sxXTouMWZ9"
        "LCBaPXtwcm9wcy5nZW9fc3AyX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAgZiJQbGFuZSBDcm9zcyBB"
        "bmdsZToge3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9IiwKICAgICAgICAgICAgZiJTaG9ydGVzdCBE"
        "aXN0IHRvIFBsYW5lIEI6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IiwKICAgICAgICAgICAgZiJT"
        "aG9ydGVzdCBGb290IFBvczogWD17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFmfSwgWT17cHJvcHMu"
        "Z2VvX3BsYW5lX2Zvb3RbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSIKICAg"
        "ICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpvaW4o"
        "bGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8i"
        "KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfT3BlbkxpbmsoYnB5LnR5"
        "cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLm9wZW5fbGluayIKICAgIGJsX2xhYmVs"
        "ID0gIuODquODs+OCr+OCkumWi+OBjyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
        "ICAgIGJweS5vcHMud20udXJsX29wZW4odXJsPSJodHRwczovL3d3dy5ibGVuZGVyLm9yZy8iKQogICAg"
        "ICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfRGVsZXRlQWxsKGJweS50eXBlcy5P"
        "cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5kZWxldGVfYWxsIgogICAgYmxfbGFiZWwgPSAi"
        "6Zai6YCj5YWo5YmK6ZmkIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFy"
        "ZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQog"
        "ICAgICAgIGlmIHBhcmVudF9jb2w6CiAgICAgICAgICAgIGZvciBvYmogaW4gcGFyZW50X2NvbC5hbGxf"
        "b2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMucmVtb3ZlKG9iaiwgZG9fdW5s"
        "aW5rPVRydWUpCiAgICAgICAgICAgIGJweS5kYXRhLmNvbGxlY3Rpb25zLnJlbW92ZShwYXJlbnRfY29s"
        "KQogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWFqOWJiumZpOOBl+OBvuOBl+OBnyIp"
        "CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDUuIFVJIOODkeOD"
        "jeODq+Wumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3MgVENUQV9QVF9QYW5lbEJhc2U6CiAgICBibF9z"
        "cGFjZV90eXBlID0gJ1ZJRVdfM0QnCiAgICBibF9yZWdpb25fdHlwZSA9ICdVSScKICAgIGJsX2NhdGVn"
        "b3J5ID0gIlRDVEEiCgpjbGFzcyBUQ1RBX1BUX1ZpZXdJbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
        "dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfdmlld19pbmZvIgogICAgYmxfbGFi"
        "ZWwgPSAiMS4g44OT44Ol44O844Od44O844OI5oOF5aCxIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4"
        "dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
        "bmUudGN0YV9wcm9wcwogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS52aWV3X3NlbGVjdGVkIiwg"
        "aWNvbj0nVklFV1pPT00nKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS51cGRhdGVfdmlld19p"
        "bmZvIiwgaWNvbj0nRklMRV9SRUZSRVNIJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAg"
        "ICBib3gubGFiZWwodGV4dD1mIkNlbnRlcjogKHtwcm9wcy52aWV3X2NlbnRlci54Oi4xZn0sIHtwcm9w"
        "cy52aWV3X2NlbnRlci55Oi4xZn0sIHtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0pIikKICAgICAgICBi"
        "b3gubGFiZWwodGV4dD1mIlNpemUgKHB4KTogVz17cHJvcHMudmlld19zaXplWzBdfSwgSD17cHJvcHMu"
        "dmlld19zaXplWzFdfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJDYW1lcmEgRGlzdDoge3Byb3Bz"
        "LnZpZXdfZGlzdGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiQ2FtZXJh"
        "IERpc3Q6IE4vQSIpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfdmlld19pbmZvIiwg"
        "aWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9NYWluKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
        "dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfbWFpbiIKICAgIGJsX2xhYmVsID0g"
        "IjIuIOODoeOCpOODs+Wun+ihjCIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxh"
        "eW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNyZWF0ZV9vYmpl"
        "Y3RzIiwgaWNvbj0nUExBWScsIHRleHQ9IuS9nOaIkCAo55Sf5oiQ44O75pu05pawKSIpCiAgICAgICAg"
        "bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRldGFjaF9vYmplY3RzIiwgaWNvbj0nVU5MSU5LRUQnKQoKY2xh"
        "c3MgVENUQV9QVF9TZXR0aW5ncyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAg"
        "IGJsX2lkbmFtZSA9ICJUQ1RBX1BUX3NldHRpbmdzIgogICAgYmxfbGFiZWwgPSAiMy4g44OR44Op44Oh"
        "44O844K/6Kit5a6aIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0g"
        "c2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAg"
        "IGxheW91dC5vcGVyYXRvcigidGN0YS5yZXNldF9wcm9wcyIsIGljb249J0xPT1BfQkFDSycpCiAgICAg"
        "ICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRvcnVzIEZyYW1lOiIp"
        "CiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0b3J1c19jb2xvciIsIHRleHQ9IkNvbG9yIikKICAgICAg"
        "ICBib3gucHJvcChwcm9wcywgInRvcnVzX2FscGhhIiwgdGV4dD0iQWxwaGEiKQogICAgICAgIGJveCA9"
        "IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmVzOiIpCiAgICAgICAgZm9y"
        "IGkgaW4gcmFuZ2UoMSwgNCk6CiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICBy"
        "b3cucHJvcChwcm9wcywgZiJzcHtpfV9tb2RlIiwgdGV4dD1mIlNwe2l9IikKICAgICAgICAgICAgaWYg"
        "Z2V0YXR0cihwcm9wcywgZiJzcHtpfV9tb2RlIikgPT0gJ01BTlVBTCc6CiAgICAgICAgICAgICAgICBi"
        "b3gucHJvcChwcm9wcywgZiJzcHtpfV9wb3MiLCB0ZXh0PSJYWVoiKQogICAgICAgIGJveCA9IGxheW91"
        "dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUcmlhbmdsZXM6IikKICAgICAgICBib3gucHJv"
        "cChwcm9wcywgInRyaV90aGlja25lc3MiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX2FscGhh"
        "IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRyaUFfY29sb3IiKQogICAgICAgIGJveC5wcm9wKHBy"
        "b3BzLCAidHJpQl9jb2xvciIpCiAgICAgICAgCiAgICAgICAgIyDmnIDnn63ot53pm6LoppbopprljJbj"
        "ga7oqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0i"
        "U2hvcnRlc3QgRGlzdGFuY2UgVmlzdWFsczoiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAiYXJyb3df"
        "dGhpY2tuZXNzIikKICAgICAgICBib3gucHJvcChwcm9wcywgImFycm93X2NvbG9yIikKICAgICAgICBi"
        "b3gucHJvcChwcm9wcywgImNpcmNsZV9yYWRpdXMiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAiY2ly"
        "Y2xlX3RoaWNrbmVzcyIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiKQogICAg"
        "ICAgIGJveC5wcm9wKHByb3BzLCAiY2lyY2xlX2FscGhhIikKICAgICAgICBib3gucHJvcChwcm9wcywg"
        "ImRpc3Rfc3BoZXJlX2NvbG9yIikKICAgICAgICBib3gucHJvcChwcm9wcywgImRpc3Rfc3BoZXJlX2Fs"
        "cGhhIikKCmNsYXNzIFRDVEFfUFRfR2VvSW5mbyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBh"
        "bmVsKToKICAgIGJsX2lkbmFtZSA9ICJUQ1RBX1BUX2dlb19pbmZvIgogICAgYmxfbGFiZWwgPSAiNC4g"
        "5bm+5L2V5oOF5aCxIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0g"
        "c2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAg"
        "IGxheW91dC5vcGVyYXRvcigidGN0YS5yYW5kb21fcmVzZXQiLCBpY29uPSdGSUxFX1JFRlJFU0gnKQog"
        "ICAgICAgIAogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJT"
        "cGhlcmUgMSAoZnJvbSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgRGlzdDoge3By"
        "b3BzLmdlb19zcDFfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nOiB7cHJv"
        "cHMuZ2VvX3NwMV9hbmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMV9hbmdbMV06LjFmfcKwLCB7cHJv"
        "cHMuZ2VvX3NwMV9hbmdbMl06LjFmfcKwIikKICAgICAgICBib3gubGFiZWwodGV4dD0iU3BoZXJlIDIg"
        "KGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIERpc3Q6IHtwcm9wcy5nZW9f"
        "c3AyX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEFuZzoge3Byb3BzLmdlb19z"
        "cDJfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn3CsCwge3Byb3BzLmdlb19z"
        "cDJfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAg"
        "ICAgYm94LmxhYmVsKHRleHQ9IlBsYW5lIENyb3NzIEFuZ2xlIChBICYgQik6IikKICAgICAgICBib3gu"
        "bGFiZWwodGV4dD1mIiAgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfcKwIikKICAgICAg"
        "ICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iUGxhbmUg"
        "QiBmcm9tIDAsMCwwOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIFNob3J0ZXN0IERpc3QgKFJh"
        "ZGl1cyk6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1m"
        "IiAgRm9vdCAoVG91Y2ggUG9pbnQpOiAoe3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIHtwcm9w"
        "cy5nZW9fcGxhbmVfZm9vdFsxXTouMWZ9LCB7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSkiKQoK"
        "ICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuY29weV9nZW9faW5mbyIsIGljb249J0NPUFlET1dO"
        "JykKCmNsYXNzIFRDVEFfUFRfU3lzdGVtKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwp"
        "OgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc3lzdGVtIgogICAgYmxfbGFiZWwgPSAiNS4g44K344K5"
        "44OG44OgIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5s"
        "YXlvdXQKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEub3Blbl9saW5rIiwgaWNvbj0nVVJMJykK"
        "ICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuZGVsZXRlX2FsbCIsIGljb249J1RSQVNIJywgdGV4"
        "dD0i44Ki44OJ44Kq44Oz5YmK6ZmkICjlhajjgq/jg6rjgqIpIikKCgojID09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA2"
        "LiDnmbvpjLLlh6bnkIYKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzZXMgPSAoCiAgICBUQ1RBX1Byb3BlcnRp"
        "ZXMsCiAgICBUQ1RBX09UX1ZpZXdTZWxlY3RlZCwKICAgIFRDVEFfT1RfVXBkYXRlVmlld0luZm8sCiAg"
        "ICBUQ1RBX09UX0NvcHlWaWV3SW5mbywKICAgIFRDVEFfT1RfQ3JlYXRlT2JqZWN0cywKICAgIFRDVEFf"
        "T1RfRGV0YWNoT2JqZWN0cywKICAgIFRDVEFfT1RfUmVzZXRQcm9wcywKICAgIFRDVEFfT1RfUmFuZG9t"
        "UmVzZXQsCiAgICBUQ1RBX09UX0NvcHlHZW9JbmZvLAogICAgVENUQV9PVF9PcGVuTGluaywKICAgIFRD"
        "VEFfT1RfRGVsZXRlQWxsLAogICAgVENUQV9QVF9WaWV3SW5mbywKICAgIFRDVEFfUFRfTWFpbiwKICAg"
        "IFRDVEFfUFRfU2V0dGluZ3MsCiAgICBUQ1RBX1BUX0dlb0luZm8sCiAgICBUQ1RBX1BUX1N5c3RlbSwK"
        "KQoKZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIGNsYXNzZXM6CiAgICAgICAgYnB5LnV0aWxz"
        "LnJlZ2lzdGVyX2NsYXNzKGNscykKICAgIGJweS50eXBlcy5TY2VuZS50Y3RhX3Byb3BzID0gYnB5LnBy"
        "b3BzLlBvaW50ZXJQcm9wZXJ0eSh0eXBlPVRDVEFfUHJvcGVydGllcykKCmRlZiB1bnJlZ2lzdGVyKCk6"
        "CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lz"
        "dGVyX2NsYXNzKGNscykKICAgIGRlbCBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcwoKaWYgX19uYW1l"
        "X18gPT0gIl9fbWFpbl9fIjoKICAgIHJlZ2lzdGVyKCkKCgoK"
        )
    },
    {
        "name": "平面2つなす角度 20260713_001",
        "code_b64": (
        "YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
        "ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCAwLCAxKSwKICAgICJi"
        "bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
        "IiwKICAgICJkZXNjcmlwdGlvbiI6ICLjg4jjg7zjg6njgrnpqqjmoLzjgajnkIPkvZPjgpLnlKjjgYTj"
        "gZ/nqbrplpPluqfmqJnjg7vlub7kvZXmg4XloLHjga7oqIjnrpfjgajooajnpLoiLAogICAgImNhdGVn"
        "b3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0aAppbXBv"
        "cnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneacn+WApOWu"
        "mue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElPTl9OQU1F"
        "ID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2JqZWN0cyIK"
        "VE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0gIlNwaGVy"
        "ZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVyZV8zIgpU"
        "UklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFuZ2xlX0Ii"
        "CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09CiMgMi4g44OX44Ot44OR44OG44Kj5a6a576pCiMgPT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PQpjbGFzcyBUQ1RBX1Byb3BlcnRpZXMoYnB5LnR5cGVzLlByb3BlcnR5R3JvdXApOgogICAgdG9ydXNf"
        "Y29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlRvcnVzIENvbG9yIiwgc3Vi"
        "dHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMSwgMC41LCAwLjgsIDEuMCksIG1p"
        "bj0wLjAsIG1heD0xLjApCiAgICB0b3J1c19hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFt"
        "ZT0iVG9ydXMgQWxwaGEiLCBkZWZhdWx0PTAuNSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgbW9k"
        "ZV9vcHRpb25zID0gWygnUkFORE9NJywgIuODqeODs+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH"
        "5a6a5L2N572uIiwgIiIpXQogICAgc3AxX21vZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0i"
        "TW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBi"
        "cHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1"
        "bHQ9J1JBTkRPTScpCiAgICBzcDNfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2Rl"
        "IiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgCiAgICBzcDFfcG9zOiBi"
        "cHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAxIiwgZGVmYXVsdD0oMi4w"
        "LCAyLjAsIDIuMCkpCiAgICBzcDJfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
        "PSJQb3NpdGlvbiAyIiwgZGVmYXVsdD0oLTIuMCwgLTIuMCwgMi4wKSkKICAgIHNwM19wb3M6IGJweS5w"
        "cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlBvc2l0aW9uIDMiLCBkZWZhdWx0PSgwLjAsIDMu"
        "MCwgLTIuMCkpCiAgICAKICAgIHNwMV9hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
        "ZXJ0eShkZWZhdWx0PSgwLDAsMCkpCiAgICBzcDJfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVj"
        "dG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AzX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5G"
        "bG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKCiAgICB0cmlfdGhpY2tuZXNzOiBicHku"
        "cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWluPTAuMCkK"
        "ICAgIHRyaV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQWxwaGEiLCBkZWZhdWx0"
        "PTAuMSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUFfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3Rv"
        "clByb3BlcnR5KG5hbWU9IkNvbG9yIEEiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVm"
        "YXVsdD0oMC44LCAwLjIsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUJfY29sb3I6"
        "IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNvbG9yIEIiLCBzdWJ0eXBlPSdDT0xP"
        "Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4yLCAwLjgsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4"
        "PTEuMCkKCiAgICB2aWV3X2NlbnRlcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
        "VmlldyBDZW50ZXIiKQogICAgdmlld19zaXplOiBicHkucHJvcHMuSW50VmVjdG9yUHJvcGVydHkobmFt"
        "ZT0iVmlldyBTaXplIChQeCkiLCBzaXplPTIpCiAgICB2aWV3X2Rpc3RhbmNlOiBicHkucHJvcHMuRmxv"
        "YXRQcm9wZXJ0eShuYW1lPSJWaWV3IERpc3RhbmNlIikKICAgIAogICAgZ2VvX3NwMV9kaXN0OiBicHku"
        "cHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9fc3AxX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9y"
        "UHJvcGVydHkoc2l6ZT0zKQogICAgZ2VvX3NwMl9kaXN0OiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgp"
        "CiAgICBnZW9fc3AyX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQogICAg"
        "Z2VvX3BsYW5lX2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCgoKIyA9PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "CiMgMy4g44Om44O844OG44Kj44Oq44OG44Kj6Zai5pWwCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkZWYgZ2V0XzNk"
        "X3ZpZXdfY29udGV4dCgpOgogICAgZm9yIHdpbmRvdyBpbiBicHkuY29udGV4dC53aW5kb3dfbWFuYWdl"
        "ci53aW5kb3dzOgogICAgICAgIGZvciBhcmVhIGluIHdpbmRvdy5zY3JlZW4uYXJlYXM6CiAgICAgICAg"
        "ICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6CiAgICAgICAgICAgICAgICBmb3IgcmVnaW9uIGlu"
        "IGFyZWEucmVnaW9uczoKICAgICAgICAgICAgICAgICAgICBpZiByZWdpb24udHlwZSA9PSAnV0lORE9X"
        "JzoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFyZWEsIHJlZ2lvbiwgYXJlYS5zcGFjZXMu"
        "YWN0aXZlCiAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQoKZGVmIGNyZWF0ZV9tYXRlcmlhbChuYW1l"
        "LCBjb2xvciwgYWxwaGEpOgogICAgIiIiQmxlbmRlciA0LjIgKEVFVkVFLU5leHQpIOWvvuW/nOODnuOD"
        "huODquOCouODq+S9nOaIkCIiIgogICAgbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxzLmdldChuYW1lKQog"
        "ICAgaWYgbm90IG1hdDoKICAgICAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMubmV3KG5hbWUpCiAg"
        "ICBtYXQudXNlX25vZGVzID0gVHJ1ZQogICAgCiAgICAjIEJsZW5kZXIgNC4y5Lul6ZmN44Gn5YmK6Zmk"
        "44GV44KM44GfQVBJ44Gr44Ki44Kv44K744K544GX44Gq44GE44KI44GG44Gr5Zue6YG/ICjml6dWZXLn"
        "lKjlvozmlrnkupLmj5spCiAgICBpZiBoYXNhdHRyKG1hdCwgImJsZW5kX21ldGhvZCIpOgogICAgICAg"
        "IG1hdC5ibGVuZF9tZXRob2QgPSAnQkxFTkQnCiAgICBpZiBoYXNhdHRyKG1hdCwgInNoYWRvd19tZXRo"
        "b2QiKToKICAgICAgICBtYXQuc2hhZG93X21ldGhvZCA9ICdOT05FJwogICAgCiAgICBic2RmID0gbWF0"
        "Lm5vZGVfdHJlZS5ub2Rlcy5nZXQoIlByaW5jaXBsZWQgQlNERiIpCiAgICBpZiBic2RmOgogICAgICAg"
        "IGJzZGYuaW5wdXRzWyJCYXNlIENvbG9yIl0uZGVmYXVsdF92YWx1ZSA9IGNvbG9yCiAgICAgICAgYnNk"
        "Zi5pbnB1dHNbIkFscGhhIl0uZGVmYXVsdF92YWx1ZSA9IGFscGhhCiAgICByZXR1cm4gbWF0CgpkZWYg"
        "Y2FsY19nZW9fZGF0YShwcm9wcyk6CiAgICBkZWYgY2FsY19kaXN0X2FuZ2xlKHZlYyk6CiAgICAgICAg"
        "ZGlzdCA9IHZlYy5sZW5ndGgKICAgICAgICBpZiBkaXN0ID09IDA6IHJldHVybiAwLCAwLCAwLCAwCiAg"
        "ICAgICAgbiA9IHZlYy5ub3JtYWxpemVkKCkKICAgICAgICBheCA9IG1hdGguZGVncmVlcyhtYXRoLmFj"
        "b3Mobi54KSkKICAgICAgICBheSA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi55KSkKICAgICAgICBh"
        "eiA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi56KSkKICAgICAgICByZXR1cm4gZGlzdCwgYXgsIGF5"
        "LCBhegoKICAgIHAwID0gbWF0aHV0aWxzLlZlY3RvcigoMCwgMCwgMCkpCiAgICBwMSA9IG1hdGh1dGls"
        "cy5WZWN0b3IocHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICBwMiA9IG1hdGh1dGlscy5WZWN0b3IocHJv"
        "cHMuc3AyX2FjdHVhbF9wb3MpCiAgICBwMyA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AzX2FjdHVh"
        "bF9wb3MpCgogICAgZDEsIGF4MSwgYXkxLCBhejEgPSBjYWxjX2Rpc3RfYW5nbGUocDEpCiAgICBwcm9w"
        "cy5nZW9fc3AxX2Rpc3QgPSBkMQogICAgcHJvcHMuZ2VvX3NwMV9hbmcgPSAoYXgxLCBheTEsIGF6MSkK"
        "CiAgICBkMiwgYXgyLCBheTIsIGF6MiA9IGNhbGNfZGlzdF9hbmdsZShwMikKICAgIHByb3BzLmdlb19z"
        "cDJfZGlzdCA9IGQyCiAgICBwcm9wcy5nZW9fc3AyX2FuZyA9IChheDIsIGF5MiwgYXoyKQoKICAgIG4x"
        "ID0gKHAxIC0gcDApLmNyb3NzKHAyIC0gcDApCiAgICBuMiA9IChwMiAtIHAxKS5jcm9zcyhwMyAtIHAx"
        "KQogICAgCiAgICBpZiBuMS5sZW5ndGggPiAwLjAwMDEgYW5kIG4yLmxlbmd0aCA+IDAuMDAwMToKICAg"
        "ICAgICBuMS5ub3JtYWxpemUoKQogICAgICAgIG4yLm5vcm1hbGl6ZSgpCiAgICAgICAgZG90ID0gbWF4"
        "KC0xLjAsIG1pbigxLjAsIG4xLmRvdChuMikpKQogICAgICAgIHByb3BzLmdlb19wbGFuZV9hbmdsZSA9"
        "IG1hdGguZGVncmVlcyhtYXRoLmFjb3MoZG90KSkKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2VvX3Bs"
        "YW5lX2FuZ2xlID0gMC4wCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWH"
        "pueQhuODreOCuOODg+OCrykKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVk"
        "KGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgog"
        "ICAgYmxfbGFiZWwgPSAi6YG45oqe44KS55S76Z2i5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2Vs"
        "ZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy52aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAg"
        "cmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMu"
        "T3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xh"
        "YmVsID0gIueUu+mdouaDheWgseabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgog"
        "ICAgICAgIGFyZWEsIHJlZ2lvbiwgc3BhY2UgPSBnZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBp"
        "ZiBub3Qgc3BhY2U6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAiM0Tjg5Pjg6Xj"
        "g7zjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQn"
        "fQogICAgICAgIHJ2M2QgPSBzcGFjZS5yZWdpb25fM2QKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
        "bmUudGN0YV9wcm9wcwogICAgICAgIHByb3BzLnZpZXdfY2VudGVyID0gcnYzZC52aWV3X2xvY2F0aW9u"
        "CiAgICAgICAgcHJvcHMudmlld19zaXplID0gKHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodCkKICAg"
        "ICAgICBpZiBydjNkLnZpZXdfcGVyc3BlY3RpdmUgPT0gJ1BFUlNQJzoKICAgICAgICAgICAgcHJvcHMu"
        "dmlld19kaXN0YW5jZSA9IHJ2M2Qudmlld19kaXN0YW5jZQogICAgICAgIGVsc2U6CiAgICAgICAgICAg"
        "IHByb3BzLnZpZXdfZGlzdGFuY2UgPSAwLjAgCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xh"
        "c3MgVENUQV9PVF9Db3B5Vmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9"
        "ICJ0Y3RhLmNvcHlfdmlld19pbmZvIgogICAgYmxfbGFiZWwgPSAi44OT44Ol44O85oOF5aCx44KS44Kz"
        "44OU44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250"
        "ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgZiJDZW50ZXI6"
        "IFg9e3Byb3BzLnZpZXdfY2VudGVyLng6LjFmfSwgWT17cHJvcHMudmlld19jZW50ZXIueTouMWZ9LCBa"
        "PXtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0iLAogICAgICAgICAgICBmIlNpemU6IFc9e3Byb3BzLnZp"
        "ZXdfc2l6ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6ZVsxXX0iLAogICAgICAgICAgICBmIkRpc3RhbmNl"
        "OiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNl"
        "ICJEaXN0YW5jZTogTi9BIgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNs"
        "aXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOC"
        "s+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENU"
        "QV9PVF9DcmVhdGVPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0"
        "YS5jcmVhdGVfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuS9nOaIkCIKICAgIGRlZiBleGVjdXRlKHNl"
        "bGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAg"
        "ICAgCiAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09M"
        "TEVDVElPTl9OQU1FKQogICAgICAgIGlmIG5vdCBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRf"
        "Y29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMubmV3KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAg"
        "ICAgICAgIGNvbnRleHQuc2NlbmUuY29sbGVjdGlvbi5jaGlsZHJlbi5saW5rKHBhcmVudF9jb2wpCiAg"
        "ICAgICAgICAgIAogICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoU1VCX0NP"
        "TExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBub3Qgc3ViX2NvbDoKICAgICAgICAgICAgc3ViX2NvbCA9"
        "IGJweS5kYXRhLmNvbGxlY3Rpb25zLm5ldyhTVUJfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBw"
        "YXJlbnRfY29sLmNoaWxkcmVuLmxpbmsoc3ViX2NvbCkKCiAgICAgICAgZm9yIG9ial9uYW1lIGluIFtU"
        "T1JVU19TS0VMRVRPTl9OQU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBTUEhFUkVfM19O"
        "QU1FLCBUUklBTkdMRV9BX05BTUUsIFRSSUFOR0xFX0JfTkFNRV06CiAgICAgICAgICAgIGlmIG9ial9u"
        "YW1lIGluIGJweS5kYXRhLm9iamVjdHM6CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJl"
        "bW92ZShicHkuZGF0YS5vYmplY3RzW29ial9uYW1lXSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMg"
        "6aqo5qC85L2c5oiQCiAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcoVE9SVVNfU0tFTEVU"
        "T05fTkFNRSkKICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhUT1JVU19TS0VMRVRPTl9O"
        "QU1FLCBtZXNoKQogICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAgICAKICAgICAg"
        "ICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgYm1lc2gub3BzLmNyZWF0ZV9jdWJlKGJtLCBzaXplPTEw"
        "LjApCiAgICAgICAgYm1lc2gub3BzLmRlbGV0ZShibSwgZ2VvbT1ibS5mYWNlcywgY29udGV4dD0nRkFD"
        "RVMnKQogICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAgICBibS5mcmVlKCkKICAgICAgICAKICAg"
        "ICAgICBza2luX21vZCA9IG9iai5tb2RpZmllcnMubmV3KG5hbWU9IlNraW4iLCB0eXBlPSdTS0lOJykK"
        "ICAgICAgICBzdWJfbW9kID0gb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU3ViZGl2aXNpb24iLCB0eXBl"
        "PSdTVUJTVVJGJykKICAgICAgICBzdWJfbW9kLmxldmVscyA9IDIKICAgICAgICBmb3IgdiBpbiBvYmou"
        "ZGF0YS5za2luX3ZlcnRpY2VzWzBdLmRhdGE6CiAgICAgICAgICAgIHYucmFkaXVzID0gKDAuMiwgMC4y"
        "KQogICAgICAgIAogICAgICAgIG9iai5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJF"
        "RklYKyJNYXRfVG9ydXMiLCBwcm9wcy50b3J1c19jb2xvciwgcHJvcHMudG9ydXNfYWxwaGEpCgogICAg"
        "ICAgICMg55CD5L2T5L2c5oiQCiAgICAgICAgZGVmIGdldF9wb3MobW9kZSwgcHJvcF9wb3MpOgogICAg"
        "ICAgICAgICBpZiBtb2RlID09ICdSQU5ET00nOgogICAgICAgICAgICAgICAgcmV0dXJuIChyYW5kb20u"
        "dW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVuaWZvcm0oLTUsIDUp"
        "KQogICAgICAgICAgICByZXR1cm4gcHJvcF9wb3MKCiAgICAgICAgcHJvcHMuc3AxX2FjdHVhbF9wb3Mg"
        "PSBnZXRfcG9zKHByb3BzLnNwMV9tb2RlLCBwcm9wcy5zcDFfcG9zKQogICAgICAgIHByb3BzLnNwMl9h"
        "Y3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDJfbW9kZSwgcHJvcHMuc3AyX3BvcykKICAgICAgICBw"
        "cm9wcy5zcDNfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AzX21vZGUsIHByb3BzLnNwM19wb3Mp"
        "CgogICAgICAgIGRlZiBjcmVhdGVfc3BoZXJlKG5hbWUsIGxvYyk6CiAgICAgICAgICAgIG1lc2ggPSBi"
        "cHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMu"
        "bmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAg"
        "ICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJl"
        "KGJtLCB1X3NlZ21lbnRzPTE2LCB2X3NlZ21lbnRzPTgsIHJhZGl1cz0wLjUpCiAgICAgICAgICAgIGJt"
        "LnRvX21lc2gobWVzaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9iai5sb2NhdGlv"
        "biA9IGxvYwogICAgICAgICAgICByZXR1cm4gb2JqCgogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJF"
        "XzFfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVf"
        "Ml9OQU1FLCBwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8z"
        "X05BTUUsIHByb3BzLnNwM19hY3R1YWxfcG9zKQoKICAgICAgICAjIOS4ieinkuW9ouS9nOaIkAogICAg"
        "ICAgIGRlZiBjcmVhdGVfdHJpYW5nbGUobmFtZSwgcDEsIHAyLCBwMywgY29sb3IsIGFscGhhLCB0aGlj"
        "a25lc3MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhuYW1lKQogICAgICAg"
        "ICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1lLCBtZXNoKQogICAgICAgICAgICBzdWJf"
        "Y29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIAogICAgICAgICAgICBibSA9IGJtZXNoLm5l"
        "dygpCiAgICAgICAgICAgIHYxID0gYm0udmVydHMubmV3KHAxKQogICAgICAgICAgICB2MiA9IGJtLnZl"
        "cnRzLm5ldyhwMikKICAgICAgICAgICAgdjMgPSBibS52ZXJ0cy5uZXcocDMpCiAgICAgICAgICAgIGJt"
        "LmZhY2VzLm5ldygodjEsIHYyLCB2MykpCiAgICAgICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAg"
        "ICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAogICAgICAgICAgICBzb2wgPSBvYmoubW9kaWZpZXJz"
        "Lm5ldyhuYW1lPSJTb2xpZGlmeSIsIHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAgc29sLnRoaWNr"
        "bmVzcyA9IHRoaWNrbmVzcwogICAgICAgICAgICAKICAgICAgICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlh"
        "bCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF8iK25hbWUsIGNvbG9yLCBhbHBoYSkKCiAgICAg"
        "ICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0FfTkFNRSwgKDAsMCwwKSwgcHJvcHMuc3AxX2FjdHVh"
        "bF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy50cmlBX2NvbG9yLCBwcm9wcy50cmlfYWxw"
        "aGEsIHByb3BzLnRyaV90aGlja25lc3MpCiAgICAgICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0Jf"
        "TkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy5zcDNf"
        "YWN0dWFsX3BvcywgcHJvcHMudHJpQl9jb2xvciwgcHJvcHMudHJpX2FscGhhLCBwcm9wcy50cmlfdGhp"
        "Y2tuZXNzKQoKICAgICAgICBjYWxjX2dlb19kYXRhKHByb3BzKQogICAgICAgIHJldHVybiB7J0ZJTklT"
        "SEVEJ30KCmNsYXNzIFRDVEFfT1RfRGV0YWNoT2JqZWN0cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAg"
        "YmxfaWRuYW1lID0gInRjdGEuZGV0YWNoX29iamVjdHMiCiAgICBibF9sYWJlbCA9ICLjgqLjg4njgqrj"
        "g7PjgYvjgonliIfjgorpm6LjgZciCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAg"
        "ICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05B"
        "TUUpCiAgICAgICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbC5uYW1lID0gUEFS"
        "RU5UX0NPTExFQ1RJT05fTkFNRSArICJfRGV0YWNoZWQiCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsn"
        "SU5GTyd9LCAi5YiH44KK6Zui44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9"
        "CgpjbGFzcyBUQ1RBX09UX1Jlc2V0UHJvcHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFt"
        "ZSA9ICJ0Y3RhLnJlc2V0X3Byb3BzIgogICAgYmxfbGFiZWwgPSAi5Yid5pyf5YCk44Gr5oi744GZIgog"
        "ICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5l"
        "LnRjdGFfcHJvcHMKICAgICAgICBmb3IgcCBpbiBbInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhhIiwg"
        "InRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciJdOgog"
        "ICAgICAgICAgICBwcm9wcy5wcm9wZXJ0eV91bnNldChwKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVE"
        "J30KCmNsYXNzIFRDVEFfT1RfUmFuZG9tUmVzZXQoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lk"
        "bmFtZSA9ICJ0Y3RhLnJhbmRvbV9yZXNldCIKICAgIGJsX2xhYmVsID0gIuODqeODs+ODgOODoOWGjeio"
        "iOeul++8huabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5v"
        "cHMudGN0YS5jcmVhdGVfb2JqZWN0cygpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
        "VENUQV9PVF9Db3B5R2VvSW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRj"
        "dGEuY29weV9nZW9faW5mbyIKICAgIGJsX2xhYmVsID0gIuW5vuS9leaDheWgseOCkuOCs+ODlOODvCIK"
        "ICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2Vu"
        "ZS50Y3RhX3Byb3BzCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGYiU3AxIERpc3Q6IHtwcm9w"
        "cy5nZW9fc3AxX2Rpc3Q6LjFmfSIsCiAgICAgICAgICAgIGYiU3AxIEFuZzogWD17cHJvcHMuZ2VvX3Nw"
        "MV9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwMV9hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3Nw"
        "MV9hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiU3AyIERpc3Q6IHtwcm9wcy5nZW9fc3AyX2Rpc3Q6"
        "LjFmfSIsCiAgICAgICAgICAgIGYiU3AyIEFuZzogWD17cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfSwg"
        "WT17cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfSIs"
        "CiAgICAgICAgICAgIGYiUGxhbmUgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfSIKICAg"
        "ICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpvaW4o"
        "bGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8i"
        "KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfT3BlbkxpbmsoYnB5LnR5"
        "cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLm9wZW5fbGluayIKICAgIGJsX2xhYmVs"
        "ID0gIuODquODs+OCr+OCkumWi+OBjyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
        "ICAgIGJweS5vcHMud20udXJsX29wZW4odXJsPSJodHRwczovL3d3dy5ibGVuZGVyLm9yZy8iKQogICAg"
        "ICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfRGVsZXRlQWxsKGJweS50eXBlcy5P"
        "cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5kZWxldGVfYWxsIgogICAgYmxfbGFiZWwgPSAi"
        "6Zai6YCj5YWo5YmK6ZmkIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFy"
        "ZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQog"
        "ICAgICAgIGlmIHBhcmVudF9jb2w6CiAgICAgICAgICAgIGZvciBvYmogaW4gcGFyZW50X2NvbC5hbGxf"
        "b2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMucmVtb3ZlKG9iaiwgZG9fdW5s"
        "aW5rPVRydWUpCiAgICAgICAgICAgIGJweS5kYXRhLmNvbGxlY3Rpb25zLnJlbW92ZShwYXJlbnRfY29s"
        "KQogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWFqOWJiumZpOOBl+OBvuOBl+OBnyIp"
        "CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDUuIFVJIOODkeOD"
        "jeODq+Wumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3MgVENUQV9QVF9QYW5lbEJhc2U6CiAgICBibF9z"
        "cGFjZV90eXBlID0gJ1ZJRVdfM0QnCiAgICBibF9yZWdpb25fdHlwZSA9ICdVSScKICAgIGJsX2NhdGVn"
        "b3J5ID0gIlRDVEEiCgpjbGFzcyBUQ1RBX1BUX1ZpZXdJbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
        "dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfdmlld19pbmZvIgogICAgYmxfbGFi"
        "ZWwgPSAiMS4g44OT44Ol44O844Od44O844OI5oOF5aCxIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4"
        "dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
        "bmUudGN0YV9wcm9wcwogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS52aWV3X3NlbGVjdGVkIiwg"
        "aWNvbj0nVklFV1pPT00nKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS51cGRhdGVfdmlld19p"
        "bmZvIiwgaWNvbj0nRklMRV9SRUZSRVNIJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAg"
        "ICBib3gubGFiZWwodGV4dD1mIkNlbnRlcjogKHtwcm9wcy52aWV3X2NlbnRlci54Oi4xZn0sIHtwcm9w"
        "cy52aWV3X2NlbnRlci55Oi4xZn0sIHtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0pIikKICAgICAgICBi"
        "b3gubGFiZWwodGV4dD1mIlNpemUgKHB4KTogVz17cHJvcHMudmlld19zaXplWzBdfSwgSD17cHJvcHMu"
        "dmlld19zaXplWzFdfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJDYW1lcmEgRGlzdDoge3Byb3Bz"
        "LnZpZXdfZGlzdGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiQ2FtZXJh"
        "IERpc3Q6IE4vQSIpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfdmlld19pbmZvIiwg"
        "aWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9NYWluKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
        "dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfbWFpbiIKICAgIGJsX2xhYmVsID0g"
        "IjIuIOODoeOCpOODs+Wun+ihjCIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxh"
        "eW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNyZWF0ZV9vYmpl"
        "Y3RzIiwgaWNvbj0nUExBWScsIHRleHQ9IuS9nOaIkCAo55Sf5oiQ44O75pu05pawKSIpCiAgICAgICAg"
        "bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRldGFjaF9vYmplY3RzIiwgaWNvbj0nVU5MSU5LRUQnKQoKY2xh"
        "c3MgVENUQV9QVF9TZXR0aW5ncyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAg"
        "IGJsX2lkbmFtZSA9ICJUQ1RBX1BUX3NldHRpbmdzIgogICAgYmxfbGFiZWwgPSAiMy4g44OR44Op44Oh"
        "44O844K/6Kit5a6aIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0g"
        "c2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAg"
        "IGxheW91dC5vcGVyYXRvcigidGN0YS5yZXNldF9wcm9wcyIsIGljb249J0xPT1BfQkFDSycpCiAgICAg"
        "ICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRvcnVzIEZyYW1lOiIp"
        "CiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0b3J1c19jb2xvciIsIHRleHQ9IkNvbG9yIikKICAgICAg"
        "ICBib3gucHJvcChwcm9wcywgInRvcnVzX2FscGhhIiwgdGV4dD0iQWxwaGEiKQogICAgICAgIGJveCA9"
        "IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmVzOiIpCiAgICAgICAgZm9y"
        "IGkgaW4gcmFuZ2UoMSwgNCk6CiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICBy"
        "b3cucHJvcChwcm9wcywgZiJzcHtpfV9tb2RlIiwgdGV4dD1mIlNwe2l9IikKICAgICAgICAgICAgaWYg"
        "Z2V0YXR0cihwcm9wcywgZiJzcHtpfV9tb2RlIikgPT0gJ01BTlVBTCc6CiAgICAgICAgICAgICAgICBi"
        "b3gucHJvcChwcm9wcywgZiJzcHtpfV9wb3MiLCB0ZXh0PSJYWVoiKQogICAgICAgIGJveCA9IGxheW91"
        "dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUcmlhbmdsZXM6IikKICAgICAgICBib3gucHJv"
        "cChwcm9wcywgInRyaV90aGlja25lc3MiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX2FscGhh"
        "IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRyaUFfY29sb3IiKQogICAgICAgIGJveC5wcm9wKHBy"
        "b3BzLCAidHJpQl9jb2xvciIpCgpjbGFzcyBUQ1RBX1BUX0dlb0luZm8oVENUQV9QVF9QYW5lbEJhc2Us"
        "IGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9nZW9faW5mbyIKICAgIGJs"
        "X2xhYmVsID0gIjQuIOW5vuS9leaDheWgsSIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAg"
        "ICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFf"
        "cHJvcHMKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEucmFuZG9tX3Jlc2V0IiwgaWNvbj0nRklM"
        "RV9SRUZSRVNIJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4"
        "dD0iU3BoZXJlIDEgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIERpc3Q6"
        "IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEFuZzog"
        "e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDFfYW5nWzFdOi4xZn3CsCwg"
        "e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVy"
        "ZSAyIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMu"
        "Z2VvX3NwMl9kaXN0Oi4xZn0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5n"
        "ZW9fc3AyX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AyX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5n"
        "ZW9fc3AyX2FuZ1syXTouMWZ9wrAiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJQbGFuZSBDcm9zcyBB"
        "bmdsZToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmdsZToge3Byb3BzLmdlb19wbGFuZV9h"
        "bmdsZTouMWZ9wrAiKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5jb3B5X2dlb19pbmZvIiwg"
        "aWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9TeXN0ZW0oVENUQV9QVF9QYW5lbEJhc2UsIGJw"
        "eS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9zeXN0ZW0iCiAgICBibF9sYWJl"
        "bCA9ICI1LiDjgrfjgrnjg4bjg6AiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBs"
        "YXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5vcGVuX2xpbmsi"
        "LCBpY29uPSdVUkwnKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5kZWxldGVfYWxsIiwgaWNv"
        "bj0nVFJBU0gnLCB0ZXh0PSLjgqLjg4njgqrjg7PliYrpmaQgKOWFqOOCr+ODquOCoikiKQoKCiMgPT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PQojIDYuIOeZu+mMsuWHpueQhgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3NlcyA9ICgKICAg"
        "IFRDVEFfUHJvcGVydGllcywKICAgIFRDVEFfT1RfVmlld1NlbGVjdGVkLAogICAgVENUQV9PVF9VcGRh"
        "dGVWaWV3SW5mbywKICAgIFRDVEFfT1RfQ29weVZpZXdJbmZvLAogICAgVENUQV9PVF9DcmVhdGVPYmpl"
        "Y3RzLAogICAgVENUQV9PVF9EZXRhY2hPYmplY3RzLAogICAgVENUQV9PVF9SZXNldFByb3BzLAogICAg"
        "VENUQV9PVF9SYW5kb21SZXNldCwKICAgIFRDVEFfT1RfQ29weUdlb0luZm8sCiAgICBUQ1RBX09UX09w"
        "ZW5MaW5rLAogICAgVENUQV9PVF9EZWxldGVBbGwsCiAgICBUQ1RBX1BUX1ZpZXdJbmZvLAogICAgVENU"
        "QV9QVF9NYWluLAogICAgVENUQV9QVF9TZXR0aW5ncywKICAgIFRDVEFfUFRfR2VvSW5mbywKICAgIFRD"
        "VEFfUFRfU3lzdGVtLAopCgpkZWYgcmVnaXN0ZXIoKToKICAgIGZvciBjbHMgaW4gY2xhc3NlczoKICAg"
        "ICAgICBicHkudXRpbHMucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgYnB5LnR5cGVzLlNjZW5lLnRjdGFf"
        "cHJvcHMgPSBicHkucHJvcHMuUG9pbnRlclByb3BlcnR5KHR5cGU9VENUQV9Qcm9wZXJ0aWVzKQoKZGVm"
        "IHVucmVnaXN0ZXIoKToKICAgIGZvciBjbHMgaW4gcmV2ZXJzZWQoY2xhc3Nlcyk6CiAgICAgICAgYnB5"
        "LnV0aWxzLnVucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgZGVsIGJweS50eXBlcy5TY2VuZS50Y3RhX3By"
        "b3BzCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgcmVnaXN0ZXIoKQ=="
        )
    },
    {
        "name": "時計時刻 20260713_001",
        "code_b64": (
        "IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K"
        "IyBibF9pbmZvIOOCkuWFiOmgreiomOi/sCDjgqLjg4njgqrjg7PjgafjgYLjgovjgpLnpLrjgZkKIyA9"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KYmxf"
        "aW5mbyA9IHsKICAgICJuYW1lIjogInppb25hZF/mmYLoqIjjgrjjgqfjg43jg6zjg7zjgr/jg7wgJiDp"
        "hY3nva7jg4Tjg7zjg6siLAogICAgImF1dGhvciI6ICJBSSBBc3Npc3RhbnQiLAogICAgInZlcnNpb24i"
        "OiAoNSwgMSwgMCksCiAgICAiYmxlbmRlciI6ICg1LCAwLCAwKSwgICMgQmxlbmRlciA1LjAg5Lul6ZmN"
        "5bCC55SoCiAgICAibG9jYXRpb24iOiAiVmlldzNEID4gU2lkZWJhciA+IHppb25hZF/mmYLoqIgiLAog"
        "ICAgImRlc2NyaXB0aW9uIjogIlJlYWx0aW1lIENsb2NrIEdlbmVyYXRvciwgVmlld3BvcnQgSW5mbywg"
        "YW5kIFRyYW5zZm9ybSBFZGl0b3IuIiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKIyA9PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBpbXBv"
        "cnQg44Gq44Gp44Gu5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09CmltcG9ydCBicHkKaW1wb3J0IG1hdGgKaW1wb3J0IHdlYmJyb3dzZXIK"
        "ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBicHkudHlwZXMgaW1wb3J0IE9wZXJhdG9y"
        "LCBQYW5lbCwgUHJvcGVydHlHcm91cApmcm9tIGJweS5wcm9wcyBpbXBvcnQgU3RyaW5nUHJvcGVydHks"
        "IEZsb2F0UHJvcGVydHksIEZsb2F0VmVjdG9yUHJvcGVydHksIFBvaW50ZXJQcm9wZXJ0eSwgQm9vbFBy"
        "b3BlcnR5CgojIOOAkOS9nOaIkOaXpeOAkSAyMDI25bm0N+aciDEz5pelIDIwOjAwCgojID09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOWIneac"
        "n+ioreWumuODu+WumuaVsOWumue+qeOAkSAo44K/44Kk44OI44Or44O75o6l6aCt6L6e44Gq44GpKQoj"
        "ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpB"
        "RERPTl9USVRMRSA9ICJ6aW9uYWRf5pmC6KiIIgpQUkVGSVhfVkFMID0gIlpJT05BRF9DTE9DS19UT09M"
        "UyIKQURET05fQ0FURUdPUlkgPSBBRERPTl9USVRMRQoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDliJ3mnJ/oqK3lrprjg7vjg6rjg7Pj"
        "gq/lrprnvqnjgJEgCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09CkxJTktfTkFNRV8xID0gIuWfuuacrOOCouODieOCquODs+ioreWumiAyMDI2MDcx"
        "Me+9giIKTElOS19VUkxfMSA9ICJodHRwczovL2FwcC5ub3Rpb24uY29tL3AvMjAyNjA3MTEtMzlhZjVk"
        "YWNhZjQzODAyNzgxMWRjZDg3N2RiN2M2MzAiCkxJTktfTkFNRV8yID0gInBvc2ZpZSIKTElOS19VUkxf"
        "MiA9ICJodHRwczovL3Bvc2ZpZS5jb20vQHRpbWVrYWd1cmEvdC96aW9uYWQyMDIyP3NvcnQ9MCIKTElO"
        "S19OQU1FXzMgPSAiemlvbmFkY2hhdCIKTElOS19VUkxfMyA9ICJodHRwczovL3guY29tL3ppb25hZGNo"
        "YXQiCkxJTktfTkFNRV80ID0gImJsZW5kZXIg44Kz44Oz44OG44OKIDIwMjYwNzEzIgpMSU5LX1VSTF80"
        "ID0gImh0dHBzOi8vbm90ZS5jb20vemlvbmFkbWlsbGlvbi9uL245YTQ3ZDg4ZmU3YjQiCkxJTktfTkFN"
        "RV81ID0gIiIKTElOS19VUkxfNSA9ICIiCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOWIneacn+ioreWumuODu+eUn+aIkOWumue+qeOA"
        "kQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PQpERUZBVUxUX0NPTExFQ1RJT05fTkFNRSA9ICJaSU9OQURfQ2xvY2tfUHJldmlldyIKUFJFVklFV19U"
        "RVhUX05BTUUgPSAiUHJldmlld19DbG9ja19UZXh0IgoKREVGQVVMVF9WQUwgPSAwLjAKREVGQVVMVF9T"
        "Q0FMRV9WQUwgPSAxLjAKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PQojIOKYhSDjg6rjgqLjg6vjgr/jgqTjg6DmmYLoqIjmm7TmlrDnlKgg44OQ44OD44Kv44Kw44Op44Km"
        "44Oz44OJ44K/44Kk44Oe44O8CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09CmRlZiB1cGRhdGVfcmVhbHRpbWVfY2xvY2tzKCk6CiAgICAjIDHnp5LjgZTjgajjgavlkbzjgbDj"
        "gozjgIHnibnlrprjga7jgqvjgrnjgr/jg6Djg5fjg63jg5Hjg4bjgqPjgpLmjIHjgaTjg4bjgq3jgrnj"
        "g4jjgpLnj77lnKjmmYLliLvjgavmm7jjgY3mj5vjgYjjgosKICAgIGN1cnJlbnRfdGltZSA9IGRhdGV0"
        "aW1lLm5vdygpLnN0cmZ0aW1lKCIlSDolTTolUyIpCiAgICBmb3Igb2JqIGluIGJweS5kYXRhLm9iamVj"
        "dHM6CiAgICAgICAgIyBGT05U44K/44Kk44OX44GL44Gk44Kr44K544K/44Og44OX44Ot44OR44OG44Kj"
        "ICd6aW9uYWRfcmVhbHRpbWVfY2xvY2snIOOCkuaMgeOBpOOCguOBruOCkuWvvuixoQogICAgICAgIGlm"
        "IG9iai50eXBlID09ICdGT05UJyBhbmQgb2JqLmdldCgiemlvbmFkX3JlYWx0aW1lX2Nsb2NrIik6CiAg"
        "ICAgICAgICAgIGlmIG9iai5kYXRhIGFuZCBvYmouZGF0YS5ib2R5ICE9IGN1cnJlbnRfdGltZToKICAg"
        "ICAgICAgICAgICAgIG9iai5kYXRhLmJvZHkgPSBjdXJyZW50X3RpbWUKICAgIHJldHVybiAxLjAgICMg"
        "MS4w56eS5b6M44Gr5YaN5bqm5a6f6KGMCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT0KIyAxLiDnlLvpnaLmg4XloLHvvIbpgbjmip7jgqrjg5bjgrjjgqfjgq/jg4jkuK3l"
        "pK7np7vli5UKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3Mg"
        "WklPTkFEX1ZpZXdTZXR0aW5ncyhQcm9wZXJ0eUdyb3VwKToKICAgIHZpZXdfbW9kZTogU3RyaW5nUHJv"
        "cGVydHkobmFtZT0iVmlldyBNb2RlIiwgZGVmYXVsdD0iVW5rbm93biIpCiAgICBsb2NfeDogRmxvYXRQ"
        "cm9wZXJ0eShuYW1lPSJDZW50ZXIgWCIpCiAgICBsb2NfeTogRmxvYXRQcm9wZXJ0eShuYW1lPSJDZW50"
        "ZXIgWSIpCiAgICBsb2NfejogRmxvYXRQcm9wZXJ0eShuYW1lPSJDZW50ZXIgWiIpCiAgICB2aWV3X3dp"
        "ZHRoOiBGbG9hdFByb3BlcnR5KG5hbWU9IldpZHRoIikKICAgIHZpZXdfaGVpZ2h0OiBGbG9hdFByb3Bl"
        "cnR5KG5hbWU9IkhlaWdodCIpCiAgICB2aWV3X2Rpc3RhbmNlOiBGbG9hdFByb3BlcnR5KG5hbWU9IkRp"
        "c3RhbmNlIikKCmNsYXNzIFpJT05BRF9PVF9Nb3ZlVG9DZW50ZXIoT3BlcmF0b3IpOgogICAgYmxfaWRu"
        "YW1lID0gZiJ7UFJFRklYX1ZBTC5sb3dlcigpfS5tb3ZlX3RvX2NlbnRlciIKICAgIGJsX2xhYmVsID0g"
        "IumBuOaKnuOCquODluOCuOOCp+OCr+ODiOOCkueUu+mdouS4reWkruOBuOenu+WLlSIKICAgIGJsX29w"
        "dGlvbnMgPSB7J1JFR0lTVEVSJywgJ1VORE8nfQogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6"
        "CiAgICAgICAgb2JqID0gY29udGV4dC5hY3RpdmVfb2JqZWN0CiAgICAgICAgaWYgbm90IG9iajogCiAg"
        "ICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAi44Kq44OW44K444Kn44Kv44OI44KS6YG4"
        "5oqe44GX44Gm44GP44Gg44GV44GE44CCIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30K"
        "ICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9kYXRhLnJlZ2lvbl8zZAogICAgICAgIGlmIHJ2M2Q6"
        "IAogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBydjNkLnZpZXdfbG9jYXRpb24KICAgICAgICAgICAg"
        "c2VsZi5yZXBvcnQoeydJTkZPJ30sICLnlLvpnaLkuK3lpK7jgbjnp7vli5XjgZfjgb7jgZfjgZ/jgIIi"
        "KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9VcGRhdGVWaWV3SW5m"
        "byhPcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmIntQUkVGSVhfVkFMLmxvd2VyKCl9LnVwZGF0ZV92"
        "aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4XloLHjgpLlj5blvpfjg7vmm7TmlrAiCiAg"
        "ICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9k"
        "YXRhLnJlZ2lvbl8zZAogICAgICAgIHJlZ2lvbiA9IGNvbnRleHQucmVnaW9uCiAgICAgICAgc3QgPSBj"
        "b250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRpbmdzCiAgICAgICAgaWYgbm90IHJ2M2Qgb3Igbm90"
        "IHJlZ2lvbjogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBpc19vcnRobyA9IChydjNkLnZpZXdf"
        "cGVyc3BlY3RpdmUgPT0gJ09SVEhPJykKICAgICAgICBzdC52aWV3X21vZGUgPSAi5bmz6KGM5oqV5b2x"
        "IChPcnRobykiIGlmIGlzX29ydGhvIGVsc2UgIumAj+imluaKleW9sSAoUGVyc3ApIgogICAgICAgIHN0"
        "LmxvY194ID0gcm91bmQocnYzZC52aWV3X2xvY2F0aW9uLngsIDEpCiAgICAgICAgc3QubG9jX3kgPSBy"
        "b3VuZChydjNkLnZpZXdfbG9jYXRpb24ueSwgMSkKICAgICAgICBzdC5sb2NfeiA9IHJvdW5kKHJ2M2Qu"
        "dmlld19sb2NhdGlvbi56LCAxKQogICAgICAgIHN0LnZpZXdfZGlzdGFuY2UgPSByb3VuZChydjNkLnZp"
        "ZXdfZGlzdGFuY2UsIDEpCiAgICAgICAgd19weCwgaF9weCA9IHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhl"
        "aWdodAogICAgICAgIGlmIGlzX29ydGhvOgogICAgICAgICAgICBoXzNkID0gcnYzZC52aWV3X2Rpc3Rh"
        "bmNlCiAgICAgICAgICAgIHdfM2QgPSBydjNkLnZpZXdfZGlzdGFuY2UgKiAod19weCAvIGhfcHgpIGlm"
        "IGhfcHggPiAwIGVsc2UgcnYzZC52aWV3X2Rpc3RhbmNlCiAgICAgICAgZWxzZToKICAgICAgICAgICAg"
        "bGVucyA9IGNvbnRleHQuc3BhY2VfZGF0YS5sZW5zCiAgICAgICAgICAgIGZvdiA9IDIgKiBtYXRoLmF0"
        "YW4oMzIuMCAvICgyICogbGVucykpCiAgICAgICAgICAgIGhfM2QgPSAyICogcnYzZC52aWV3X2Rpc3Rh"
        "bmNlICogbWF0aC50YW4oZm92IC8gMikKICAgICAgICAgICAgd18zZCA9IGhfM2QgKiAod19weCAvIGhf"
        "cHgpIGlmIGhfcHggPiAwIGVsc2UgaF8zZAogICAgICAgIHN0LnZpZXdfd2lkdGggPSByb3VuZCh3XzNk"
        "LCAxKQogICAgICAgIHN0LnZpZXdfaGVpZ2h0ID0gcm91bmQoaF8zZCwgMSkKICAgICAgICByZXR1cm4g"
        "eydGSU5JU0hFRCd9CgpjbGFzcyBaSU9OQURfT1RfQ29weVZpZXdJbmZvKE9wZXJhdG9yKToKICAgIGJs"
        "X2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0uY29weV92aWV3X2luZm8iCiAgICBibF9sYWJl"
        "bCA9ICLnlLvpnaLmg4XloLHjgpLjgrPjg5Tjg7wgKDHooYzjgZrjgaQpIgogICAgZGVmIGV4ZWN1dGUo"
        "c2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRp"
        "bmdzCiAgICAgICAgdGV4dCA9IChmIk1vZGU6IHtzdC52aWV3X21vZGV9XG5DZW50ZXIgWDoge3N0Lmxv"
        "Y194Oi4xZn1cbkNlbnRlciBZOiB7c3QubG9jX3k6LjFmfVxuIgogICAgICAgICAgICAgICAgZiJDZW50"
        "ZXIgWjoge3N0LmxvY196Oi4xZn1cbldpZHRoOiB7c3Qudmlld193aWR0aDouMWZ9XG5IZWlnaHQ6IHtz"
        "dC52aWV3X2hlaWdodDouMWZ9XG4iCiAgICAgICAgICAgICAgICBmIkRpc3RhbmNlOiB7c3Qudmlld19k"
        "aXN0YW5jZTouMWZ9IikKICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9IHRl"
        "eHQKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT0KIyAyLiBUcmFuc2Zvcm0gQ29waWVyICYgRWRpdG9yICjjg6rjgqLjg6vj"
        "gr/jgqTjg6Dlj43mmKApCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "CmRlZiB1cGRhdGVfdHJhbnNmb3JtKHNlbGYsIGNvbnRleHQpOgogICAgaWYgc2VsZi5pc19mZXRjaGlu"
        "ZzogcmV0dXJuCiAgICBvYmogPSBjb250ZXh0LmFjdGl2ZV9vYmplY3QKICAgIGlmIG9iajoKICAgICAg"
        "ICBvYmoubG9jYXRpb24ueCA9IHNlbGYubG9jX3gKICAgICAgICBvYmoubG9jYXRpb24ueSA9IHNlbGYu"
        "bG9jX3kKICAgICAgICBvYmoubG9jYXRpb24ueiA9IHNlbGYubG9jX3oKICAgICAgICBvYmoucm90YXRp"
        "b25fZXVsZXIueCA9IG1hdGgucmFkaWFucyhzZWxmLnJvdF94KQogICAgICAgIG9iai5yb3RhdGlvbl9l"
        "dWxlci55ID0gbWF0aC5yYWRpYW5zKHNlbGYucm90X3kpCiAgICAgICAgb2JqLnJvdGF0aW9uX2V1bGVy"
        "LnogPSBtYXRoLnJhZGlhbnMoc2VsZi5yb3RfeikKICAgICAgICBvYmouc2NhbGUueCA9IHNlbGYuc2Nh"
        "bGVfeAogICAgICAgIG9iai5zY2FsZS55ID0gc2VsZi5zY2FsZV95CiAgICAgICAgb2JqLnNjYWxlLnog"
        "PSBzZWxmLnNjYWxlX3oKCmNsYXNzIFpJT05BRF9UcmFuc2Zvcm1TZXR0aW5ncyhQcm9wZXJ0eUdyb3Vw"
        "KToKICAgIGlzX2ZldGNoaW5nOiBCb29sUHJvcGVydHkoZGVmYXVsdD1GYWxzZSkKICAgIGxvY194OiBG"
        "bG9hdFByb3BlcnR5KG5hbWU9IlgiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRlX3Ry"
        "YW5zZm9ybSkKICAgIGxvY195OiBGbG9hdFByb3BlcnR5KG5hbWU9IlkiLCBkZWZhdWx0PURFRkFVTFRf"
        "VkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIGxvY196OiBGbG9hdFByb3BlcnR5KG5hbWU9"
        "IloiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIHJvdF94"
        "OiBGbG9hdFByb3BlcnR5KG5hbWU9IlggKGRlZykiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9"
        "dXBkYXRlX3RyYW5zZm9ybSkKICAgIHJvdF95OiBGbG9hdFByb3BlcnR5KG5hbWU9IlkgKGRlZykiLCBk"
        "ZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIHJvdF96OiBGbG9h"
        "dFByb3BlcnR5KG5hbWU9IlogKGRlZykiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRl"
        "X3RyYW5zZm9ybSkKICAgIHNjYWxlX3g6IEZsb2F0UHJvcGVydHkobmFtZT0iWCIsIGRlZmF1bHQ9REVG"
        "QVVMVF9TQ0FMRV9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgc2NhbGVfeTogRmxvYXRQ"
        "cm9wZXJ0eShuYW1lPSJZIiwgZGVmYXVsdD1ERUZBVUxUX1NDQUxFX1ZBTCwgdXBkYXRlPXVwZGF0ZV90"
        "cmFuc2Zvcm0pCiAgICBzY2FsZV96OiBGbG9hdFByb3BlcnR5KG5hbWU9IloiLCBkZWZhdWx0PURFRkFV"
        "TFRfU0NBTEVfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKCmNsYXNzIFpJT05BRF9PVF9VcGRh"
        "dGVUcmFuc2Zvcm0oT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ7UFJFRklYX1ZBTC5sb3dlcigp"
        "fS51cGRhdGVfdHJhbnNmb3JtIgogICAgYmxfbGFiZWwgPSAiVUnjgavooajnpLogLyDmm7TmlrAiCiAg"
        "ICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBzdCA9IGNvbnRleHQuc2NlbmUuemlv"
        "bmFkX3RyYW5zX3NldHRpbmdzCiAgICAgICAgb2JqID0gY29udGV4dC5hY3RpdmVfb2JqZWN0CiAgICAg"
        "ICAgaWYgbm90IG9iajogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBzdC5pc19mZXRjaGluZyA9"
        "IFRydWUKICAgICAgICBzdC5sb2NfeCA9IG9iai5sb2NhdGlvbi54CiAgICAgICAgc3QubG9jX3kgPSBv"
        "YmoubG9jYXRpb24ueQogICAgICAgIHN0LmxvY196ID0gb2JqLmxvY2F0aW9uLnoKICAgICAgICBzdC5y"
        "b3RfeCA9IG1hdGguZGVncmVlcyhvYmoucm90YXRpb25fZXVsZXIueCkKICAgICAgICBzdC5yb3RfeSA9"
        "IG1hdGguZGVncmVlcyhvYmoucm90YXRpb25fZXVsZXIueSkKICAgICAgICBzdC5yb3RfeiA9IG1hdGgu"
        "ZGVncmVlcyhvYmoucm90YXRpb25fZXVsZXIueikKICAgICAgICBzdC5zY2FsZV94ID0gb2JqLnNjYWxl"
        "LngKICAgICAgICBzdC5zY2FsZV95ID0gb2JqLnNjYWxlLnkKICAgICAgICBzdC5zY2FsZV96ID0gb2Jq"
        "LnNjYWxlLnoKICAgICAgICBzdC5pc19mZXRjaGluZyA9IEZhbHNlCiAgICAgICAgcmV0dXJuIHsnRklO"
        "SVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX0NvcHlUcmFuc2Zvcm1JbmZvKE9wZXJhdG9yKToKICAgIGJs"
        "X2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0uY29weV90cmFuc2Zvcm0iCiAgICBibF9sYWJl"
        "bCA9ICLjgZnjgbnjgabjga7mg4XloLHjgpLjgrPjg5Tjg7wgKDHooYzjgZrjgaQpIgogICAgZGVmIGV4"
        "ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF90cmFu"
        "c19zZXR0aW5ncwogICAgICAgIHRleHQgPSAoZiJMb2MgWDoge3N0LmxvY194Oi4xZn1cbkxvYyBZOiB7"
        "c3QubG9jX3k6LjFmfVxuTG9jIFo6IHtzdC5sb2NfejouMWZ9XG4iCiAgICAgICAgICAgICAgICBmIlJv"
        "dCBYOiB7c3Qucm90X3g6LjFmfVxuUm90IFk6IHtzdC5yb3RfeTouMWZ9XG5Sb3QgWjoge3N0LnJvdF96"
        "Oi4xZn1cbiIKICAgICAgICAgICAgICAgIGYiU2NhbGUgWDoge3N0LnNjYWxlX3g6LjFmfVxuU2NhbGUg"
        "WToge3N0LnNjYWxlX3k6LjFmfVxuU2NhbGUgWjoge3N0LnNjYWxlX3o6LjFmfSIpCiAgICAgICAgY29u"
        "dGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSB0ZXh0CiAgICAgICAgcmV0dXJuIHsnRklOSVNI"
        "RUQnfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMy4g5pmC"
        "6KiI44K444Kn44ON44Os44O844K/44O8ICjjg5fjg6zjg5Pjg6Xjg7znlJ/miJDvvIbliIfjgorpm6Lj"
        "gZcpCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFpJT05B"
        "RF9DbG9ja1NldHRpbmdzKFByb3BlcnR5R3JvdXApOgogICAgdGV4dF9jb2xvcjogRmxvYXRWZWN0b3JQ"
        "cm9wZXJ0eShuYW1lPSLmloflrZfoibIiLCBzdWJ0eXBlPSdDT0xPUicsIGRlZmF1bHQ9KDAuMSwgMC45"
        "LCAwLjIpLCBtaW49MCwgbWF4PTEpCiAgICBpc19yZWFsdGltZTogQm9vbFByb3BlcnR5KG5hbWU9IuOD"
        "quOCouODq+OCv+OCpOODoOabtOaWsCAo56eS5Y2Y5L2NKSIsIGRlZmF1bHQ9VHJ1ZSwgZGVzY3JpcHRp"
        "b249IuODgeOCp+ODg+OCr+OCkuWFpeOCjOOCi+OBqOOAgeWIh+OCiumbouOBl+OBn+W+jOOCguWun+ma"
        "m+OBruaZguWIu+OBq+WQiOOCj+OBm+OBpuenkuOBjOabtOaWsOOBleOCjOe2muOBkeOBvuOBmSIpCgpj"
        "bGFzcyBaSU9OQURfT1RfR2VuZXJhdGVDbG9jayhPcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmIntQ"
        "UkVGSVhfVkFMLmxvd2VyKCl9LmdlbmVyYXRlX2Nsb2NrIgogICAgYmxfbGFiZWwgPSAi5pmC6KiI44KS"
        "44OX44Os44OT44Ol44O855Sf5oiQIgogICAgYmxfb3B0aW9ucyA9IHsnUkVHSVNURVInLCAnVU5ETyd9"
        "CgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc2V0dGluZ3MgPSBjb250ZXh0"
        "LnNjZW5lLnppb25hZF9jbG9ja19zZXR0aW5ncwogICAgICAgIGN1cnJlbnRfdGltZSA9IGRhdGV0aW1l"
        "Lm5vdygpLnN0cmZ0aW1lKCIlSDolTTolUyIpCiAgICAgICAgCiAgICAgICAgIyDjg5fjg6zjg5Pjg6Xj"
        "g7znlKjjgrPjg6zjgq/jgrfjg6fjg7Pjga7mupblgpkKICAgICAgICBwcmV2aWV3X2NvbGwgPSBicHku"
        "ZGF0YS5jb2xsZWN0aW9ucy5nZXQoREVGQVVMVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgbm90"
        "IHByZXZpZXdfY29sbDoKICAgICAgICAgICAgcHJldmlld19jb2xsID0gYnB5LmRhdGEuY29sbGVjdGlv"
        "bnMubmV3KERFRkFVTFRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNjZW5lLmNv"
        "bGxlY3Rpb24uY2hpbGRyZW4ubGluayhwcmV2aWV3X2NvbGwpCiAgICAgICAgCiAgICAgICAgIyDlj6Tj"
        "gYTjg5fjg6zjg5Pjg6Xjg7zjg4bjgq3jgrnjg4jjgpLliYrpmaQKICAgICAgICBvbGRfb2JqID0gYnB5"
        "LmRhdGEub2JqZWN0cy5nZXQoUFJFVklFV19URVhUX05BTUUpCiAgICAgICAgaWYgb2xkX29iajoKICAg"
        "ICAgICAgICAgYnB5LmRhdGEub2JqZWN0cy5yZW1vdmUob2xkX29iaiwgZG9fdW5saW5rPVRydWUpCiAg"
        "ICAgICAgCiAgICAgICAgIyDmmYLliLvjg4bjgq3jgrnjg4jjga7kvZzmiJAgKOenkuOBvuOBpykKICAg"
        "ICAgICB0ZXh0X2RhdGEgPSBicHkuZGF0YS5jdXJ2ZXMubmV3KG5hbWU9ZiJ7UFJFVklFV19URVhUX05B"
        "TUV9X0RhdGEiLCB0eXBlPSdGT05UJykKICAgICAgICB0ZXh0X2RhdGEuYm9keSA9IGN1cnJlbnRfdGlt"
        "ZQogICAgICAgIHRleHRfZGF0YS5hbGlnbl94ID0gJ0NFTlRFUicKICAgICAgICB0ZXh0X2RhdGEuYWxp"
        "Z25feSA9ICdDRU5URVInCiAgICAgICAgCiAgICAgICAgdGV4dF9vYmogPSBicHkuZGF0YS5vYmplY3Rz"
        "Lm5ldyhQUkVWSUVXX1RFWFRfTkFNRSwgdGV4dF9kYXRhKQogICAgICAgIHByZXZpZXdfY29sbC5vYmpl"
        "Y3RzLmxpbmsodGV4dF9vYmopCiAgICAgICAgCiAgICAgICAgIyDjg6rjgqLjg6vjgr/jgqTjg6Dmm7Tm"
        "lrDjga7jg5Xjg6njgrAgKOOCq+OCueOCv+ODoOODl+ODreODkeODhuOCoykg44KS5LuY5LiOCiAgICAg"
        "ICAgaWYgc2V0dGluZ3MuaXNfcmVhbHRpbWU6CiAgICAgICAgICAgIHRleHRfb2JqWyJ6aW9uYWRfcmVh"
        "bHRpbWVfY2xvY2siXSA9IDEKICAgICAgICBlbHNlOgogICAgICAgICAgICBpZiAiemlvbmFkX3JlYWx0"
        "aW1lX2Nsb2NrIiBpbiB0ZXh0X29iajoKICAgICAgICAgICAgICAgIGRlbCB0ZXh0X29ialsiemlvbmFk"
        "X3JlYWx0aW1lX2Nsb2NrIl0KICAgICAgICAKICAgICAgICAjIOODnuODhuODquOCouODq+ioreWumiAo"
        "55m65YWJ44GV44Gb44KLKQogICAgICAgIHRleHRfbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxzLm5ldyhu"
        "YW1lPSJQcmV2aWV3X01hdF9DbG9ja19UZXh0IikKICAgICAgICB0ZXh0X21hdC51c2Vfbm9kZXMgPSBU"
        "cnVlCiAgICAgICAgYnNkZiA9IHRleHRfbWF0Lm5vZGVfdHJlZS5ub2Rlc1siUHJpbmNpcGxlZCBCU0RG"
        "Il0KICAgICAgICBic2RmLmlucHV0c1siQmFzZSBDb2xvciJdLmRlZmF1bHRfdmFsdWUgPSAoKnNldHRp"
        "bmdzLnRleHRfY29sb3IsIDEuMCkKICAgICAgICBic2RmLmlucHV0c1siRW1pc3Npb24gQ29sb3IiXS5k"
        "ZWZhdWx0X3ZhbHVlID0gKCpzZXR0aW5ncy50ZXh0X2NvbG9yLCAxLjApCiAgICAgICAgYnNkZi5pbnB1"
        "dHNbIkVtaXNzaW9uIFN0cmVuZ3RoIl0uZGVmYXVsdF92YWx1ZSA9IDIuMAogICAgICAgIHRleHRfb2Jq"
        "LmRhdGEubWF0ZXJpYWxzLmFwcGVuZCh0ZXh0X21hdCkKCiAgICAgICAgIyDjgqLjgq/jg4bjgqPjg5bl"
        "jJYKICAgICAgICBjb250ZXh0LnZpZXdfbGF5ZXIub2JqZWN0cy5hY3RpdmUgPSB0ZXh0X29iagogICAg"
        "ICAgIHRleHRfb2JqLnNlbGVjdF9zZXQoVHJ1ZSkKICAgICAgICAKICAgICAgICBzZWxmLnJlcG9ydCh7"
        "J0lORk8nfSwgZiLmmYLoqIjjg5fjg6zjg5Pjg6Xjg7zjgpLnlJ/miJDjgZfjgb7jgZfjgZ/jgIIiKQog"
        "ICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9GaW5hbGl6ZUNsb2NrKE9w"
        "ZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0uZmluYWxpemVfY2xv"
        "Y2siCiAgICBibF9sYWJlbCA9ICLliIfjgorpm6LjgZfjg7vlrozlhajni6znq4vljJYiCiAgICBibF9k"
        "ZXNjcmlwdGlvbiA9ICLmmYLoqIjjgpLjgqLjg4njgqrjg7Pjg5fjg6zjg5Pjg6Xjg7zjgYvjgonliIfj"
        "gorpm6LjgZfjgIHni6znq4vjgZfjgZ/jg4fjg7zjgr/jgajjgZfjgabkv53lrZjjgZfjgb7jgZkiCiAg"
        "ICBibF9vcHRpb25zID0geydSRUdJU1RFUicsICdVTkRPJ30KCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBj"
        "b250ZXh0KToKICAgICAgICB0ZXh0X29iaiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KFBSRVZJRVdfVEVY"
        "VF9OQU1FKQogICAgICAgIAogICAgICAgIGlmIG5vdCB0ZXh0X29iajoKICAgICAgICAgICAgc2VsZi5y"
        "ZXBvcnQoeydXQVJOSU5HJ30sICLjg5fjg6zjg5Pjg6Xjg7zmmYLoqIjjgYzopovjgaTjgYvjgorjgb7j"
        "gZvjgpPjgIIiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQoKICAgICAgICAjIOOCv+OC"
        "pOODoOOCueOCv+ODs+ODl+OBp+S4gOaEj+OBruWQjeWJjeOBq+ODquODjeODvOODoAogICAgICAgIHRp"
        "bWVzdGFtcCA9IGRhdGV0aW1lLm5vdygpLnN0cmZ0aW1lKCIlSCVNJVMiKQogICAgICAgIHRleHRfb2Jq"
        "Lm5hbWUgPSBmIkNsb2NrX0ZpbmFsX3t0aW1lc3RhbXB9IgogICAgICAgIHRleHRfb2JqLmRhdGEubmFt"
        "ZSA9IGYiQ2xvY2tfRGF0YV97dGltZXN0YW1wfSIKCiAgICAgICAgIyDjg57jg4bjg6rjgqLjg6vjgpLj"
        "grfjg7PjgrDjg6vjg6bjg7zjgrbjg7zljJbvvIjni6znq4vljJbvvIkKICAgICAgICBmb3Igc2xvdCBp"
        "biB0ZXh0X29iai5tYXRlcmlhbF9zbG90czoKICAgICAgICAgICAgaWYgc2xvdC5tYXRlcmlhbDoKICAg"
        "ICAgICAgICAgICAgIG5ld19tYXQgPSBzbG90Lm1hdGVyaWFsLmNvcHkoKQogICAgICAgICAgICAgICAg"
        "bmV3X21hdC5uYW1lID0gZiJNYXRfe3RleHRfb2JqLm5hbWV9IgogICAgICAgICAgICAgICAgc2xvdC5t"
        "YXRlcmlhbCA9IG5ld19tYXQKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAjIOODl+ODrOODk+OD"
        "peODvOOCs+ODrOOCr+OCt+ODp+ODs+OCkuWJiumZpCAo44Kq44OW44K444Kn44Kv44OI44Gv44K344O8"
        "44Oz44Kz44Os44Kv44K344On44Oz44Gr56e75YuVKQogICAgICAgIHByZXZpZXdfY29sbCA9IGJweS5k"
        "YXRhLmNvbGxlY3Rpb25zLmdldChERUZBVUxUX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBwcmV2"
        "aWV3X2NvbGw6CiAgICAgICAgICAgIGZvciBvYmogaW4gbGlzdChwcmV2aWV3X2NvbGwub2JqZWN0cyk6"
        "CiAgICAgICAgICAgICAgICBjb250ZXh0LnNjZW5lLmNvbGxlY3Rpb24ub2JqZWN0cy5saW5rKG9iaikK"
        "ICAgICAgICAgICAgICAgIHByZXZpZXdfY29sbC5vYmplY3RzLnVubGluayhvYmopCiAgICAgICAgICAg"
        "IGJweS5kYXRhLmNvbGxlY3Rpb25zLnJlbW92ZShwcmV2aWV3X2NvbGwpCgogICAgICAgIHNlbGYucmVw"
        "b3J0KHsnSU5GTyd9LCBmIuaZguioiOOCkueLrOeri+WMluOBl+OBvuOBl+OBnzoge3RleHRfb2JqLm5h"
        "bWV9IikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT0KIyA0LiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPjg7vjg6rjg7Pjgq/j"
        "g7vliYrpmaTmqZ/og70KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K"
        "Y2xhc3MgWklPTkFEX09UX09wZW5VUkwoT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ7UFJFRklY"
        "X1ZBTC5sb3dlcigpfS5vcGVuX3VybCI7IGJsX2xhYmVsID0gIlVSTOOCkumWi+OBjyIKICAgIHVybDog"
        "U3RyaW5nUHJvcGVydHkoZGVmYXVsdD0iIikKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOiAK"
        "ICAgICAgICB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQn"
        "fQoKY2xhc3MgWklPTkFEX09UX1JlbW92ZUFkZG9uKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYi"
        "e1BSRUZJWF9WQUwubG93ZXIoKX0ucmVtb3ZlX2FkZG9uIjsgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz"
        "44KS5YmK6Zmk44O76Kej6Zmk44GZ44KLIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6IAog"
        "ICAgICAgIHVucmVnaXN0ZXIoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCgojID09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOODkeODjeODqyBVSeWumue+qQojID09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBaSU9OQURfUFRfVmll"
        "d1BhbmVsKFBhbmVsKToKICAgIGJsX2xhYmVsID0gIjEuIOeUu+mdouaDheWgsSAmIOOCquODluOCuOOC"
        "p+OCr+ODiOmFjee9riIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfdmlld19wYW5lbCIKICAgIGJs"
        "X3NwYWNlX3R5cGUgPSAnVklFV18zRCc7IGJsX3JlZ2lvbl90eXBlID0gJ1VJJzsgYmxfY2F0ZWdvcnkg"
        "PSBBRERPTl9DQVRFR09SWTsgYmxfb3JkZXIgPSAwCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToK"
        "ICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHN0ID0gY29udGV4dC5zY2VuZS56aW9u"
        "YWRfdmlld19zZXR0aW5ncwogICAgICAgIAogICAgICAgIGNvbCA9IGxheW91dC5jb2x1bW4oYWxpZ249"
        "VHJ1ZSkKICAgICAgICBjb2wuc2NhbGVfeSA9IDEuMgogICAgICAgIGNvbC5vcGVyYXRvcihaSU9OQURf"
        "T1RfTW92ZVRvQ2VudGVyLmJsX2lkbmFtZSwgaWNvbj0nVklFVzNEJykKICAgICAgICAKICAgICAgICBs"
        "YXlvdXQuc2VwYXJhdG9yKCkKICAgICAgICBjb2wgPSBsYXlvdXQuY29sdW1uKGFsaWduPVRydWUpCiAg"
        "ICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9VcGRhdGVWaWV3SW5mby5ibF9pZG5hbWUsIGljb249"
        "J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9Db3B5Vmlld0luZm8u"
        "YmxfaWRuYW1lLCBpY29uPSdDT1BZRE9XTicpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJv"
        "eCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJNb2RlOiB7c3Qudmlld19tb2RlfSIsIGljb249J0NB"
        "TUVSQV9EQVRBJykKICAgICAgICBib3gubGFiZWwodGV4dD1mIkNlbnRlcjogKHtzdC5sb2NfeDouMWZ9"
        "LCB7c3QubG9jX3k6LjFmfSwge3N0LmxvY196Oi4xZn0pIikKICAgICAgICBib3gubGFiZWwodGV4dD1m"
        "IldpZHRoOiB7c3Qudmlld193aWR0aDouMWZ9IC8gSGVpZ2h0OiB7c3Qudmlld19oZWlnaHQ6LjFmfSIp"
        "CiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJEaXN0YW5jZToge3N0LnZpZXdfZGlzdGFuY2U6LjFmfSIp"
        "CgpjbGFzcyBaSU9OQURfUFRfVHJhbnNmb3JtUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAiMi4g"
        "44Kq44OW44K444Kn44Kv44OIIFRyYW5zZm9ybSIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfdHJh"
        "bnNmb3JtX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJzsgYmxfcmVnaW9uX3R5cGUg"
        "PSAnVUknOyBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZOyBibF9vcmRlciA9IDEKICAgIGRlZiBk"
        "cmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgc3Qg"
        "PSBjb250ZXh0LnNjZW5lLnppb25hZF90cmFuc19zZXR0aW5ncwogICAgICAgIAogICAgICAgIGNvbCA9"
        "IGxheW91dC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX1Vw"
        "ZGF0ZVRyYW5zZm9ybS5ibF9pZG5hbWUsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgY29sLm9w"
        "ZXJhdG9yKFpJT05BRF9PVF9Db3B5VHJhbnNmb3JtSW5mby5ibF9pZG5hbWUsIGljb249J0NPUFlET1dO"
        "JykKICAgICAgICAKICAgICAgICBsYXlvdXQuc2VwYXJhdG9yKCkKICAgICAgICBib3ggPSBsYXlvdXQu"
        "Ym94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iTG9jYXRpb246IiwgaWNvbj0nQ09OX0xPQ0xJS0Un"
        "KQogICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wucHJvcChzdCwg"
        "ImxvY194Iik7IGNvbC5wcm9wKHN0LCAibG9jX3kiKTsgY29sLnByb3Aoc3QsICJsb2NfeiIpCiAgICAg"
        "ICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlJvdGF0"
        "aW9uIChEZWdyZWVzKToiLCBpY29uPSdDT05fUk9UTElLRScpCiAgICAgICAgY29sID0gYm94LmNvbHVt"
        "bihhbGlnbj1UcnVlKQogICAgICAgIGNvbC5wcm9wKHN0LCAicm90X3giKTsgY29sLnByb3Aoc3QsICJy"
        "b3RfeSIpOyBjb2wucHJvcChzdCwgInJvdF96IikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQu"
        "Ym94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iU2NhbGU6IiwgaWNvbj0nQ09OX1NJWkVMSUtFJykK"
        "ICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgY29sLnByb3Aoc3QsICJz"
        "Y2FsZV94Iik7IGNvbC5wcm9wKHN0LCAic2NhbGVfeSIpOyBjb2wucHJvcChzdCwgInNjYWxlX3oiKQoK"
        "Y2xhc3MgWklPTkFEX1BUX0Nsb2NrUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAiMy4g5pmC6KiI"
        "IOOCuOOCp+ODjeODrOODvOOCv+ODvCIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfY2xvY2tfcGFu"
        "ZWwiCiAgICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0QnOyBibF9yZWdpb25fdHlwZSA9ICdVSSc7IGJs"
        "X2NhdGVnb3J5ID0gQURET05fQ0FURUdPUlk7IGJsX29yZGVyID0gMgogICAgZGVmIGRyYXcoc2VsZiwg"
        "Y29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBzdCA9IGNvbnRleHQu"
        "c2NlbmUuemlvbmFkX2Nsb2NrX3NldHRpbmdzCiAgICAgICAgCiAgICAgICAgbGF5b3V0LnByb3Aoc3Qs"
        "ICJ0ZXh0X2NvbG9yIikKICAgICAgICBsYXlvdXQucHJvcChzdCwgImlzX3JlYWx0aW1lIikKICAgICAg"
        "ICAKICAgICAgICBjb2wgPSBsYXlvdXQuY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgY29sLnNjYWxl"
        "X3kgPSAxLjIKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX0dlbmVyYXRlQ2xvY2suYmxfaWRu"
        "YW1lLCBpY29uPSdUSU1FJykKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX0ZpbmFsaXplQ2xv"
        "Y2suYmxfaWRuYW1lLCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBaSU9OQURfUFRfTGlua3NQYW5lbChQ"
        "YW5lbCk6CiAgICBibF9sYWJlbCA9ICI0LiDjg6rjg7Pjgq/pm4YiCiAgICBibF9pZG5hbWUgPSAiWklP"
        "TkFEX1BUX2xpbmtzX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJzsgYmxfcmVnaW9u"
        "X3R5cGUgPSAnVUknOyBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZOyBibF9vcmRlciA9IDMKICAg"
        "IGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAg"
        "ICAgbGlua3MgPSBbKExJTktfTkFNRV8xLCBMSU5LX1VSTF8xKSwgKExJTktfTkFNRV8yLCBMSU5LX1VS"
        "TF8yKSwgKExJTktfTkFNRV8zLCBMSU5LX1VSTF8zKSwgKExJTktfTkFNRV80LCBMSU5LX1VSTF80KSwg"
        "KExJTktfTkFNRV81LCBMSU5LX1VSTF81KV0KICAgICAgICBmb3IgbmFtZSwgdXJsIGluIGxpbmtzOgog"
        "ICAgICAgICAgICBpZiBuYW1lIGFuZCB1cmw6CiAgICAgICAgICAgICAgICBvcCA9IGxheW91dC5vcGVy"
        "YXRvcihaSU9OQURfT1RfT3BlblVSTC5ibF9pZG5hbWUsIHRleHQ9bmFtZSwgaWNvbj0nVVJMJykKICAg"
        "ICAgICAgICAgICAgIG9wLnVybCA9IHVybAoKY2xhc3MgWklPTkFEX1BUX1JlbW92ZVBhbmVsKFBhbmVs"
        "KToKICAgIGJsX2xhYmVsID0gIjUuIOOCouODieOCquODs+WJiumZpOWun+ihjCIKICAgIGJsX2lkbmFt"
        "ZSA9ICJaSU9OQURfUFRfcmVtb3ZlX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJzsg"
        "YmxfcmVnaW9uX3R5cGUgPSAnVUknOyBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZOyBibF9vcmRl"
        "ciA9IDQKICAgIGJsX29wdGlvbnMgPSB7J0RFRkFVTFRfQ0xPU0VEJ30KICAgIGRlZiBkcmF3KHNlbGYs"
        "IGNvbnRleHQpOiAKICAgICAgICBzZWxmLmxheW91dC5sYWJlbCh0ZXh0PSLigLvmirzjgZnjgajjgqLj"
        "g4njgqrjg7PjgYzop6PpmaTjgZXjgozjgb7jgZkiLCBpY29uPSdFUlJPUicpCiAgICAgICAgc2VsZi5s"
        "YXlvdXQub3BlcmF0b3IoWklPTkFEX09UX1JlbW92ZUFkZG9uLmJsX2lkbmFtZSwgaWNvbj0nQ0FOQ0VM"
        "JykKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOeZu+mMsuOD"
        "u+ino+mZpOWHpueQhgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpj"
        "bGFzc2VzID0gKAogICAgWklPTkFEX1ZpZXdTZXR0aW5ncywgCiAgICBaSU9OQURfVHJhbnNmb3JtU2V0"
        "dGluZ3MsCiAgICBaSU9OQURfQ2xvY2tTZXR0aW5ncywKICAgIFpJT05BRF9PVF9Nb3ZlVG9DZW50ZXIs"
        "IAogICAgWklPTkFEX09UX1VwZGF0ZVZpZXdJbmZvLCAKICAgIFpJT05BRF9PVF9Db3B5Vmlld0luZm8s"
        "CiAgICBaSU9OQURfT1RfVXBkYXRlVHJhbnNmb3JtLCAKICAgIFpJT05BRF9PVF9Db3B5VHJhbnNmb3Jt"
        "SW5mbywgCiAgICBaSU9OQURfT1RfR2VuZXJhdGVDbG9jaywKICAgIFpJT05BRF9PVF9GaW5hbGl6ZUNs"
        "b2NrLAogICAgWklPTkFEX09UX09wZW5VUkwsIAogICAgWklPTkFEX09UX1JlbW92ZUFkZG9uLAogICAg"
        "WklPTkFEX1BUX1ZpZXdQYW5lbCwgCiAgICBaSU9OQURfUFRfVHJhbnNmb3JtUGFuZWwsIAogICAgWklP"
        "TkFEX1BUX0Nsb2NrUGFuZWwsCiAgICBaSU9OQURfUFRfTGlua3NQYW5lbCwgCiAgICBaSU9OQURfUFRf"
        "UmVtb3ZlUGFuZWwsCikKCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOiAKICAg"
        "ICAgICBicHkudXRpbHMucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgYnB5LnR5cGVzLlNjZW5lLnppb25h"
        "ZF92aWV3X3NldHRpbmdzID0gUG9pbnRlclByb3BlcnR5KHR5cGU9WklPTkFEX1ZpZXdTZXR0aW5ncykK"
        "ICAgIGJweS50eXBlcy5TY2VuZS56aW9uYWRfdHJhbnNfc2V0dGluZ3MgPSBQb2ludGVyUHJvcGVydHko"
        "dHlwZT1aSU9OQURfVHJhbnNmb3JtU2V0dGluZ3MpCiAgICBicHkudHlwZXMuU2NlbmUuemlvbmFkX2Ns"
        "b2NrX3NldHRpbmdzID0gUG9pbnRlclByb3BlcnR5KHR5cGU9WklPTkFEX0Nsb2NrU2V0dGluZ3MpCiAg"
        "ICAKICAgICMg44K/44Kk44Oe44O844OP44Oz44OJ44Op44Gu55m76YyyICjjgqLjg4njgqrjg7Potbfl"
        "i5XkuK3jgIEx56eS5q+O44Gr5pu05paw5Yem55CG44KS5Zue44GZKQogICAgaWYgbm90IGJweS5hcHAu"
        "dGltZXJzLmlzX3JlZ2lzdGVyZWQodXBkYXRlX3JlYWx0aW1lX2Nsb2Nrcyk6CiAgICAgICAgYnB5LmFw"
        "cC50aW1lcnMucmVnaXN0ZXIodXBkYXRlX3JlYWx0aW1lX2Nsb2NrcykKCmRlZiB1bnJlZ2lzdGVyKCk6"
        "CiAgICBpZiBoYXNhdHRyKGJweS50eXBlcy5TY2VuZSwgJ3ppb25hZF92aWV3X3NldHRpbmdzJyk6IGRl"
        "bCBicHkudHlwZXMuU2NlbmUuemlvbmFkX3ZpZXdfc2V0dGluZ3MKICAgIGlmIGhhc2F0dHIoYnB5LnR5"
        "cGVzLlNjZW5lLCAnemlvbmFkX3RyYW5zX3NldHRpbmdzJyk6IGRlbCBicHkudHlwZXMuU2NlbmUuemlv"
        "bmFkX3RyYW5zX3NldHRpbmdzCiAgICBpZiBoYXNhdHRyKGJweS50eXBlcy5TY2VuZSwgJ3ppb25hZF9j"
        "bG9ja19zZXR0aW5ncycpOiBkZWwgYnB5LnR5cGVzLlNjZW5lLnppb25hZF9jbG9ja19zZXR0aW5ncwog"
        "ICAgCiAgICAjIOOCv+OCpOODnuODvOODj+ODs+ODieODqeOBruino+mZpAogICAgaWYgYnB5LmFwcC50"
        "aW1lcnMuaXNfcmVnaXN0ZXJlZCh1cGRhdGVfcmVhbHRpbWVfY2xvY2tzKToKICAgICAgICBicHkuYXBw"
        "LnRpbWVycy51bnJlZ2lzdGVyKHVwZGF0ZV9yZWFsdGltZV9jbG9ja3MpCiAgICAgICAgCiAgICBmb3Ig"
        "Y2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIHRyeTogYnB5LnV0aWxzLnVucmVnaXN0ZXJf"
        "Y2xhc3MoY2xzKQogICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6IHBhc3MKCmlmIF9fbmFtZV9fID09"
        "ICJfX21haW5fXyI6IAogICAgcmVnaXN0ZXIoKQ=="
        )
    },
    {
        "name": "選択オブジェクト移動_20260713_002",
        "code_b64": (
        "IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K"
        "IyBibF9pbmZvIOOCkuWFiOmgreiomOi/sCDjgqLjg4njgqrjg7PjgafjgYLjgovjgpLnpLrjgZkKIyA9"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KYmxf"
        "aW5mbyA9IHsKICAgICJuYW1lIjogInppb25hZF/jgqrjg5bjgrjjgqfjgq/jg4jphY3nva7jg4Tjg7zj"
        "g6siLAogICAgImF1dGhvciI6ICJBSSBBc3Npc3RhbnQiLAogICAgInZlcnNpb24iOiAoNCwgMSwgMCks"
        "CiAgICAiYmxlbmRlciI6ICg1LCAwLCAwKSwgICMgQmxlbmRlciA1LjAg5Lul6ZmN5bCC55SoCiAgICAi"
        "bG9jYXRpb24iOiAiVmlldzNEID4gU2lkZWJhciA+IHppb25hZF/phY3nva4iLAogICAgImRlc2NyaXB0"
        "aW9uIjogIlZpZXdwb3J0IEluZm8gYW5kIFJlYWwtdGltZSBUcmFuc2Zvcm0gRWRpdG9yLiIsCiAgICAi"
        "Y2F0ZWdvcnkiOiAiM0QgVmlldyIsCn0KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09CiMgaW1wb3J0IOOBquOBqeOBruWumue+qQojID09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQppbXBvcnQgYnB5"
        "CmltcG9ydCBtYXRoCmltcG9ydCB3ZWJicm93c2VyCmZyb20gYnB5LnR5cGVzIGltcG9ydCBPcGVyYXRv"
        "ciwgUGFuZWwsIFByb3BlcnR5R3JvdXAKZnJvbSBicHkucHJvcHMgaW1wb3J0IFN0cmluZ1Byb3BlcnR5"
        "LCBGbG9hdFByb3BlcnR5LCBQb2ludGVyUHJvcGVydHksIEJvb2xQcm9wZXJ0eQoKIyDjgJDkvZzmiJDm"
        "l6XjgJEgMjAyNuW5tDfmnIgxM+aXpSAxOTowMAoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDliJ3mnJ/oqK3lrprjg7vlrprmlbDlrprn"
        "vqnjgJEgKOOCv+OCpOODiOODq+ODu+aOpemgrei+nuOBquOBqSkKIyA9PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQURET05fVElUTEUgPSAiemlvbmFk"
        "X+mFjee9riIKUFJFRklYX1ZBTCA9ICJaSU9OQURfVFJBTlNGT1JNX1RPT0xTIgpBRERPTl9DQVRFR09S"
        "WSA9IEFERE9OX1RJVExFCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PQojIOOAkOWIneacn+ioreWumuODu+ODquODs+OCr+Wumue+qeOAkSAKIyDj"
        "gZPjgZPjgafjg6rjg7Pjgq/jga7jgIzjgr/jgqTjg4jjg6vjgI3jgajjgIxVUkzjgI3jgpIx6KGM44Ga"
        "44Gk5pu444GN5o+b44GI44O76L+95Yqg44GM44Gn44GN44G+44GZ44CCCiMgPT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkxJTktfTkFNRV8xID0gIuWf"
        "uuacrOOCouODieOCquODs+ioreWumiAyMDI2MDcxMe+9giIKTElOS19VUkxfMSA9ICJodHRwczovL2Fw"
        "cC5ub3Rpb24uY29tL3AvMjAyNjA3MTEtMzlhZjVkYWNhZjQzODAyNzgxMWRjZDg3N2RiN2M2MzAiCkxJ"
        "TktfTkFNRV8yID0gInBvc2ZpZSIKTElOS19VUkxfMiA9ICJodHRwczovL3Bvc2ZpZS5jb20vQHRpbWVr"
        "YWd1cmEvdC96aW9uYWQyMDIyP3NvcnQ9MCIKTElOS19OQU1FXzMgPSAiemlvbmFkY2hhdCIKTElOS19V"
        "UkxfMyA9ICJodHRwczovL3guY29tL3ppb25hZGNoYXQiCkxJTktfTkFNRV80ID0gImJsZW5kZXIg44Kz"
        "44Oz44OG44OKIDIwMjYwNzEzIgpMSU5LX1VSTF80ID0gImh0dHBzOi8vbm90ZS5jb20vemlvbmFkbWls"
        "bGlvbi9uL245YTQ3ZDg4ZmU3YjQiCkxJTktfTkFNRV81ID0gIiIKTElOS19VUkxfNSA9ICIiCgojIOax"
        "jueUqOWIneacn+WApApERUZBVUxUX1ZBTCA9IDAuMApERUZBVUxUX1NDQUxFX1ZBTCA9IDEuMAoKCiMg"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMS4g55S76Z2i5oOF5aCx"
        "77yG6YG45oqe44Kq44OW44K444Kn44Kv44OI5Lit5aSu56e75YuVCiMgPT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFpJT05BRF9WaWV3U2V0dGluZ3MoUHJvcGVydHlH"
        "cm91cCk6CiAgICB2aWV3X21vZGU6IFN0cmluZ1Byb3BlcnR5KG5hbWU9IlZpZXcgTW9kZSIsIGRlZmF1"
        "bHQ9IlVua25vd24iKQogICAgbG9jX3g6IEZsb2F0UHJvcGVydHkobmFtZT0iQ2VudGVyIFgiKQogICAg"
        "bG9jX3k6IEZsb2F0UHJvcGVydHkobmFtZT0iQ2VudGVyIFkiKQogICAgbG9jX3o6IEZsb2F0UHJvcGVy"
        "dHkobmFtZT0iQ2VudGVyIFoiKQogICAgdmlld193aWR0aDogRmxvYXRQcm9wZXJ0eShuYW1lPSJXaWR0"
        "aCIpCiAgICB2aWV3X2hlaWdodDogRmxvYXRQcm9wZXJ0eShuYW1lPSJIZWlnaHQiKQogICAgdmlld19k"
        "aXN0YW5jZTogRmxvYXRQcm9wZXJ0eShuYW1lPSJEaXN0YW5jZSIpCgpjbGFzcyBaSU9OQURfT1RfTW92"
        "ZVRvQ2VudGVyKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0u"
        "bW92ZV90b19jZW50ZXIiCiAgICBibF9sYWJlbCA9ICLpgbjmip7jgqrjg5bjgrjjgqfjgq/jg4jjgpLn"
        "lLvpnaLkuK3lpK7jgbjnp7vli5UiCiAgICBibF9kZXNjcmlwdGlvbiA9ICLpgbjmip7jgZfjgabjgYTj"
        "govjgqrjg5bjgrjjgqfjgq/jg4jjgpLnj77lnKjjga7jg5Pjg6Xjg7zjga7ms6joppbngrko5Lit5aSu"
        "KeOBq+enu+WLleOBl+OBvuOBmSIKICAgIGJsX29wdGlvbnMgPSB7J1JFR0lTVEVSJywgJ1VORE8nfQog"
        "ICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgb2JqID0gY29udGV4dC5hY3RpdmVf"
        "b2JqZWN0CiAgICAgICAgaWYgbm90IG9iajogCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklO"
        "Ryd9LCAi44Kq44OW44K444Kn44Kv44OI44KS6YG45oqe44GX44Gm44GP44Gg44GV44GE44CCIikKICAg"
        "ICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9k"
        "YXRhLnJlZ2lvbl8zZAogICAgICAgIGlmIHJ2M2Q6IAogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBy"
        "djNkLnZpZXdfbG9jYXRpb24KICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLnlLvpnaLk"
        "uK3lpK7jgbjnp7vli5XjgZfjgb7jgZfjgZ/jgIIiKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30K"
        "CmNsYXNzIFpJT05BRF9PVF9VcGRhdGVWaWV3SW5mbyhPcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBm"
        "IntQUkVGSVhfVkFMLmxvd2VyKCl9LnVwZGF0ZV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvp"
        "naLmg4XloLHjgpLlj5blvpfjg7vmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToK"
        "ICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9kYXRhLnJlZ2lvbl8zZAogICAgICAgIHJlZ2lvbiA9"
        "IGNvbnRleHQucmVnaW9uCiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRp"
        "bmdzCiAgICAgICAgaWYgbm90IHJ2M2Qgb3Igbm90IHJlZ2lvbjogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30K"
        "ICAgICAgICBpc19vcnRobyA9IChydjNkLnZpZXdfcGVyc3BlY3RpdmUgPT0gJ09SVEhPJykKICAgICAg"
        "ICBzdC52aWV3X21vZGUgPSAi5bmz6KGM5oqV5b2xIChPcnRobykiIGlmIGlzX29ydGhvIGVsc2UgIumA"
        "j+imluaKleW9sSAoUGVyc3ApIgogICAgICAgIHN0LmxvY194ID0gcm91bmQocnYzZC52aWV3X2xvY2F0"
        "aW9uLngsIDEpCiAgICAgICAgc3QubG9jX3kgPSByb3VuZChydjNkLnZpZXdfbG9jYXRpb24ueSwgMSkK"
        "ICAgICAgICBzdC5sb2NfeiA9IHJvdW5kKHJ2M2Qudmlld19sb2NhdGlvbi56LCAxKQogICAgICAgIHN0"
        "LnZpZXdfZGlzdGFuY2UgPSByb3VuZChydjNkLnZpZXdfZGlzdGFuY2UsIDEpCiAgICAgICAgd19weCwg"
        "aF9weCA9IHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodAogICAgICAgIGlmIGlzX29ydGhvOgogICAg"
        "ICAgICAgICBoXzNkID0gcnYzZC52aWV3X2Rpc3RhbmNlCiAgICAgICAgICAgIHdfM2QgPSBydjNkLnZp"
        "ZXdfZGlzdGFuY2UgKiAod19weCAvIGhfcHgpIGlmIGhfcHggPiAwIGVsc2UgcnYzZC52aWV3X2Rpc3Rh"
        "bmNlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbGVucyA9IGNvbnRleHQuc3BhY2VfZGF0YS5sZW5z"
        "CiAgICAgICAgICAgIGZvdiA9IDIgKiBtYXRoLmF0YW4oMzIuMCAvICgyICogbGVucykpCiAgICAgICAg"
        "ICAgIGhfM2QgPSAyICogcnYzZC52aWV3X2Rpc3RhbmNlICogbWF0aC50YW4oZm92IC8gMikKICAgICAg"
        "ICAgICAgd18zZCA9IGhfM2QgKiAod19weCAvIGhfcHgpIGlmIGhfcHggPiAwIGVsc2UgaF8zZAogICAg"
        "ICAgIHN0LnZpZXdfd2lkdGggPSByb3VuZCh3XzNkLCAxKQogICAgICAgIHN0LnZpZXdfaGVpZ2h0ID0g"
        "cm91bmQoaF8zZCwgMSkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBaSU9OQURfT1Rf"
        "Q29weVZpZXdJbmZvKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIo"
        "KX0uY29weV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4XloLHjgpLjgrPjg5Tjg7wg"
        "KDHooYzjgZrjgaQpIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBj"
        "b250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRpbmdzCiAgICAgICAgdGV4dCA9IChmIk1vZGU6IHtz"
        "dC52aWV3X21vZGV9XG5DZW50ZXIgWDoge3N0LmxvY194Oi4xZn1cbkNlbnRlciBZOiB7c3QubG9jX3k6"
        "LjFmfVxuIgogICAgICAgICAgICAgICAgZiJDZW50ZXIgWjoge3N0LmxvY196Oi4xZn1cbldpZHRoOiB7"
        "c3Qudmlld193aWR0aDouMWZ9XG5IZWlnaHQ6IHtzdC52aWV3X2hlaWdodDouMWZ9XG4iCiAgICAgICAg"
        "ICAgICAgICBmIkRpc3RhbmNlOiB7c3Qudmlld19kaXN0YW5jZTouMWZ9IikKICAgICAgICBjb250ZXh0"
        "LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9IHRleHQKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8n"
        "fSwgIueUu+mdouaDheWgseOCkuOCr+ODquODg+ODl+ODnOODvOODieOBq+OCs+ODlOODvOOBl+OBvuOB"
        "l+OBn+OAgiIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKCiMgPT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09CiMgMi4gVHJhbnNmb3JtIENvcGllciAmIEVkaXRvciAo44Oq"
        "44Ki44Or44K/44Kk44Og5Y+N5pigKQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PQpkZWYgdXBkYXRlX3RyYW5zZm9ybShzZWxmLCBjb250ZXh0KToKICAgIGlmIHNlbGYuaXNf"
        "ZmV0Y2hpbmc6IHJldHVybgogICAgb2JqID0gY29udGV4dC5hY3RpdmVfb2JqZWN0CiAgICBpZiBvYmo6"
        "CiAgICAgICAgIyDjgrnjg6njgqTjg4Djg7zjgoTmlbDlgKTlhaXlipvjga7lpInmm7TjgpLljbPluqfj"
        "gavjgqrjg5bjgrjjgqfjgq/jg4jjgavlj43mmKAKICAgICAgICBvYmoubG9jYXRpb24ueCA9IHNlbGYu"
        "bG9jX3gKICAgICAgICBvYmoubG9jYXRpb24ueSA9IHNlbGYubG9jX3kKICAgICAgICBvYmoubG9jYXRp"
        "b24ueiA9IHNlbGYubG9jX3oKICAgICAgICAjIOWbnui7ouOBr1VJKOW6puaVsOazlSnjgYvjgonlhoXp"
        "g6go44Op44K444Ki44OzKeOBq+WkieaPmwogICAgICAgIG9iai5yb3RhdGlvbl9ldWxlci54ID0gbWF0"
        "aC5yYWRpYW5zKHNlbGYucm90X3gpCiAgICAgICAgb2JqLnJvdGF0aW9uX2V1bGVyLnkgPSBtYXRoLnJh"
        "ZGlhbnMoc2VsZi5yb3RfeSkKICAgICAgICBvYmoucm90YXRpb25fZXVsZXIueiA9IG1hdGgucmFkaWFu"
        "cyhzZWxmLnJvdF96KQogICAgICAgIG9iai5zY2FsZS54ID0gc2VsZi5zY2FsZV94CiAgICAgICAgb2Jq"
        "LnNjYWxlLnkgPSBzZWxmLnNjYWxlX3kKICAgICAgICBvYmouc2NhbGUueiA9IHNlbGYuc2NhbGVfegoK"
        "Y2xhc3MgWklPTkFEX1RyYW5zZm9ybVNldHRpbmdzKFByb3BlcnR5R3JvdXApOgogICAgaXNfZmV0Y2hp"
        "bmc6IEJvb2xQcm9wZXJ0eShkZWZhdWx0PUZhbHNlKQogICAgbG9jX3g6IEZsb2F0UHJvcGVydHkobmFt"
        "ZT0iWCIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgbG9j"
        "X3k6IEZsb2F0UHJvcGVydHkobmFtZT0iWSIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRh"
        "dGVfdHJhbnNmb3JtKQogICAgbG9jX3o6IEZsb2F0UHJvcGVydHkobmFtZT0iWiIsIGRlZmF1bHQ9REVG"
        "QVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgcm90X3g6IEZsb2F0UHJvcGVydHko"
        "bmFtZT0iWCAoZGVnKSIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3Jt"
        "KQogICAgcm90X3k6IEZsb2F0UHJvcGVydHkobmFtZT0iWSAoZGVnKSIsIGRlZmF1bHQ9REVGQVVMVF9W"
        "QUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgcm90X3o6IEZsb2F0UHJvcGVydHkobmFtZT0i"
        "WiAoZGVnKSIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAg"
        "c2NhbGVfeDogRmxvYXRQcm9wZXJ0eShuYW1lPSJYIiwgZGVmYXVsdD1ERUZBVUxUX1NDQUxFX1ZBTCwg"
        "dXBkYXRlPXVwZGF0ZV90cmFuc2Zvcm0pCiAgICBzY2FsZV95OiBGbG9hdFByb3BlcnR5KG5hbWU9Ilki"
        "LCBkZWZhdWx0PURFRkFVTFRfU0NBTEVfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIHNj"
        "YWxlX3o6IEZsb2F0UHJvcGVydHkobmFtZT0iWiIsIGRlZmF1bHQ9REVGQVVMVF9TQ0FMRV9WQUwsIHVw"
        "ZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQoKY2xhc3MgWklPTkFEX09UX1VwZGF0ZVRyYW5zZm9ybShPcGVy"
        "YXRvcik6CiAgICBibF9pZG5hbWUgPSBmIntQUkVGSVhfVkFMLmxvd2VyKCl9LnVwZGF0ZV90cmFuc2Zv"
        "cm0iCiAgICBibF9sYWJlbCA9ICJVSeOBq+ihqOekuiAvIOabtOaWsCIKICAgIGJsX2Rlc2NyaXB0aW9u"
        "ID0gIumBuOaKnuOBl+OBpuOBhOOCi+OCquODluOCuOOCp+OCr+ODiOOBruePvuWcqOOBruS9jee9ruOD"
        "u+Wbnui7ouODu+OCueOCseODvOODq+OCklVJ44Gr5Y+W5b6X44GX44G+44GZIgogICAgZGVmIGV4ZWN1"
        "dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF90cmFuc19z"
        "ZXR0aW5ncwogICAgICAgIG9iaiA9IGNvbnRleHQuYWN0aXZlX29iamVjdAogICAgICAgIGlmIG5vdCBv"
        "Ymo6IAogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J1dBUk5JTkcnfSwgIuOCquODluOCuOOCp+OCr+OD"
        "iOOCkumBuOaKnuOBl+OBpuOBj+OBoOOBleOBhOOAgiIpCiAgICAgICAgICAgIHJldHVybiB7J0NBTkNF"
        "TExFRCd9CiAgICAgICAgCiAgICAgICAgIyBVSeOBq+WPjeaYoOOBleOBm+OCi+mWk+OBr+ODq+ODvOOD"
        "l+abtOaWsOOCkuS4gOaZguWBnOatogogICAgICAgIHN0LmlzX2ZldGNoaW5nID0gVHJ1ZQogICAgICAg"
        "IHN0LmxvY194ID0gb2JqLmxvY2F0aW9uLngKICAgICAgICBzdC5sb2NfeSA9IG9iai5sb2NhdGlvbi55"
        "CiAgICAgICAgc3QubG9jX3ogPSBvYmoubG9jYXRpb24uegogICAgICAgIHN0LnJvdF94ID0gbWF0aC5k"
        "ZWdyZWVzKG9iai5yb3RhdGlvbl9ldWxlci54KQogICAgICAgIHN0LnJvdF95ID0gbWF0aC5kZWdyZWVz"
        "KG9iai5yb3RhdGlvbl9ldWxlci55KQogICAgICAgIHN0LnJvdF96ID0gbWF0aC5kZWdyZWVzKG9iai5y"
        "b3RhdGlvbl9ldWxlci56KQogICAgICAgIHN0LnNjYWxlX3ggPSBvYmouc2NhbGUueAogICAgICAgIHN0"
        "LnNjYWxlX3kgPSBvYmouc2NhbGUueQogICAgICAgIHN0LnNjYWxlX3ogPSBvYmouc2NhbGUuegogICAg"
        "ICAgIHN0LmlzX2ZldGNoaW5nID0gRmFsc2UKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFz"
        "cyBaSU9OQURfT1RfQ29weVRyYW5zZm9ybUluZm8oT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ7"
        "UFJFRklYX1ZBTC5sb3dlcigpfS5jb3B5X3RyYW5zZm9ybSIKICAgIGJsX2xhYmVsID0gIuOBmeOBueOB"
        "puOBruaDheWgseOCkuOCs+ODlOODvCAoMeihjOOBmuOBpCkiCiAgICBibF9kZXNjcmlwdGlvbiA9ICJV"
        "SeOBq+ihqOekuuOBleOCjOOBpuOBhOOCi+ODiOODqeODs+OCueODleOCqeODvOODoOOBruaVsOWApOOC"
        "kuOCr+ODquODg+ODl+ODnOODvOODieOBq+OCs+ODlOODvOOBl+OBvuOBmSIKICAgIGRlZiBleGVjdXRl"
        "KHNlbGYsIGNvbnRleHQpOgogICAgICAgIHN0ID0gY29udGV4dC5zY2VuZS56aW9uYWRfdHJhbnNfc2V0"
        "dGluZ3MKICAgICAgICAjIOWwj+aVsOeCuTHmoYHjgavmj4PjgYjjgabjg4bjgq3jgrnjg4jljJYKICAg"
        "ICAgICB0ZXh0ID0gKGYiTG9jIFg6IHtzdC5sb2NfeDouMWZ9XG5Mb2MgWToge3N0LmxvY195Oi4xZn1c"
        "bkxvYyBaOiB7c3QubG9jX3o6LjFmfVxuIgogICAgICAgICAgICAgICAgZiJSb3QgWDoge3N0LnJvdF94"
        "Oi4xZn1cblJvdCBZOiB7c3Qucm90X3k6LjFmfVxuUm90IFo6IHtzdC5yb3RfejouMWZ9XG4iCiAgICAg"
        "ICAgICAgICAgICBmIlNjYWxlIFg6IHtzdC5zY2FsZV94Oi4xZn1cblNjYWxlIFk6IHtzdC5zY2FsZV95"
        "Oi4xZn1cblNjYWxlIFo6IHtzdC5zY2FsZV96Oi4xZn0iKQogICAgICAgIGNvbnRleHQud2luZG93X21h"
        "bmFnZXIuY2xpcGJvYXJkID0gdGV4dAogICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi44OI44Op"
        "44Oz44K544OV44Kp44O844Og5oOF5aCx44KS44Kv44Oq44OD44OX44Oc44O844OJ44Gr44Kz44OU44O8"
        "44GX44G+44GX44Gf44CCIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPj"
        "g7vjg6rjg7Pjgq/jg7vliYrpmaTmqZ/og70KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT0KY2xhc3MgWklPTkFEX09UX09wZW5VUkwoT3BlcmF0b3IpOgogICAgYmxfaWRuYW1l"
        "ID0gZiJ7UFJFRklYX1ZBTC5sb3dlcigpfS5vcGVuX3VybCI7IGJsX2xhYmVsID0gIlVSTOOCkumWi+OB"
        "jyIKICAgIHVybDogU3RyaW5nUHJvcGVydHkoZGVmYXVsdD0iIikKICAgIGRlZiBleGVjdXRlKHNlbGYs"
        "IGNvbnRleHQpOiAKICAgICAgICB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAgICAgcmV0dXJu"
        "IHsnRklOSVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX1JlbW92ZUFkZG9uKE9wZXJhdG9yKToKICAgIGJs"
        "X2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0ucmVtb3ZlX2FkZG9uIjsgYmxfbGFiZWwgPSAi"
        "44Ki44OJ44Kq44Oz44KS5YmK6Zmk44O76Kej6Zmk44GZ44KLIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwg"
        "Y29udGV4dCk6IAogICAgICAgIHVucmVnaXN0ZXIoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30K"
        "CgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOODkeODjeODqyBV"
        "SeWumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBa"
        "SU9OQURfUFRfVmlld1BhbmVsKFBhbmVsKToKICAgIGJsX2xhYmVsID0gIjEuIOeUu+mdouaDheWgsSAm"
        "IOOCquODluOCuOOCp+OCr+ODiOmFjee9riIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfdmlld19w"
        "YW5lbCIKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCc7IGJsX3JlZ2lvbl90eXBlID0gJ1VJJzsg"
        "YmxfY2F0ZWdvcnkgPSBBRERPTl9DQVRFR09SWTsgYmxfb3JkZXIgPSAwCiAgICAKICAgIGRlZiBkcmF3"
        "KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgc3QgPSBj"
        "b250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRpbmdzCiAgICAgICAgCiAgICAgICAgY29sID0gbGF5"
        "b3V0LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgIGNvbC5zY2FsZV95ID0gMS4yCiAgICAgICAgY29s"
        "Lm9wZXJhdG9yKFpJT05BRF9PVF9Nb3ZlVG9DZW50ZXIuYmxfaWRuYW1lLCBpY29uPSdWSUVXM0QnKQog"
        "ICAgICAgIAogICAgICAgIGxheW91dC5zZXBhcmF0b3IoKQogICAgICAgIGNvbCA9IGxheW91dC5jb2x1"
        "bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX1VwZGF0ZVZpZXdJbmZv"
        "LmJsX2lkbmFtZSwgaWNvbj0nRklMRV9SRUZSRVNIJykKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFE"
        "X09UX0NvcHlWaWV3SW5mby5ibF9pZG5hbWUsIGljb249J0NPUFlET1dOJykKICAgICAgICAKICAgICAg"
        "ICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD1mIk1vZGU6IHtzdC52aWV3"
        "X21vZGV9IiwgaWNvbj0nQ0FNRVJBX0RBVEEnKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2VudGVy"
        "OiAoe3N0LmxvY194Oi4xZn0sIHtzdC5sb2NfeTouMWZ9LCB7c3QubG9jX3o6LjFmfSkiKQogICAgICAg"
        "IGJveC5sYWJlbCh0ZXh0PWYiV2lkdGg6IHtzdC52aWV3X3dpZHRoOi4xZn0gLyBIZWlnaHQ6IHtzdC52"
        "aWV3X2hlaWdodDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIkRpc3RhbmNlOiB7c3Qudmll"
        "d19kaXN0YW5jZTouMWZ9IikKCmNsYXNzIFpJT05BRF9QVF9UcmFuc2Zvcm1QYW5lbChQYW5lbCk6CiAg"
        "ICBibF9sYWJlbCA9ICIyLiDjgqrjg5bjgrjjgqfjgq/jg4ggVHJhbnNmb3JtIgogICAgYmxfaWRuYW1l"
        "ID0gIlpJT05BRF9QVF90cmFuc2Zvcm1fcGFuZWwiCiAgICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0Qn"
        "OyBibF9yZWdpb25fdHlwZSA9ICdVSSc7IGJsX2NhdGVnb3J5ID0gQURET05fQ0FURUdPUlk7IGJsX29y"
        "ZGVyID0gMQogICAgCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBz"
        "ZWxmLmxheW91dAogICAgICAgIHN0ID0gY29udGV4dC5zY2VuZS56aW9uYWRfdHJhbnNfc2V0dGluZ3MK"
        "ICAgICAgICAKICAgICAgICBjb2wgPSBsYXlvdXQuY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgY29s"
        "Lm9wZXJhdG9yKFpJT05BRF9PVF9VcGRhdGVUcmFuc2Zvcm0uYmxfaWRuYW1lLCBpY29uPSdGSUxFX1JF"
        "RlJFU0gnKQogICAgICAgIGNvbC5vcGVyYXRvcihaSU9OQURfT1RfQ29weVRyYW5zZm9ybUluZm8uYmxf"
        "aWRuYW1lLCBpY29uPSdDT1BZRE9XTicpCiAgICAgICAgCiAgICAgICAgbGF5b3V0LnNlcGFyYXRvcigp"
        "CiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
        "IkxvY2F0aW9uOiIsIGljb249J0NPTl9MT0NMSUtFJykKICAgICAgICBjb2wgPSBib3guY29sdW1uKGFs"
        "aWduPVRydWUpCiAgICAgICAgY29sLnByb3Aoc3QsICJsb2NfeCIpOyBjb2wucHJvcChzdCwgImxvY195"
        "Iik7IGNvbC5wcm9wKHN0LCAibG9jX3oiKQogICAgICAgIAogICAgICAgIGJveCA9IGxheW91dC5ib3go"
        "KQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJSb3RhdGlvbiAoRGVncmVlcyk6IiwgaWNvbj0nQ09OX1JP"
        "VExJS0UnKQogICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wucHJv"
        "cChzdCwgInJvdF94Iik7IGNvbC5wcm9wKHN0LCAicm90X3kiKTsgY29sLnByb3Aoc3QsICJyb3RfeiIp"
        "CiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
        "IlNjYWxlOiIsIGljb249J0NPTl9TSVpFTElLRScpCiAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGln"
        "bj1UcnVlKQogICAgICAgIGNvbC5wcm9wKHN0LCAic2NhbGVfeCIpOyBjb2wucHJvcChzdCwgInNjYWxl"
        "X3kiKTsgY29sLnByb3Aoc3QsICJzY2FsZV96IikKCmNsYXNzIFpJT05BRF9QVF9MaW5rc1BhbmVsKFBh"
        "bmVsKToKICAgIGJsX2xhYmVsID0gIjMuIOODquODs+OCr+mbhiIKICAgIGJsX2lkbmFtZSA9ICJaSU9O"
        "QURfUFRfbGlua3NfcGFuZWwiCiAgICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0QnOyBibF9yZWdpb25f"
        "dHlwZSA9ICdVSSc7IGJsX2NhdGVnb3J5ID0gQURET05fQ0FURUdPUlk7IGJsX29yZGVyID0gMgogICAg"
        "CiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAog"
        "ICAgICAgIGxpbmtzID0gWwogICAgICAgICAgICAoTElOS19OQU1FXzEsIExJTktfVVJMXzEpLAogICAg"
        "ICAgICAgICAoTElOS19OQU1FXzIsIExJTktfVVJMXzIpLAogICAgICAgICAgICAoTElOS19OQU1FXzMs"
        "IExJTktfVVJMXzMpLAogICAgICAgICAgICAoTElOS19OQU1FXzQsIExJTktfVVJMXzQpLAogICAgICAg"
        "ICAgICAoTElOS19OQU1FXzUsIExJTktfVVJMXzUpCiAgICAgICAgXQogICAgICAgIGZvciBuYW1lLCB1"
        "cmwgaW4gbGlua3M6CiAgICAgICAgICAgIGlmIG5hbWUgYW5kIHVybDoKICAgICAgICAgICAgICAgIG9w"
        "ID0gbGF5b3V0Lm9wZXJhdG9yKFpJT05BRF9PVF9PcGVuVVJMLmJsX2lkbmFtZSwgdGV4dD1uYW1lLCBp"
        "Y29uPSdVUkwnKQogICAgICAgICAgICAgICAgb3AudXJsID0gdXJsCgpjbGFzcyBaSU9OQURfUFRfUmVt"
        "b3ZlUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAiNC4g44Ki44OJ44Kq44Oz5YmK6Zmk5a6f6KGM"
        "IgogICAgYmxfaWRuYW1lID0gIlpJT05BRF9QVF9yZW1vdmVfcGFuZWwiCiAgICBibF9zcGFjZV90eXBl"
        "ID0gJ1ZJRVdfM0QnOyBibF9yZWdpb25fdHlwZSA9ICdVSSc7IGJsX2NhdGVnb3J5ID0gQURET05fQ0FU"
        "RUdPUlk7IGJsX29yZGVyID0gMwogICAgYmxfb3B0aW9ucyA9IHsnREVGQVVMVF9DTE9TRUQnfQogICAg"
        "CiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KTogCiAgICAgICAgc2VsZi5sYXlvdXQubGFiZWwodGV4"
        "dD0i4oC75oq844GZ44Go44Ki44OJ44Kq44Oz44GM6Kej6Zmk44GV44KM44G+44GZIiwgaWNvbj0nRVJS"
        "T1InKQogICAgICAgIHNlbGYubGF5b3V0Lm9wZXJhdG9yKFpJT05BRF9PVF9SZW1vdmVBZGRvbi5ibF9p"
        "ZG5hbWUsIGljb249J0NBTkNFTCcpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT0KIyDnmbvpjLLjg7vop6PpmaTlh6bnkIYKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT0KY2xhc3NlcyA9ICgKICAgIFpJT05BRF9WaWV3U2V0dGluZ3MsIAogICAg"
        "WklPTkFEX1RyYW5zZm9ybVNldHRpbmdzLAogICAgWklPTkFEX09UX01vdmVUb0NlbnRlciwgCiAgICBa"
        "SU9OQURfT1RfVXBkYXRlVmlld0luZm8sIAogICAgWklPTkFEX09UX0NvcHlWaWV3SW5mbywKICAgIFpJ"
        "T05BRF9PVF9VcGRhdGVUcmFuc2Zvcm0sIAogICAgWklPTkFEX09UX0NvcHlUcmFuc2Zvcm1JbmZvLCAg"
        "IyDov73liqDjgZfjgZ/jgq/jg6njgrkKICAgIFpJT05BRF9PVF9PcGVuVVJMLCAKICAgIFpJT05BRF9P"
        "VF9SZW1vdmVBZGRvbiwKICAgIFpJT05BRF9QVF9WaWV3UGFuZWwsIAogICAgWklPTkFEX1BUX1RyYW5z"
        "Zm9ybVBhbmVsLCAKICAgIFpJT05BRF9QVF9MaW5rc1BhbmVsLCAKICAgIFpJT05BRF9QVF9SZW1vdmVQ"
        "YW5lbCwKKQoKZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIGNsYXNzZXM6IAogICAgICAgIGJw"
        "eS51dGlscy5yZWdpc3Rlcl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUuemlvbmFkX3ZpZXdf"
        "c2V0dGluZ3MgPSBQb2ludGVyUHJvcGVydHkodHlwZT1aSU9OQURfVmlld1NldHRpbmdzKQogICAgYnB5"
        "LnR5cGVzLlNjZW5lLnppb25hZF90cmFuc19zZXR0aW5ncyA9IFBvaW50ZXJQcm9wZXJ0eSh0eXBlPVpJ"
        "T05BRF9UcmFuc2Zvcm1TZXR0aW5ncykKCmRlZiB1bnJlZ2lzdGVyKCk6CiAgICBpZiBoYXNhdHRyKGJw"
        "eS50eXBlcy5TY2VuZSwgJ3ppb25hZF92aWV3X3NldHRpbmdzJyk6IGRlbCBicHkudHlwZXMuU2NlbmUu"
        "emlvbmFkX3ZpZXdfc2V0dGluZ3MKICAgIGlmIGhhc2F0dHIoYnB5LnR5cGVzLlNjZW5lLCAnemlvbmFk"
        "X3RyYW5zX3NldHRpbmdzJyk6IGRlbCBicHkudHlwZXMuU2NlbmUuemlvbmFkX3RyYW5zX3NldHRpbmdz"
        "CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIHRyeTogYnB5LnV0aWxzLnVu"
        "cmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6IHBhc3MKCmlmIF9f"
        "bmFtZV9fID09ICJfX21haW5fXyI6IAogICAgcmVnaXN0ZXIoKQ=="
        )
    },
    {
        "name": "コンテナ作成 一括読み込み 20260714_003",
        "code_b64": (
        "aW1wb3J0IGJweQppbXBvcnQgcmUKaW1wb3J0IG9zCmltcG9ydCBiYXNlNjQKaW1wb3J0IHdlYmJyb3dz"
        "ZXIKZnJvbSBicHkudHlwZXMgaW1wb3J0IE9wZXJhdG9yLCBQYW5lbCwgUHJvcGVydHlHcm91cCwgVUlM"
        "aXN0CmZyb20gYnB5LnByb3BzIGltcG9ydCBTdHJpbmdQcm9wZXJ0eSwgUG9pbnRlclByb3BlcnR5LCBD"
        "b2xsZWN0aW9uUHJvcGVydHksIEludFByb3BlcnR5CmZyb20gYnB5X2V4dHJhcy5pb191dGlscyBpbXBv"
        "cnQgSW1wb3J0SGVscGVyCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PQojIOOCs+ODs+ODhuODiueUn+aIkOODk+ODq+ODgOODvCDjgqLjg4njgqrj"
        "g7MgKEJhc2U2NCDjg5bjg63jg4Pjgq/lh7rlipsg77yGIOODquODs+OCr+ODu+WJiumZpOODkeODjeOD"
        "q+i/veWKoOeJiCkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT0KYmxfaW5mbyA9IHsKICAgICJuYW1lIjogIkNvbnRhaW5lciBCdWlsZGVyIChHZW5l"
        "cmF0b3IpIC0gU2FmZSBNb2RlIiwKICAgICJhdXRob3IiOiAiQUkiLAogICAgInZlcnNpb24iOiAoMiwg"
        "MywgMCksCiAgICAiYmxlbmRlciI6ICg0LCAwLCAwKSwKICAgICJsb2NhdGlvbiI6ICJWaWV3M0QgPiBT"
        "aWRlYmFyID4gQnVpbGRlciIsCiAgICAiZGVzY3JpcHRpb24iOiAi44Ko44Op44O844GM57W25a++44Gr"
        "6LW344GN44Gq44GE44KI44GG44GrQmFzZTY05aSJ5o+b44GX44Gm44Kz44Oz44OG44OK44Ki44OJ44Kq"
        "44Oz44KS55Sf5oiQ44GX44G+44GZIiwKICAgICJjYXRlZ29yeSI6ICJEZXZlbG9wbWVudCIsCn0KCiMg"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMg"
        "44OH44O844K/5qeL6YCgCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09CmNsYXNzIFpJT05BRF9CdWlsZGVySXRlbShQcm9wZXJ0eUdyb3VwKToKICAg"
        "IG5hbWU6IFN0cmluZ1Byb3BlcnR5KCkKICAgIHRleHRfcHRyOiBQb2ludGVyUHJvcGVydHkobmFtZT0i"
        "VGV4dCBEYXRhIiwgdHlwZT1icHkudHlwZXMuVGV4dCkKCmNsYXNzIFpJT05BRF9CdWlsZGVyUHJvcHMo"
        "UHJvcGVydHlHcm91cCk6CiAgICBpdGVtczogQ29sbGVjdGlvblByb3BlcnR5KHR5cGU9WklPTkFEX0J1"
        "aWxkZXJJdGVtKQogICAgYWN0aXZlX2luZGV4OiBJbnRQcm9wZXJ0eShkZWZhdWx0PTApCgoKIyA9PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgqrj"
        "g5rjg6zjg7zjgr/jg7w6IOi/veWKoOODu+WJiumZpOODu+ODquODs+OCr+ODu+OCouODs+OCpOODs+OC"
        "ueODiOODvOODqwojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PQpjbGFzcyBaSU9OQURfT1RfQnVpbGRlckFkZENsaXBib2FyZChPcGVyYXRvcik6CiAg"
        "ICBibF9pZG5hbWUgPSAiemlvbmFkLmJ1aWxkZXJfYWRkX2NsaXBib2FyZCIKICAgIGJsX2xhYmVsID0g"
        "IuOCr+ODquODg+ODl+ODnOODvOODieOBi+OCieWPluOCiui+vOOCgCIKICAgIAogICAgZGVmIGV4ZWN1"
        "dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgdGV4dCA9IGNvbnRleHQud2luZG93X21hbmFnZXIuY2xp"
        "cGJvYXJkCiAgICAgICAgaWYgbm90IHRleHQgb3IgbGVuKHRleHQuc3RyaXAoKSkgPT0gMDoKICAgICAg"
        "ICAgICAgc2VsZi5yZXBvcnQoeydXQVJOSU5HJ30sICLjgq/jg6rjg4Pjg5fjg5zjg7zjg4njgYznqbrj"
        "gafjgZnjgIIiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQogICAgICAgICAgICAKICAg"
        "ICAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ1siXCddbmFtZVsiXCddXHMqOlxzKlsiXCddKFteIlwnXSsp"
        "WyJcJ10nLCB0ZXh0KQogICAgICAgIGJhc2VfbmFtZSA9IG1hdGNoLmdyb3VwKDEpIGlmIG1hdGNoIGVs"
        "c2UgZiJDbGlwYm9hcmRfQWRkb25fe2xlbihjb250ZXh0LnNjZW5lLnppb25hZF9idWlsZGVyX3Byb3Bz"
        "Lml0ZW1zKSsxfSIKICAgICAgICAKICAgICAgICB0ID0gYnB5LmRhdGEudGV4dHMubmV3KG5hbWU9ZiJ7"
        "YmFzZV9uYW1lfS5weSIpCiAgICAgICAgdC53cml0ZSh0ZXh0KQogICAgICAgIAogICAgICAgIHByb3Bz"
        "ID0gY29udGV4dC5zY2VuZS56aW9uYWRfYnVpbGRlcl9wcm9wcwogICAgICAgIGl0ZW0gPSBwcm9wcy5p"
        "dGVtcy5hZGQoKQogICAgICAgIGl0ZW0ubmFtZSA9IGJhc2VfbmFtZQogICAgICAgIGl0ZW0udGV4dF9w"
        "dHIgPSB0CiAgICAgICAgcHJvcHMuYWN0aXZlX2luZGV4ID0gbGVuKHByb3BzLml0ZW1zKSAtIDEKICAg"
        "ICAgICAKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgZiJ7YmFzZV9uYW1lfSDjgpLov73liqDj"
        "gZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9C"
        "dWlsZGVyQWRkRmlsZShPcGVyYXRvciwgSW1wb3J0SGVscGVyKToKICAgIGJsX2lkbmFtZSA9ICJ6aW9u"
        "YWQuYnVpbGRlcl9hZGRfZmlsZSIKICAgIGJsX2xhYmVsID0gIuODleOCqeODq+ODgOOBi+OCiS5weeOC"
        "kumBuOOBtijopIfmlbDlj68pIgogICAgYmxfZGVzY3JpcHRpb24gPSAi6KSH5pWw44GuLnB544OV44Kh"
        "44Kk44Or44KS6YG45oqe44GX44Gm5LiA5bqm44Gr5Y+W44KK6L6844G/44G+44GZIChTaGlmdC9DdHJs"
        "44Kt44O844Gn6KSH5pWw6YG45oqeKSIKICAgIAogICAgZmlsZW5hbWVfZXh0ID0gIi5weSIKICAgIGZp"
        "bHRlcl9nbG9iOiBTdHJpbmdQcm9wZXJ0eShkZWZhdWx0PSIqLnB5Iiwgb3B0aW9ucz17J0hJRERFTid9"
        "KQogICAgCiAgICAjIOikh+aVsOODleOCoeOCpOODq+mBuOaKnueUqOOBruODl+ODreODkeODhuOCo+OC"
        "kui/veWKoAogICAgZmlsZXM6IENvbGxlY3Rpb25Qcm9wZXJ0eSgKICAgICAgICBuYW1lPSJGaWxlIFBh"
        "dGgiLAogICAgICAgIHR5cGU9YnB5LnR5cGVzLk9wZXJhdG9yRmlsZUxpc3RFbGVtZW50LAogICAgKQog"
        "ICAgZGlyZWN0b3J5OiBTdHJpbmdQcm9wZXJ0eSgKICAgICAgICBzdWJ0eXBlPSdESVJfUEFUSCcsCiAg"
        "ICApCiAgICAKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29u"
        "dGV4dC5zY2VuZS56aW9uYWRfYnVpbGRlcl9wcm9wcwogICAgICAgIGFkZGVkX2NvdW50ID0gMAogICAg"
        "ICAgIAogICAgICAgICMg6KSH5pWw6YG45oqe44GV44KM44Gf44OV44Kh44Kk44Or44KS6aCG55Wq44Gr"
        "5Yem55CG44GZ44KLCiAgICAgICAgaWYgc2VsZi5maWxlczoKICAgICAgICAgICAgZm9yIGZpbGVfZWxl"
        "bSBpbiBzZWxmLmZpbGVzOgogICAgICAgICAgICAgICAgbmFtZSA9IGZpbGVfZWxlbS5uYW1lCiAgICAg"
        "ICAgICAgICAgICBpZiBub3QgbmFtZToKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAg"
        "ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZmlsZXBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5k"
        "aXJlY3RvcnksIG5hbWUpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHRyeToKICAgICAg"
        "ICAgICAgICAgICAgICB3aXRoIG9wZW4oZmlsZXBhdGgsICdyJywgZW5jb2Rpbmc9J3V0Zi04JykgYXMg"
        "ZjoKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGYucmVhZCgpCiAgICAgICAgICAgICAgICBl"
        "eGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydFUlJP"
        "Uid9LCBmIuODleOCoeOCpOODq+OBruiqreOBv+i+vOOBv+WkseaVlzoge25hbWV9IC0ge2V9IikKICAg"
        "ICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg"
        "ICAgdCA9IGJweS5kYXRhLnRleHRzLm5ldyhuYW1lPW5hbWUpCiAgICAgICAgICAgICAgICB0LndyaXRl"
        "KHRleHQpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGl0ZW0gPSBwcm9wcy5pdGVtcy5h"
        "ZGQoKQogICAgICAgICAgICAgICAgaXRlbS5uYW1lID0gbmFtZS5yZXBsYWNlKCcucHknLCAnJykKICAg"
        "ICAgICAgICAgICAgIGl0ZW0udGV4dF9wdHIgPSB0CiAgICAgICAgICAgICAgICBhZGRlZF9jb3VudCAr"
        "PSAxCiAgICAgICAgICAgICAgICAKICAgICAgICBpZiBhZGRlZF9jb3VudCA+IDA6CiAgICAgICAgICAg"
        "IHByb3BzLmFjdGl2ZV9pbmRleCA9IGxlbihwcm9wcy5pdGVtcykgLSAxCiAgICAgICAgICAgIHNlbGYu"
        "cmVwb3J0KHsnSU5GTyd9LCBmInthZGRlZF9jb3VudH3lgIvjga7jg5XjgqHjgqTjg6vjgpLov73liqDj"
        "gZfjgb7jgZfjgZ8iKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklO"
        "Ryd9LCAi44OV44Kh44Kk44Or44GM6L+95Yqg44GV44KM44G+44Gb44KT44Gn44GX44GfIikKICAgICAg"
        "ICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICAgICAgCiAgICAgICAgcmV0dXJuIHsnRklO"
        "SVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX0J1aWxkZXJSZW1vdmUoT3BlcmF0b3IpOgogICAgYmxfaWRu"
        "YW1lID0gInppb25hZC5idWlsZGVyX3JlbW92ZV9pdGVtIgogICAgYmxfbGFiZWwgPSAi6YG45oqe44GX"
        "44Gf6aCF55uu44KS5YmK6ZmkIgogICAgCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAg"
        "ICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUuemlvbmFkX2J1aWxkZXJfcHJvcHMKICAgICAgICBpZiBu"
        "b3QgcHJvcHMuaXRlbXM6IHJldHVybiB7J0NBTkNFTExFRCd9CiAgICAgICAgCiAgICAgICAgaWR4ID0g"
        "cHJvcHMuYWN0aXZlX2luZGV4CiAgICAgICAgaXRlbSA9IHByb3BzLml0ZW1zW2lkeF0KICAgICAgICBp"
        "ZiBpdGVtLnRleHRfcHRyOgogICAgICAgICAgICBicHkuZGF0YS50ZXh0cy5yZW1vdmUoaXRlbS50ZXh0"
        "X3B0cikKICAgICAgICAgICAgCiAgICAgICAgcHJvcHMuaXRlbXMucmVtb3ZlKGlkeCkKICAgICAgICBw"
        "cm9wcy5hY3RpdmVfaW5kZXggPSBtYXgoMCwgbWluKGlkeCwgbGVuKHByb3BzLml0ZW1zKSAtIDEpKQog"
        "ICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9PcGVuVXJsKE9wZXJhdG9y"
        "KToKICAgIGJsX2lkbmFtZSA9ICJ6aW9uYWQub3Blbl91cmwiCiAgICBibF9sYWJlbCA9ICLjg6rjg7Pj"
        "gq/jgpLplovjgY8iCiAgICAKICAgIHVybDogU3RyaW5nUHJvcGVydHkoKQogICAgCiAgICBkZWYgZXhl"
        "Y3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAg"
        "ICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX1JlbW92ZUJ1aWxkZXIoT3BlcmF0"
        "b3IpOgogICAgYmxfaWRuYW1lID0gInppb25hZC5yZW1vdmVfYnVpbGRlciIKICAgIGJsX2xhYmVsID0g"
        "IlVucmVnaXN0ZXIgQnVpbGRlciIKICAgIGJsX2Rlc2NyaXB0aW9uID0gIuOBk+OBruODk+ODq+ODgOOD"
        "vOOCouODieOCquODs+OCkueEoeWKueWMluOBl+OAgVVJ44GL44KJ5raI5Y6744GX44G+44GZIgogICAg"
        "CiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBicHkuYXBwLnRpbWVycy5yZWdp"
        "c3Rlcih1bnJlZ2lzdGVyLCBmaXJzdF9pbnRlcnZhbD0wLjAxKQogICAgICAgIHJldHVybiB7J0ZJTklT"
        "SEVEJ30KCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PQojIOOCquODmuODrOODvOOCv+ODvDog44Kz44Oz44OG44OK44Kz44O844OJ44Gu55Sf5oiQ"
        "44Go5Ye65YqbICjjg6HjgqTjg7Plh6bnkIYpCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFpJT05BRF9PVF9CdWlsZGVyR2VuZXJhdGUo"
        "T3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInppb25hZC5idWlsZGVyX2dlbmVyYXRlIgogICAgYmxf"
        "bGFiZWwgPSAi5pu05paw44GV44KM44Gf44Kz44Oz44OG44OK44Kz44O844OJ44KS5Ye65YqbIgogICAg"
        "CiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
        "bmUuemlvbmFkX2J1aWxkZXJfcHJvcHMKICAgICAgICBpZiBub3QgcHJvcHMuaXRlbXM6CiAgICAgICAg"
        "ICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAi44Kz44O844OJ44GM5LiA44Gk44KC6L+95Yqg44GV"
        "44KM44Gm44GE44G+44Gb44KT44CCIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAg"
        "ICAgICAgICAgCiAgICAgICAgIyAxLiDntYTjgb/ovrzjgoDjgrPjg7zjg4njga7jg6rjgrnjg4jmlofl"
        "rZfliJfjgpLmp4vnr4kgKEJhc2U2NOOBp+WuieWFqOOBq+WkieaPmykKICAgICAgICBzdG9yZWRfY29k"
        "ZXNfc3RyID0gIlNUT1JFRF9DT0RFUyA9IFtcbiIKICAgICAgICBmb3IgaXRlbSBpbiBwcm9wcy5pdGVt"
        "czoKICAgICAgICAgICAgaWYgbm90IGl0ZW0udGV4dF9wdHI6IGNvbnRpbnVlCiAgICAgICAgICAgIHJh"
        "d19jb2RlID0gaXRlbS50ZXh0X3B0ci5hc19zdHJpbmcoKQogICAgICAgICAgICBzYWZlX25hbWUgPSBp"
        "dGVtLm5hbWUKICAgICAgICAgICAgCiAgICAgICAgICAgICMg5YWD44Kz44O844OJ44KSQmFzZTY05paH"
        "5a2X5YiX44Gr5aSJ5o+bCiAgICAgICAgICAgIGVuY29kZWRfYnl0ZXMgPSBiYXNlNjQuYjY0ZW5jb2Rl"
        "KHJhd19jb2RlLmVuY29kZSgndXRmLTgnKSkKICAgICAgICAgICAgZW5jb2RlZF9zdHIgPSBlbmNvZGVk"
        "X2J5dGVzLmRlY29kZSgndXRmLTgnKQogICAgICAgICAgICAKICAgICAgICAgICAgIyA4MOaWh+Wtl+OB"
        "lOOBqOOBq+WMuuWIh+OBo+OBpuimi+OChOOBmeOBhOODluODreODg+OCr+eKtuOBq+OBmeOCiwogICAg"
        "ICAgICAgICBjaHVua3MgPSBbZW5jb2RlZF9zdHJbaTppKzgwXSBmb3IgaSBpbiByYW5nZSgwLCBsZW4o"
        "ZW5jb2RlZF9zdHIpLCA4MCldCiAgICAgICAgICAgIGZvcm1hdHRlZF9iNjQgPSAnIlxuICAgICAgICAi"
        "Jy5qb2luKGNodW5rcykKICAgICAgICAgICAgCiAgICAgICAgICAgIHN0b3JlZF9jb2Rlc19zdHIgKz0g"
        "ZicgICAge3tcbicKICAgICAgICAgICAgc3RvcmVkX2NvZGVzX3N0ciArPSBmJyAgICAgICAgIm5hbWUi"
        "OiAie3NhZmVfbmFtZX0iLFxuJwogICAgICAgICAgICBzdG9yZWRfY29kZXNfc3RyICs9IGYnICAgICAg"
        "ICAiY29kZV9iNjQiOiAoXG4gICAgICAgICJ7Zm9ybWF0dGVkX2I2NH0iXG4gICAgICAgIClcbicKICAg"
        "ICAgICAgICAgc3RvcmVkX2NvZGVzX3N0ciArPSBmJyAgICB9fSxcbicKICAgICAgICBzdG9yZWRfY29k"
        "ZXNfc3RyICs9ICJdXG4iCiAgICAgICAgCiAgICAgICAgIyAyLiDlh7rlipvjgZnjgovjgrPjg7Pjg4bj"
        "g4rjgqLjg4njgqrjg7Pjga7jg4bjg7Pjg5fjg6zjg7zjg4gKICAgICAgICB0ZW1wbGF0ZSA9IGYiIiJp"
        "bXBvcnQgYnB5CmltcG9ydCBiYXNlNjQKaW1wb3J0IHdlYmJyb3dzZXIKZnJvbSBicHkudHlwZXMgaW1w"
        "b3J0IE9wZXJhdG9yLCBQYW5lbAoKYmxfaW5mbyA9IHt7CiAgICAibmFtZSI6ICJNeSBDdXN0b20gQWRk"
        "b24gQ29udGFpbmVyIiwKICAgICJhdXRob3IiOiAiR2VuZXJhdGVkIGJ5IEJ1aWxkZXIiLAogICAgInZl"
        "cnNpb24iOiAoMSwgMCwgMCksCiAgICAiYmxlbmRlciI6ICg0LCAwLCAwKSwKICAgICJsb2NhdGlvbiI6"
        "ICJWaWV3M0QgPiBTaWRlYmFyID4gQ29udGFpbmVyIiwKICAgICJkZXNjcmlwdGlvbiI6ICLopIfmlbDj"
        "ga7jgqLjg4njgqrjg7PjgrPjg7zjg4njgpLmoLzntI3jg7vlsZXplovjgZnjgovjgrPjg7Pjg4bjg4oi"
        "LAogICAgImNhdGVnb3J5IjogIkRldmVsb3BtZW50IiwKfX0KCntzdG9yZWRfY29kZXNfc3RyfQoKY2xh"
        "c3MgR0VORVJBVEVEX09UX09wZW5Db2RlKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJnZW5lcmF0"
        "ZWQub3Blbl9zdG9yZWRfY29kZSIKICAgIGJsX2xhYmVsID0gIuODhuOCreOCueODiOOCqOODh+OCo+OC"
        "v+OBp+mWi+OBjyIKICAgIAogICAgY29kZV9pbmRleDogYnB5LnByb3BzLkludFByb3BlcnR5KCkKICAg"
        "IAogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgaXRlbSA9IFNUT1JFRF9DT0RF"
        "U1tzZWxmLmNvZGVfaW5kZXhdCiAgICAgICAgdGV4dF9uYW1lID0gaXRlbVsibmFtZSJdICsgIi5weSIK"
        "ICAgICAgICAKICAgICAgICAjIEJhc2U2NOaWh+Wtl+WIl+OCkuWFg+OBrlB5dGhvbuOCs+ODvOODieOB"
        "q+W+qeWFg+OBmeOCiwogICAgICAgIGNvZGVfdGV4dCA9IGJhc2U2NC5iNjRkZWNvZGUoaXRlbVsiY29k"
        "ZV9iNjQiXSkuZGVjb2RlKCd1dGYtOCcpCiAgICAgICAgCiAgICAgICAgaWYgdGV4dF9uYW1lIGluIGJw"
        "eS5kYXRhLnRleHRzOgogICAgICAgICAgICB0ID0gYnB5LmRhdGEudGV4dHNbdGV4dF9uYW1lXQogICAg"
        "ICAgICAgICB0LmNsZWFyKCkKICAgICAgICAgICAgdC53cml0ZShjb2RlX3RleHQpCiAgICAgICAgZWxz"
        "ZToKICAgICAgICAgICAgdCA9IGJweS5kYXRhLnRleHRzLm5ldyh0ZXh0X25hbWUpCiAgICAgICAgICAg"
        "IHQudXNlX2Zha2VfdXNlciA9IFRydWUKICAgICAgICAgICAgdC53cml0ZShjb2RlX3RleHQpCiAgICAg"
        "ICAgICAgIAogICAgICAgIGVkaXRvcl9mb3VuZCA9IEZhbHNlCiAgICAgICAgZm9yIHdpbiBpbiBjb250"
        "ZXh0LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgICAgIGZvciBhcmVhIGluIHdpbi5zY3Jl"
        "ZW4uYXJlYXM6CiAgICAgICAgICAgICAgICBpZiBhcmVhLnR5cGUgPT0gJ1RFWFRfRURJVE9SJzoKICAg"
        "ICAgICAgICAgICAgICAgICBhcmVhLnNwYWNlcy5hY3RpdmUudGV4dCA9IHQKICAgICAgICAgICAgICAg"
        "ICAgICBlZGl0b3JfZm91bmQgPSBUcnVlCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAg"
        "ICAgaWYgZWRpdG9yX2ZvdW5kOgogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgIAog"
        "ICAgICAgIGlmIG5vdCBlZGl0b3JfZm91bmQ6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHt7J0lORk8n"
        "fX0sIGYiJ3t7dGV4dF9uYW1lfX0nIOOCkueUn+aIkOOBl+OBvuOBl+OBn+OAglRleHQgRWRpdG9y44KS"
        "6ZaL44GE44Gm44GP44Gg44GV44GE44CCIikKICAgICAgICByZXR1cm4ge3snRklOSVNIRUQnfX0KCmNs"
        "YXNzIEdFTkVSQVRFRF9PVF9PcGVuVXJsKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJnZW5lcmF0"
        "ZWQub3Blbl91cmwiCiAgICBibF9sYWJlbCA9ICLjg6rjg7Pjgq/jgpLplovjgY8iCiAgICAKICAgIHVy"
        "bDogYnB5LnByb3BzLlN0cmluZ1Byb3BlcnR5KCkKICAgIAogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29u"
        "dGV4dCk6CiAgICAgICAgd2ViYnJvd3Nlci5vcGVuKHNlbGYudXJsKQogICAgICAgIHJldHVybiB7eydG"
        "SU5JU0hFRCd9fQoKY2xhc3MgR0VORVJBVEVEX09UX1JlbW92ZUNvbnRhaW5lcihPcGVyYXRvcik6CiAg"
        "ICBibF9pZG5hbWUgPSAiZ2VuZXJhdGVkLnJlbW92ZV9jb250YWluZXIiCiAgICBibF9sYWJlbCA9ICJV"
        "bnJlZ2lzdGVyIENvbnRhaW5lciIKICAgIAogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAg"
        "ICAgICAgYnB5LmFwcC50aW1lcnMucmVnaXN0ZXIodW5yZWdpc3RlciwgZmlyc3RfaW50ZXJ2YWw9MC4w"
        "MSkKICAgICAgICByZXR1cm4ge3snRklOSVNIRUQnfX0KCgpjbGFzcyBHRU5FUkFURURfUFRfQ29udGFp"
        "bmVyUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAi44Oe44Kk44O744Ki44OJ44Kq44Oz44O744Kz"
        "44Oz44OG44OKIgogICAgYmxfaWRuYW1lID0gIkdFTkVSQVRFRF9QVF9jb250YWluZXJfcGFuZWwiCiAg"
        "ICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0QnCiAgICBibF9yZWdpb25fdHlwZSA9ICdVSScKICAgIGJs"
        "X2NhdGVnb3J5ID0gIkNvbnRhaW5lciIKICAgIGJsX29yZGVyID0gMQoKICAgIGRlZiBkcmF3KHNlbGYs"
        "IGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgYm94ID0gbGF5b3V0"
        "LmJveCgpCiAgICAgICAgaWYgbm90IFNUT1JFRF9DT0RFUzoKICAgICAgICAgICAgYm94LmxhYmVsKHRl"
        "eHQ9IuOCs+ODvOODieOBjOOBguOCiuOBvuOBm+OCkyIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAg"
        "Zm9yIGksIGl0ZW0gaW4gZW51bWVyYXRlKFNUT1JFRF9DT0RFUyk6CiAgICAgICAgICAgICAgICByb3cg"
        "PSBib3gucm93KGFsaWduPVRydWUpCiAgICAgICAgICAgICAgICByb3cubGFiZWwodGV4dD1pdGVtWyJu"
        "YW1lIl0sIGljb249J0ZJTEVfU0NSSVBUJykKICAgICAgICAgICAgICAgIG9wID0gcm93Lm9wZXJhdG9y"
        "KEdFTkVSQVRFRF9PVF9PcGVuQ29kZS5ibF9pZG5hbWUsIHRleHQ9IuWxlemWi+OBl+OBpumWi+OBjyIs"
        "IGljb249J1RFWFQnKQogICAgICAgICAgICAgICAgb3AuY29kZV9pbmRleCA9IGkKCmNsYXNzIEdFTkVS"
        "QVRFRF9QVF9Db250YWluZXJMaW5rc1BhbmVsKFBhbmVsKToKICAgIGJsX2xhYmVsID0gIuODquODs+OC"
        "ryIKICAgIGJsX2lkbmFtZSA9ICJHRU5FUkFURURfUFRfY29udGFpbmVyX2xpbmtzX3BhbmVsIgogICAg"
        "Ymxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9j"
        "YXRlZ29yeSA9ICJDb250YWluZXIiCiAgICBibF9vcmRlciA9IDIKCiAgICBkZWYgZHJhdyhzZWxmLCBj"
        "b250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIGJveCA9IGxheW91dC5i"
        "b3goKQogICAgICAgIG9wID0gYm94Lm9wZXJhdG9yKEdFTkVSQVRFRF9PVF9PcGVuVXJsLmJsX2lkbmFt"
        "ZSwgdGV4dD0iYmxlbmRlciDjgrPjg7Pjg4bjg4rjgIDjgIAyMDI2MDcxMyIsIGljb249J1VSTCcpCiAg"
        "ICAgICAgb3AudXJsID0gImh0dHBzOi8vbm90ZS5jb20vemlvbmFkbWlsbGlvbi9uL245YTQ3ZDg4ZmU3"
        "YjQiCgpjbGFzcyBHRU5FUkFURURfUFRfQ29udGFpbmVyUmVtb3ZlUGFuZWwoUGFuZWwpOgogICAgYmxf"
        "bGFiZWwgPSAi44Ki44OJ44Kq44Oz5YmK6ZmkIgogICAgYmxfaWRuYW1lID0gIkdFTkVSQVRFRF9QVF9j"
        "b250YWluZXJfcmVtb3ZlX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJwogICAgYmxf"
        "cmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJDb250YWluZXIiCiAgICBibF9vcHRp"
        "b25zID0ge3snREVGQVVMVF9DTE9TRUQnfX0KICAgIGJsX29yZGVyID0gMwoKICAgIGRlZiBkcmF3KHNl"
        "bGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgYm94ID0gbGF5"
        "b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IuOBk+OBruOCs+ODs+ODhuODiuOCouODieOC"
        "quODs+OCkua2iOWOu+OBl+OBvuOBmSIsIGljb249J0VSUk9SJykKICAgICAgICBib3gub3BlcmF0b3Io"
        "R0VORVJBVEVEX09UX1JlbW92ZUNvbnRhaW5lci5ibF9pZG5hbWUsIGljb249J0NBTkNFTCcpCgoKY2xh"
        "c3NlcyA9ICgKICAgIEdFTkVSQVRFRF9PVF9PcGVuQ29kZSwKICAgIEdFTkVSQVRFRF9PVF9PcGVuVXJs"
        "LAogICAgR0VORVJBVEVEX09UX1JlbW92ZUNvbnRhaW5lciwKICAgIEdFTkVSQVRFRF9QVF9Db250YWlu"
        "ZXJQYW5lbCwKICAgIEdFTkVSQVRFRF9QVF9Db250YWluZXJMaW5rc1BhbmVsLAogICAgR0VORVJBVEVE"
        "X1BUX0NvbnRhaW5lclJlbW92ZVBhbmVsCikKCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBj"
        "bGFzc2VzOgogICAgICAgIGJweS51dGlscy5yZWdpc3Rlcl9jbGFzcyhjbHMpCgpkZWYgdW5yZWdpc3Rl"
        "cigpOgogICAgZm9yIGNscyBpbiByZXZlcnNlZChjbGFzc2VzKToKICAgICAgICBicHkudXRpbHMudW5y"
        "ZWdpc3Rlcl9jbGFzcyhjbHMpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgcmVnaXN0ZXIo"
        "KQoiIiIKICAgICAgICAKICAgICAgICAjIDMuIOODhuOCreOCueODiOOCqOODh+OCo+OCv+OBq+aWsOOB"
        "l+OBhOODleOCoeOCpOODq+OBqOOBl+OBpuWHuuWKmwogICAgICAgIG91dF9uYW1lID0gIk15X0dlbmVy"
        "YXRlZF9Db250YWluZXIucHkiCiAgICAgICAgaWYgb3V0X25hbWUgaW4gYnB5LmRhdGEudGV4dHM6CiAg"
        "ICAgICAgICAgIG91dF90ZXh0ID0gYnB5LmRhdGEudGV4dHNbb3V0X25hbWVdCiAgICAgICAgICAgIG91"
        "dF90ZXh0LmNsZWFyKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICBvdXRfdGV4dCA9IGJweS5kYXRh"
        "LnRleHRzLm5ldyhvdXRfbmFtZSkKICAgICAgICAgICAgCiAgICAgICAgb3V0X3RleHQud3JpdGUodGVt"
        "cGxhdGUpCiAgICAgICAgCiAgICAgICAgZm9yIHdpbiBpbiBjb250ZXh0LndpbmRvd19tYW5hZ2VyLndp"
        "bmRvd3M6CiAgICAgICAgICAgIGZvciBhcmVhIGluIHdpbi5zY3JlZW4uYXJlYXM6CiAgICAgICAgICAg"
        "ICAgICBpZiBhcmVhLnR5cGUgPT0gJ1RFWFRfRURJVE9SJzoKICAgICAgICAgICAgICAgICAgICBhcmVh"
        "LnNwYWNlcy5hY3RpdmUudGV4dCA9IG91dF90ZXh0CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg"
        "c2VsZi5yZXBvcnQoeydJTkZPJ30sIGYi44Kz44Oz44OG44OK44Kz44O844OJICd7b3V0X25hbWV9JyDj"
        "gpLnlJ/miJDjgZfjgb7jgZfjgZ/vvIEiKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCgojID09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIFVJ"
        "IOODkeODjeODqyAoVUlMaXN044KS5ZCr44KAKQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBaSU9OQURfVUxfQnVpbGRlckxpc3QoVUlM"
        "aXN0KToKICAgIGRlZiBkcmF3X2l0ZW0oc2VsZiwgY29udGV4dCwgbGF5b3V0LCBkYXRhLCBpdGVtLCBp"
        "Y29uLCBhY3RpdmVfZGF0YSwgYWN0aXZlX3Byb3BuYW1lKToKICAgICAgICBsYXlvdXQubGFiZWwodGV4"
        "dD1pdGVtLm5hbWUsIGljb249J0ZJTEVfU0NSSVBUJykKCmNsYXNzIFpJT05BRF9QVF9CdWlsZGVyUGFu"
        "ZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAi44Kz44Oz44OG44OK55Sf5oiQ44OT44Or44OA44O8Igog"
        "ICAgYmxfaWRuYW1lID0gIlpJT05BRF9QVF9idWlsZGVyX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9"
        "ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJCdWls"
        "ZGVyIgogICAgYmxfb3JkZXIgPSAxCgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAg"
        "bGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUuemlvbmFkX2J1"
        "aWxkZXJfcHJvcHMKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gu"
        "bGFiZWwodGV4dD0iMS4g5Y+W44KK6L6844G/5pON5L2cOiIpCiAgICAgICAgYm94Lm9wZXJhdG9yKFpJ"
        "T05BRF9PVF9CdWlsZGVyQWRkRmlsZS5ibF9pZG5hbWUsIGljb249J0ZJTEVCUk9XU0VSJykKICAgICAg"
        "ICBib3gub3BlcmF0b3IoWklPTkFEX09UX0J1aWxkZXJBZGRDbGlwYm9hcmQuYmxfaWRuYW1lLCBpY29u"
        "PSdQQVNURURPV04nKQogICAgICAgIAogICAgICAgIGxheW91dC5zZXBhcmF0b3IoKQogICAgICAgIGxh"
        "eW91dC5sYWJlbCh0ZXh0PSIyLiDlj5bjgorovrzjgb/muIjjgb/jga7jgrPjg7zjg4nkuIDopqc6IikK"
        "ICAgICAgICAKICAgICAgICByb3cgPSBsYXlvdXQucm93KCkKICAgICAgICByb3cudGVtcGxhdGVfbGlz"
        "dCgiWklPTkFEX1VMX0J1aWxkZXJMaXN0IiwgIiIsIHByb3BzLCAiaXRlbXMiLCBwcm9wcywgImFjdGl2"
        "ZV9pbmRleCIsIHJvd3M9NSkKICAgICAgICAKICAgICAgICBjb2wgPSByb3cuY29sdW1uKGFsaWduPVRy"
        "dWUpCiAgICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9CdWlsZGVyUmVtb3ZlLmJsX2lkbmFtZSwg"
        "dGV4dD0iIiwgaWNvbj0nUkVNT1ZFJykKICAgICAgICAKICAgICAgICBsYXlvdXQuc2VwYXJhdG9yKCkK"
        "ICAgICAgICBsYXlvdXQubGFiZWwodGV4dD0iMy4g44Ki44OJ44Kq44Oz44Gu5L2c5oiQOiIpCiAgICAg"
        "ICAgY29sID0gbGF5b3V0LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgIGNvbC5zY2FsZV95ID0gMS41"
        "CiAgICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9CdWlsZGVyR2VuZXJhdGUuYmxfaWRuYW1lLCBp"
        "Y29uPSdGSUxFX1RJQ0snKQoKY2xhc3MgWklPTkFEX1BUX0J1aWxkZXJMaW5rc1BhbmVsKFBhbmVsKToK"
        "ICAgIGJsX2xhYmVsID0gIuODquODs+OCryIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfYnVpbGRl"
        "cl9saW5rc19wYW5lbCIKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90"
        "eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiQnVpbGRlciIKICAgIGJsX29yZGVyID0gMgoKICAg"
        "IGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAg"
        "ICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgb3AgPSBib3gub3BlcmF0b3IoWklPTkFEX09UX09w"
        "ZW5VcmwuYmxfaWRuYW1lLCB0ZXh0PSJibGVuZGVyIOOCs+ODs+ODhuODiuOAgOOAgDIwMjYwNzEzIiwg"
        "aWNvbj0nVVJMJykKICAgICAgICBvcC51cmwgPSAiaHR0cHM6Ly9ub3RlLmNvbS96aW9uYWRtaWxsaW9u"
        "L24vbjlhNDdkODhmZTdiNCIKCmNsYXNzIFpJT05BRF9QVF9CdWlsZGVyUmVtb3ZlUGFuZWwoUGFuZWwp"
        "OgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz5YmK6ZmkIgogICAgYmxfaWRuYW1lID0gIlpJT05B"
        "RF9QVF9idWlsZGVyX3JlbW92ZV9wYW5lbCIKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAg"
        "IGJsX3JlZ2lvbl90eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiQnVpbGRlciIKICAgIGJsX29w"
        "dGlvbnMgPSB7J0RFRkFVTFRfQ0xPU0VEJ30KICAgIGJsX29yZGVyID0gMwoKICAgIGRlZiBkcmF3KHNl"
        "bGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgYm94ID0gbGF5"
        "b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IuOBk+OBruODk+ODq+ODgOODvOOCouODieOC"
        "quODs+OCkua2iOWOu+OBl+OBvuOBmSIsIGljb249J0VSUk9SJykKICAgICAgICBib3gub3BlcmF0b3Io"
        "WklPTkFEX09UX1JlbW92ZUJ1aWxkZXIuYmxfaWRuYW1lLCBpY29uPSdDQU5DRUwnKQoKCiMgPT09PT09"
        "PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMg55m76Yyy"
        "44O76Kej6ZmkCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
        "PT09PT09PT09CmNsYXNzZXMgPSAoCiAgICBaSU9OQURfQnVpbGRlckl0ZW0sCiAgICBaSU9OQURfQnVp"
        "bGRlclByb3BzLAogICAgWklPTkFEX09UX0J1aWxkZXJBZGRDbGlwYm9hcmQsCiAgICBaSU9OQURfT1Rf"
        "QnVpbGRlckFkZEZpbGUsCiAgICBaSU9OQURfT1RfQnVpbGRlclJlbW92ZSwKICAgIFpJT05BRF9PVF9P"
        "cGVuVXJsLAogICAgWklPTkFEX09UX1JlbW92ZUJ1aWxkZXIsCiAgICBaSU9OQURfT1RfQnVpbGRlckdl"
        "bmVyYXRlLAogICAgWklPTkFEX1VMX0J1aWxkZXJMaXN0LAogICAgWklPTkFEX1BUX0J1aWxkZXJQYW5l"
        "bCwKICAgIFpJT05BRF9QVF9CdWlsZGVyTGlua3NQYW5lbCwKICAgIFpJT05BRF9QVF9CdWlsZGVyUmVt"
        "b3ZlUGFuZWwsCikKCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOgogICAgICAg"
        "IGJweS51dGlscy5yZWdpc3Rlcl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUuemlvbmFkX2J1"
        "aWxkZXJfcHJvcHMgPSBQb2ludGVyUHJvcGVydHkodHlwZT1aSU9OQURfQnVpbGRlclByb3BzKQoKZGVm"
        "IHVucmVnaXN0ZXIoKToKICAgIGlmIGhhc2F0dHIoYnB5LnR5cGVzLlNjZW5lLCAnemlvbmFkX2J1aWxk"
        "ZXJfcHJvcHMnKToKICAgICAgICBkZWwgYnB5LnR5cGVzLlNjZW5lLnppb25hZF9idWlsZGVyX3Byb3Bz"
        "CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lz"
        "dGVyX2NsYXNzKGNscykKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICByZWdpc3Rlcigp"
        )
    },
]

class GENERATED_OT_OpenCode(Operator):
    bl_idname = "generated.open_stored_code"
    bl_label = "テキストエディタで開く"
    
    code_index: bpy.props.IntProperty()
    
    def execute(self, context):
        item = STORED_CODES[self.code_index]
        text_name = item["name"] + ".py"
        
        # Base64文字列を元のPythonコードに復元する
        code_text = base64.b64decode(item["code_b64"]).decode('utf-8')
        
        if text_name in bpy.data.texts:
            t = bpy.data.texts[text_name]
            t.clear()
            t.write(code_text)
        else:
            t = bpy.data.texts.new(text_name)
            t.use_fake_user = True
            t.write(code_text)
            
        editor_found = False
        for win in context.window_manager.windows:
            for area in win.screen.areas:
                if area.type == 'TEXT_EDITOR':
                    area.spaces.active.text = t
                    editor_found = True
                    break
            if editor_found:
                break
                
        if not editor_found:
            self.report({'INFO'}, f"'{text_name}' を生成しました。Text Editorを開いてください。")
        return {'FINISHED'}

class GENERATED_OT_OpenUrl(Operator):
    bl_idname = "generated.open_url"
    bl_label = "リンクを開く"
    
    url: bpy.props.StringProperty()
    
    def execute(self, context):
        webbrowser.open(self.url)
        return {'FINISHED'}

class GENERATED_OT_RemoveContainer(Operator):
    bl_idname = "generated.remove_container"
    bl_label = "Unregister Container"
    
    def execute(self, context):
        bpy.app.timers.register(unregister, first_interval=0.01)
        return {'FINISHED'}

class GENERATED_PT_ContainerPanel(Panel):
    bl_label = "マイ・アドオン・コンテナ"
    bl_idname = "GENERATED_PT_container_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Container"
    bl_order = 1

    def draw(self, context):
        layout = self.layout
        box = layout.box()
        if not STORED_CODES:
            box.label(text="コードがありません")
        else:
            for i, item in enumerate(STORED_CODES):
                row = box.row(align=True)
                row.label(text=item["name"], icon='FILE_SCRIPT')
                op = row.operator(GENERATED_OT_OpenCode.bl_idname, text="展開して開く", icon='TEXT')
                op.code_index = i

class GENERATED_PT_ContainerLinksPanel(Panel):
    bl_label = "リンク"
    bl_idname = "GENERATED_PT_container_links_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Container"
    bl_order = 2

    def draw(self, context):
        layout = self.layout
        box = layout.box()
        op = box.operator(GENERATED_OT_OpenUrl.bl_idname, text="blender コンテナ  20260713", icon='URL')
        op.url = "<https://note.com/zionadmillion/n/n9a47d88fe7b4>"

class GENERATED_PT_ContainerRemovePanel(Panel):
    bl_label = "アドオン削除"
    bl_idname = "GENERATED_PT_container_remove_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Container"
    bl_options = {'DEFAULT_CLOSED'}
    bl_order = 3

    def draw(self, context):
        layout = self.layout
        box = layout.box()
        box.label(text="このコンテナアドオンを消去します", icon='ERROR')
        box.operator(GENERATED_OT_RemoveContainer.bl_idname, icon='CANCEL')

classes = (
    GENERATED_OT_OpenCode,
    GENERATED_OT_OpenUrl,
    GENERATED_OT_RemoveContainer,
    GENERATED_PT_ContainerPanel,
    GENERATED_PT_ContainerLinksPanel,
    GENERATED_PT_ContainerRemovePanel
)

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

def unregister():
    for cls in reversed(classes):
        bpy.utils.unregister_class(cls)

if __name__ == "__main__":
    register()