{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIFBSSU1BUlkgTUVUQSBUQUdTIC0tPgogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDx0aXRsZT5Bc2hhYmFGbGlnaHRzIHwgU2NlbmljIEZsaWdodHMgT3ZlciBUaGUgUGVhcmwgb2YgQWZyaWNhIHwgVWdhbmRhIFRvdXJzPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9InRpdGxlIiBjb250ZW50PSJBc2hhYmFGbGlnaHRzIHwgU2NlbmljIEZsaWdodHMgT3ZlciBUaGUgUGVhcmwgb2YgQWZyaWNhIHwgVWdhbmRhIFRvdXJzIj4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJFeHBlcmllbmNlIFVnYW5kYSBmcm9tIGFib3ZlIHdpdGggQXNoYWJhRmxpZ2h0cyEgU2NlbmljIGZsaWdodCB0b3VycyBvdmVyIHRoZSBTb3VyY2Ugb2YgdGhlIE5pbGUsIExha2UgVmljdG9yaWEsIGFuZCBNdXJjaGlzb24gRmFsbHMuIFBpbG90ZWQgYnkgQ2FwdGFpbiBGYXJpZGFoIEFzaGFiYSAtIFVnYW5kYSdzIHBpb25lZXJpbmcgZmVtYWxlIGF2aWF0b3IuIEJvb2sgY2VsZWJyYXRpb24gZmxpZ2h0cyBmb3IgYmlydGhkYXlzLCBhbm5pdmVyc2FyaWVzICYgbW9yZSEiPgogICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IkFzaGFiYUZsaWdodHMsIHNjZW5pYyBmbGlnaHRzIFVnYW5kYSwgUGVhcmwgb2YgQWZyaWNhIGZsaWdodHMsIENhcHRhaW4gRmFyaWRhaCBBc2hhYmEsIEppbmphIGZsaWdodCB0b3VycywgTGFrZSBWaWN0b3JpYSB0b3VycywgTXVyY2hpc29uIEZhbGxzIGZsaWdodHMsIFVnYW5kYSB0cmF2ZWwgYWdlbmN5LCBiaXJ0aGRheSBmbGlnaHQgZ2lmdHMgVWdhbmRhLCBjZWxlYnJhdGlvbiBmbGlnaHRzIEthbXBhbGEsIHNhZmFyaSBmbGlnaHRzIFVnYW5kYSwgYWVyaWFsIHRvdXJzIEVhc3QgQWZyaWNhIj4KICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iQXNoYWJhRmxpZ2h0cyAtIENhcHRhaW4gRmFyaWRhaCBBc2hhYmEiPgogICAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCwgZm9sbG93Ij4KICAgIDxtZXRhIG5hbWU9Imxhbmd1YWdlIiBjb250ZW50PSJFbmdsaXNoIj4KICAgIDxtZXRhIG5hbWU9InJldmlzaXQtYWZ0ZXIiIGNvbnRlbnQ9IjMgZGF5cyI+CiAgICAKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIENBTk9OSUNBTCBVUkwgLS0+CiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vYXNoYWJhZmxpZ2h0cy50cmF2ZWwvd2VsY29tZSI+CiAgICAKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIE9QRU4gR1JBUEggLyBGQUNFQk9PSyAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL2FzaGFiYWZsaWdodHMudHJhdmVsL3dlbGNvbWUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJBc2hhYmFGbGlnaHRzIHwgU2NlbmljIEZsaWdodHMgT3ZlciBUaGUgUGVhcmwgb2YgQWZyaWNhIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0i4pyI77iPIEV4cGVyaWVuY2UgVWdhbmRhIGZyb20gYWJvdmUhIFNjZW5pYyBmbGlnaHQgdG91cnMgb3ZlciB0aGUgU291cmNlIG9mIHRoZSBOaWxlLCBMYWtlIFZpY3RvcmlhICYgbW9yZS4gUGlsb3RlZCBieSBDYXB0YWluIEZhcmlkYWggQXNoYWJhIC0gVWdhbmRhJ3MgcGlvbmVlcmluZyBmZW1hbGUgYXZpYXRvci4iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iQXNoYWJhRmxpZ2h0cyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6bG9jYWxlIiBjb250ZW50PSJlbl9VUyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vYXNoYWJhZmxpZ2h0cy50cmF2ZWwvb2ctc2NlbmljLWZsaWdodC5qcGciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSIxMjAwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjYzMCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6YWx0IiBjb250ZW50PSJBc2hhYmFGbGlnaHRzIC0gU2NlbmljIEZsaWdodHMgT3ZlciBUaGUgUGVhcmwgb2YgQWZyaWNhIFVnYW5kYSI+CiAgICAKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIFRXSVRURVIgQ0FSRCAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSJAQXNoYWJhRmFyaWRhaCI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNyZWF0b3IiIGNvbnRlbnQ9IkBBc2hhYmFGYXJpZGFoIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6dXJsIiBjb250ZW50PSJodHRwczovL2FzaGFiYWZsaWdodHMudHJhdmVsL3dlbGNvbWUiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjp0aXRsZSIgY29udGVudD0iQXNoYWJhRmxpZ2h0cyB8IFNjZW5pYyBGbGlnaHRzIE92ZXIgVGhlIFBlYXJsIG9mIEFmcmljYSI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmRlc2NyaXB0aW9uIiBjb250ZW50PSLinIjvuI8gRXhwZXJpZW5jZSBVZ2FuZGEgZnJvbSBhYm92ZSEgU2NlbmljIGZsaWdodHMgb3ZlciB0aGUgU291cmNlIG9mIHRoZSBOaWxlLCBMYWtlIFZpY3RvcmlhICYgbW9yZS4gQm9vayB5b3VyIGFkdmVudHVyZSB0b2RheSEiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9hc2hhYmFmbGlnaHRzLnRyYXZlbC90d2l0dGVyLXNjZW5pYy5qcGciPgogICAgCiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPCEtLSBUSEVNRSAmIEFQUCBNRVRBIC0tPgogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMEExNjI4Ij4KICAgIDxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMEExNjI4Ij4KICAgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iQXNoYWJhRmxpZ2h0cyI+CiAgICA8bWV0YSBuYW1lPSJhcHBsaWNhdGlvbi1uYW1lIiBjb250ZW50PSJBc2hhYmFGbGlnaHRzIFRyYXZlbCI+CiAgICAKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIEdFTyAmIExPQ0FUSU9OIC0tPgogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDxtZXRhIG5hbWU9Imdlby5yZWdpb24iIGNvbnRlbnQ9IlVHIj4KICAgIDxtZXRhIG5hbWU9Imdlby5wbGFjZW5hbWUiIGNvbnRlbnQ9IkthbXBhbGEsIFVnYW5kYSI+CiAgICA8bWV0YSBuYW1lPSJnZW8ucG9zaXRpb24iIGNvbnRlbnQ9IjAuMzQ3NjszMi41ODI1Ij4KICAgIDxtZXRhIG5hbWU9IklDQk0iIGNvbnRlbnQ9IjAuMzQ3NiwgMzIuNTgyNSI+CiAgICAKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIFNUUlVDVFVSRUQgREFUQSAtIEpTT04tTEQgLS0+CiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsKICAgICAgICAiQGNvbnRleHQiOiAiaHR0cHM6Ly9zY2hlbWEub3JnIiwKICAgICAgICAiQHR5cGUiOiAiVG91cmlzdEF0dHJhY3Rpb24iLAogICAgICAgICJuYW1lIjogIkFzaGFiYUZsaWdodHMgU2NlbmljIFRvdXJzIiwKICAgICAgICAiYWx0ZXJuYXRlTmFtZSI6ICJBc2hhYmFGbGlnaHRzIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJlbWl1bSBzY2VuaWMgZmxpZ2h0IHRvdXJzIG92ZXIgVWdhbmRhIC0gVGhlIFBlYXJsIG9mIEFmcmljYS4gRXhwZXJpZW5jZSBhZXJpYWwgdmlld3Mgb2YgdGhlIFNvdXJjZSBvZiB0aGUgTmlsZSwgTGFrZSBWaWN0b3JpYSwgTXVyY2hpc29uIEZhbGxzLCBhbmQgbW9yZSB3aXRoIENhcHRhaW4gRmFyaWRhaCBBc2hhYmEuIiwKICAgICAgICAidXJsIjogImh0dHBzOi8vYXNoYWJhZmxpZ2h0cy50cmF2ZWwiLAogICAgICAgICJpbWFnZSI6ICJodHRwczovL2FzaGFiYWZsaWdodHMudHJhdmVsL3NjZW5pYy1hZXJpYWwtdmlldy5qcGciLAogICAgICAgICJ0ZWxlcGhvbmUiOiAiKzI1Njc3NTYzMTE1NyIsCiAgICAgICAgImVtYWlsIjogImFzaGFiYWZhcmlkYWg1N0BnbWFpbC5jb20iLAogICAgICAgICJhZGRyZXNzIjogewogICAgICAgICAgICAiQHR5cGUiOiAiUG9zdGFsQWRkcmVzcyIsCiAgICAgICAgICAgICJhZGRyZXNzTG9jYWxpdHkiOiAiS2FtcGFsYSIsCiAgICAgICAgICAgICJhZGRyZXNzQ291bnRyeSI6ICJVRyIKICAgICAgICB9LAogICAgICAgICJnZW8iOiB7CiAgICAgICAgICAgICJAdHlwZSI6ICJHZW9Db29yZGluYXRlcyIsCiAgICAgICAgICAgICJsYXRpdHVkZSI6ICIwLjM0NzYiLAogICAgICAgICAgICAibG9uZ2l0dWRlIjogIjMyLjU4MjUiCiAgICAgICAgfSwKICAgICAgICAib3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiI6IHsKICAgICAgICAgICAgIkB0eXBlIjogIk9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLAogICAgICAgICAgICAiZGF5T2ZXZWVrIjogWyJNb25kYXkiLCAiVHVlc2RheSIsICJXZWRuZXNkYXkiLCAiVGh1cnNkYXkiLCAiRnJpZGF5IiwgIlNhdHVyZGF5IiwgIlN1bmRheSJdLAogICAgICAgICAgICAib3BlbnMiOiAiMDY6MDAiLAogICAgICAgICAgICAiY2xvc2VzIjogIjE4OjAwIgogICAgICAgIH0sCiAgICAgICAgInByaWNlUmFuZ2UiOiAiJCQiLAogICAgICAgICJ0b3VyaXN0VHlwZSI6IFsiQWR2ZW50dXJlIHRyYXZlbGVycyIsICJTYWZhcmkgdG91cmlzdHMiLCAiUGhvdG9ncmFwaGVycyIsICJDZWxlYnJhdGlvbiBzZWVrZXJzIiwgIkNvcnBvcmF0ZSBncm91cHMiXSwKICAgICAgICAiYXZhaWxhYmxlTGFuZ3VhZ2UiOiBbIkVuZ2xpc2giXSwKICAgICAgICAiaXNBY2Nlc3NpYmxlRm9yRnJlZSI6IGZhbHNlLAogICAgICAgICJwdWJsaWNBY2Nlc3MiOiB0cnVlLAogICAgICAgICJmb3VuZGVyIjogewogICAgICAgICAgICAiQHR5cGUiOiAiUGVyc29uIiwKICAgICAgICAgICAgIm5hbWUiOiAiQ2FwdGFpbiBGYXJpZGFoIEFzaGFiYSIsCiAgICAgICAgICAgICJqb2JUaXRsZSI6ICJDb21tZXJjaWFsIFBpbG90ICYgRm91bmRlciIsCiAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9jYXB0YWluYXNoYWJhLmFmcmljYSIKICAgICAgICB9LAogICAgICAgICJzYW1lQXMiOiBbCiAgICAgICAgICAgICJodHRwczovL2luc3RhZ3JhbS5jb20vYXNoYWJhRmFyaWRhaCIsCiAgICAgICAgICAgICJodHRwczovL3Rpa3Rvay5jb20vQGNhcHRhc2hhYmFmYXJpZGFoIiwKICAgICAgICAgICAgImh0dHBzOi8vdHdpdHRlci5jb20vQXNoYWJhRmFyaWRhaCIsCiAgICAgICAgICAgICJodHRwczovL2xpbmtlZGluLmNvbS9pbi9jYXB0LWFzaGFiYS1mYXJpZGFoLTE0MDUwMTRhIgogICAgICAgIF0KICAgIH0KICAgIDwvc2NyaXB0PgogICAgCiAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgewogICAgICAgICJAY29udGV4dCI6ICJodHRwczovL3NjaGVtYS5vcmciLAogICAgICAgICJAdHlwZSI6ICJUcmF2ZWxBZ2VuY3kiLAogICAgICAgICJuYW1lIjogIkFzaGFiYUZsaWdodHMiLAogICAgICAgICJkZXNjcmlwdGlvbiI6ICJVZ2FuZGEncyBwcmVtaWVyIHNjZW5pYyBmbGlnaHQgdG91ciBjb21wYW55IG9mZmVyaW5nIGFlcmlhbCBleHBlcmllbmNlcyBvdmVyIFRoZSBQZWFybCBvZiBBZnJpY2EiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hc2hhYmFmbGlnaHRzLnRyYXZlbCIsCiAgICAgICAgInRlbGVwaG9uZSI6ICIrMjU2Nzc1NjMxMTU3IiwKICAgICAgICAiZW1haWwiOiAiYXNoYWJhZmFyaWRhaDU3QGdtYWlsLmNvbSIsCiAgICAgICAgImFkZHJlc3MiOiB7CiAgICAgICAgICAgICJAdHlwZSI6ICJQb3N0YWxBZGRyZXNzIiwKICAgICAgICAgICAgImFkZHJlc3NMb2NhbGl0eSI6ICJLYW1wYWxhIiwKICAgICAgICAgICAgImFkZHJlc3NDb3VudHJ5IjogIlVnYW5kYSIKICAgICAgICB9LAogICAgICAgICJhcmVhU2VydmVkIjogewogICAgICAgICAgICAiQHR5cGUiOiAiQ291bnRyeSIsCiAgICAgICAgICAgICJuYW1lIjogIlVnYW5kYSIKICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlVHlwZSI6IFsiU2NlbmljIEZsaWdodHMiLCAiQWVyaWFsIFRvdXJzIiwgIlNhZmFyaSBGbGlnaHRzIiwgIkNlbGVicmF0aW9uIEZsaWdodHMiLCAiQ29ycG9yYXRlIEZsaWdodHMiXSwKICAgICAgICAicG90ZW50aWFsQWN0aW9uIjogewogICAgICAgICAgICAiQHR5cGUiOiAiUmVzZXJ2ZUFjdGlvbiIsCiAgICAgICAgICAgICJ0YXJnZXQiOiB7CiAgICAgICAgICAgICAgICAiQHR5cGUiOiAiRW50cnlQb2ludCIsCiAgICAgICAgICAgICAgICAidXJsVGVtcGxhdGUiOiAiaHR0cHM6Ly93YS5tZS8yNTY3NzU2MzExNTc/dGV4dD1IZWxsbyElMjBJJTIwd2FudCUyMHRvJTIwYm9vayUyMGElMjBzY2VuaWMlMjBmbGlnaHQlMjBvdmVyJTIwVGhlJTIwUGVhcmwlMjBvZiUyMEFmcmljYSEiLAogICAgICAgICAgICAgICAgImFjdGlvblBsYXRmb3JtIjogWyJodHRwOi8vc2NoZW1hLm9yZy9Nb2JpbGVXZWJQbGF0Zm9ybSIsICJodHRwOi8vc2NoZW1hLm9yZy9EZXNrdG9wV2ViUGxhdGZvcm0iXQogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzdWx0IjogewogICAgICAgICAgICAgICAgIkB0eXBlIjogIlJlc2VydmF0aW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogIlNjZW5pYyBGbGlnaHQgQm9va2luZyIKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIDwvc2NyaXB0PgogICAgCiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPCEtLSBGT05UUyAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iPgogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3V0Zml0OndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMDs4MDA7OTAwJmZhbWlseT1ETStTZXJpZitEaXNwbGF5Oml0YWxAMDsxJmZhbWlseT1TcGFjZStNb25vOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICAKICAgIDxzdHlsZT4KICAgICAgICA6cm9vdCB7CiAgICAgICAgICAgIC0tc2t5LWRlZXA6ICMwQTE2Mjg7CiAgICAgICAgICAgIC0tc2t5LW1pZG5pZ2h0OiAjMEYyNzQ0OwogICAgICAgICAgICAtLXNreS10d2lsaWdodDogIzFBM0E1QzsKICAgICAgICAgICAgLS1za3ktaG9yaXpvbjogIzJENUE3QjsKICAgICAgICAgICAgLS1za3ktZGF3bjogI0Y5NzMxNjsKICAgICAgICAgICAgLS1za3ktc3VucmlzZTogI0ZCQkYyNDsKICAgICAgICAgICAgLS1za3ktZ29sZDogI0ZGRDkzRDsKICAgICAgICAgICAgLS1wZWFybC1nb2xkOiAjRDRBODUzOwogICAgICAgICAgICAtLXdoYXRzYXBwLWdyZWVuOiAjMjVEMzY2OwogICAgICAgICAgICAtLWNsb3VkLXdoaXRlOiAjRkZGRkZGOwogICAgICAgICAgICAtLXRleHQtYnJpZ2h0OiAjRkZGRkZGOwogICAgICAgICAgICAtLXRleHQtc29mdDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwogICAgICAgICAgICAtLXRleHQtbXV0ZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsKICAgICAgICB9CgogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICBodG1sIHsKICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgICAgfQoKICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1za3ktZGVlcCk7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWJyaWdodCk7CiAgICAgICAgfQoKICAgICAgICAvKiA9PT09PT09PT09IFNLWSBCQUNLR1JPVU5EID09PT09PT09PT0gKi8KICAgICAgICAuc2t5LWNhbnZhcyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB6LWluZGV4OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSAxMjAlLCB2YXIoLS1za3ktaG9yaXpvbikgMCUsIHRyYW5zcGFyZW50IDYwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgMTAlLCByZ2JhKDI0OSwgMTE1LCAyMiwgMC4yKSAwJSwgdHJhbnNwYXJlbnQgNDAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDIwJSAyMCUsIHJnYmEoMjUxLCAxOTEsIDM2LCAwLjE1KSAwJSwgdHJhbnNwYXJlbnQgMzUlKSwKICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLXNreS1kZWVwKSAwJSwgdmFyKC0tc2t5LW1pZG5pZ2h0KSAyNSUsIHZhcigtLXNreS10d2lsaWdodCkgNTAlLCB2YXIoLS1za3ktaG9yaXpvbikgMTAwJSk7CiAgICAgICAgfQoKICAgICAgICAvKiA9PT09PT09PT09IFNUQVJTID09PT09PT09PT0gKi8KICAgICAgICAuc3RhcnMgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogNDAlOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5zdGFyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB3aWR0aDogM3B4OwogICAgICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2xvdWQtd2hpdGUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogdHdpbmtsZSA0cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIC5zdGFyOm50aC1jaGlsZCgxKSB7IGxlZnQ6IDglOyB0b3A6IDEyJTsgYW5pbWF0aW9uLWRlbGF5OiAwczsgfQogICAgICAgIC5zdGFyOm50aC1jaGlsZCgyKSB7IGxlZnQ6IDIyJTsgdG9wOiA2JTsgYW5pbWF0aW9uLWRlbGF5OiAwLjZzOyB3aWR0aDogNHB4OyBoZWlnaHQ6IDRweDsgfQogICAgICAgIC5zdGFyOm50aC1jaGlsZCgzKSB7IGxlZnQ6IDQwJTsgdG9wOiAxOCU7IGFuaW1hdGlvbi1kZWxheTogMS4yczsgfQogICAgICAgIC5zdGFyOm50aC1jaGlsZCg0KSB7IGxlZnQ6IDU4JTsgdG9wOiA4JTsgYW5pbWF0aW9uLWRlbGF5OiAxLjhzOyB9CiAgICAgICAgLnN0YXI6bnRoLWNoaWxkKDUpIHsgbGVmdDogNzUlOyB0b3A6IDE1JTsgYW5pbWF0aW9uLWRlbGF5OiAyLjRzOyB3aWR0aDogMnB4OyBoZWlnaHQ6IDJweDsgfQogICAgICAgIC5zdGFyOm50aC1jaGlsZCg2KSB7IGxlZnQ6IDg4JTsgdG9wOiAyMiU7IGFuaW1hdGlvbi1kZWxheTogM3M7IH0KICAgICAgICAuc3RhcjpudGgtY2hpbGQoNykgeyBsZWZ0OiAxNSU7IHRvcDogMjglOyBhbmltYXRpb24tZGVsYXk6IDMuNnM7IHdpZHRoOiAycHg7IGhlaWdodDogMnB4OyB9CiAgICAgICAgLnN0YXI6bnRoLWNoaWxkKDgpIHsgbGVmdDogNTAlOyB0b3A6IDQlOyBhbmltYXRpb24tZGVsYXk6IDAuM3M7IHdpZHRoOiA0cHg7IGhlaWdodDogNHB4OyB9CiAgICAgICAgLnN0YXI6bnRoLWNoaWxkKDkpIHsgbGVmdDogOTIlOyB0b3A6IDEwJTsgYW5pbWF0aW9uLWRlbGF5OiAyLjFzOyB9CiAgICAgICAgLnN0YXI6bnRoLWNoaWxkKDEwKSB7IGxlZnQ6IDUlOyB0b3A6IDIwJTsgYW5pbWF0aW9uLWRlbGF5OiAyLjdzOyB9CgogICAgICAgIEBrZXlmcmFtZXMgdHdpbmtsZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC4yOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9CiAgICAgICAgICAgIDUwJSB7IG9wYWNpdHk6IDAuOTsgdHJhbnNmb3JtOiBzY2FsZSgxLjQpOyB9CiAgICAgICAgfQoKICAgICAgICAvKiA9PT09PT09PT09IENMT1VEUyA9PT09PT09PT09ICovCiAgICAgICAgLmNsb3Vkcy1sYXllciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5jbG91ZCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjIpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpIDEwMCUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDsKICAgICAgICAgICAgZmlsdGVyOiBibHVyKDEwcHgpOwogICAgICAgIH0KCiAgICAgICAgLmNsb3VkLTEgewogICAgICAgICAgICB3aWR0aDogMjIwcHg7CiAgICAgICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICAgICAgdG9wOiAxNSU7CiAgICAgICAgICAgIGxlZnQ6IC0xMDBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG9hdENsb3VkIDM1cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIC5jbG91ZC0yIHsKICAgICAgICAgICAgd2lkdGg6IDE4MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgIHRvcDogMzUlOwogICAgICAgICAgICByaWdodDogLTgwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRDbG91ZCA0MHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgcmV2ZXJzZTsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMTBzOwogICAgICAgIH0KCiAgICAgICAgLmNsb3VkLTMgewogICAgICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgIGhlaWdodDogNTVweDsKICAgICAgICAgICAgdG9wOiA2MCU7CiAgICAgICAgICAgIGxlZnQ6IC05MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0Q2xvdWQgMzBzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC01czsKICAgICAgICB9CgogICAgICAgIC5jbG91ZC00IHsKICAgICAgICAgICAgd2lkdGg6IDE2MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDQ1cHg7CiAgICAgICAgICAgIHRvcDogODAlOwogICAgICAgICAgICByaWdodDogLTcwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRDbG91ZCA0NXMgZWFzZS1pbi1vdXQgaW5maW5pdGUgcmV2ZXJzZTsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMTVzOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBmbG9hdENsb3VkIHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTsgb3BhY2l0eTogMC4zOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCkgdHJhbnNsYXRlWSgtMTVweCk7IG9wYWNpdHk6IDAuNTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCk7IG9wYWNpdHk6IDAuMzsgfQogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBQTEFORVMgPT09PT09PT09PSAqLwogICAgICAgIC5wbGFuZXMtbGF5ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgei1pbmRleDogMzsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAucGxhbmUgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAyMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSk7CiAgICAgICAgfQoKICAgICAgICAucGxhbmUtMSB7CiAgICAgICAgICAgIHRvcDogMjAlOwogICAgICAgICAgICBsZWZ0OiAtNjBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbHlBY3Jvc3MxIDIycyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICAucGxhbmUtMiB7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICByaWdodDogLTYwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbHlBY3Jvc3MyIDI4cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLTEyczsKICAgICAgICB9CgogICAgICAgIC5wbGFuZS0zIHsKICAgICAgICAgICAgdG9wOiA3NSU7CiAgICAgICAgICAgIGxlZnQ6IC02MHB4OwogICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbHlBY3Jvc3MxIDMycyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLThzOwogICAgICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZseUFjcm9zczEgewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSg1ZGVnKTsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICA4JSB7IG9wYWNpdHk6IDAuODsgfQogICAgICAgICAgICA5MiUgeyBvcGFjaXR5OiAwLjg7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMHZ3ICsgMTUwcHgpKSB0cmFuc2xhdGVZKC01MHB4KSByb3RhdGUoNWRlZyk7IG9wYWNpdHk6IDA7IH0KICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgZmx5QWNyb3NzMiB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCkgcm90YXRlKC01ZGVnKSBzY2FsZVgoLTEpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgICAgIDglIHsgb3BhY2l0eTogMC42OyB9CiAgICAgICAgICAgIDkyJSB7IG9wYWNpdHk6IDAuNjsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTEwMHZ3IC0gMTUwcHgpKSB0cmFuc2xhdGVZKDQwcHgpIHJvdGF0ZSgtNWRlZykgc2NhbGVYKC0xKTsgb3BhY2l0eTogMDsgfQogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBDT05UQUlORVIgPT09PT09PT09PSAqLwogICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMzBweCAyNXB4OwogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgewogICAgICAgICAgICAuY29udGFpbmVyIHsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggNDBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBTQ0FOIFNFQ1RJT04gPT09PT09PT09PSAqLwogICAgICAgIC5zY2FuLXNlY3Rpb24gewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHggMDsKICAgICAgICB9CgogICAgICAgIC5zY2FuLWFycm93cyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDMwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYm91bmNlVXAgMS44cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIC5zY2FuLWFycm93IHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc2t5LXN1bnJpc2UpOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDM1cHggcmdiYSgyNTEsIDE5MSwgMzYsIDAuNyk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBib3VuY2VVcCB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBvcGFjaXR5OiAwLjU7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNXB4KTsgb3BhY2l0eTogMTsgfQogICAgICAgIH0KCiAgICAgICAgLnNjYW4tdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNvZnQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogNHB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBIRVJPIFNFQ1RJT04gPT09PT09PT09PSAqLwogICAgICAgIC5oZXJvLXNlY3Rpb24gewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMDsKICAgICAgICB9CgogICAgICAgIC5oZXJvLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDVyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcGxhbmVIb3ZlciAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgcGxhbmVIb3ZlciB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgtNWRlZyk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KSByb3RhdGUoNWRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5oZXJvLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdETSBTZXJpZiBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy4ycmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1icmlnaHQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmhlcm8tdGl0bGUgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuaGVyby1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1za3ktc3VucmlzZSk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuaGVyby10YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNvZnQpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC8qID09PT09PT09PT0gUEVBUkwgQkFER0UgPT09PT09PT09PSAqLwogICAgICAgIC5wZWFybC1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjEyLCAxNjgsIDgzLCAwLjIpIDAlLCByZ2JhKDI0OSwgMTE1LCAyMiwgMC4yKSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcGVhcmwtZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMjVweDsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgfQoKICAgICAgICAucGVhcmwtYmFkZ2UtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgIH0KCiAgICAgICAgLnBlYXJsLWJhZGdlLXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXBlYXJsLWdvbGQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBBVURJRU5DRSBDQVJEUyA9PT09PT09PT09ICovCiAgICAgICAgLmF1ZGllbmNlLXNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBtYXJnaW46IDM1cHggMDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA1MDBweCkgewogICAgICAgICAgICAuYXVkaWVuY2Utc2VjdGlvbiB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5hdWRpZW5jZS1jYXJkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjAzKSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgcGFkZGluZzogMjVweCAyMHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpOwogICAgICAgIH0KCiAgICAgICAgLmF1ZGllbmNlLWNhcmQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2t5LXN1bnJpc2UpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDI0OSwgMTE1LCAyMiwgMC4yKTsKICAgICAgICB9CgogICAgICAgIC5hdWRpZW5jZS1jYXJkLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDNyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQoKICAgICAgICAuYXVkaWVuY2UtY2FyZC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRE0gU2VyaWYgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtYnJpZ2h0KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CgogICAgICAgIC5hdWRpZW5jZS1jYXJkLWxpc3QgewogICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICAgICAgICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBDVEEgU0VDVElPTiA9PT09PT09PT09ICovCiAgICAgICAgLmN0YS1zZWN0aW9uIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDA7CiAgICAgICAgfQoKICAgICAgICAuY3RhLWFycm93cyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDMwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYm91bmNlRG93biAxLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgLmN0YS1hcnJvdyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy41cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2hhdHNhcHAtZ3JlZW4pOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDM1cHggcmdiYSgzNywgMjExLCAxMDIsIDAuNyk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBib3VuY2VEb3duIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IG9wYWNpdHk6IDAuNTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjVweCk7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CgogICAgICAgIC5jdGEtYnV0dG9ucyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jdGEtcHJpbWFyeSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS13aGF0c2FwcC1ncmVlbiksICMyMEJBNUMpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1icmlnaHQpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHBhZGRpbmc6IDIycHggNDVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNjBweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCAxNXB4IDUwcHggcmdiYSgzNywgMjExLCAxMDIsIDAuNCksCiAgICAgICAgICAgICAgICAwIDAgMCA0cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBhbmltYXRpb246IGN0YVB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgLmN0YS1wcmltYXJ5OmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDEuMDMpOwogICAgICAgICAgICBib3gtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgMjVweCA3MHB4IHJnYmEoMzcsIDIxMSwgMTAyLCAwLjUpLAogICAgICAgICAgICAgICAgMCAwIDAgNXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGN0YVB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDE1cHggNTBweCByZ2JhKDM3LCAyMTEsIDEwMiwgMC40KSwgMCAwIDAgNHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfQogICAgICAgICAgICA1MCUgeyBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDM3LCAyMTEsIDEwMiwgMC41KSwgMCAwIDAgNnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7IH0KICAgICAgICB9CgogICAgICAgIC5jdGEtc2Vjb25kYXJ5IHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc2t5LXN1bnJpc2UpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggNDBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNjBweDsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tc2t5LXN1bnJpc2UpOwogICAgICAgICAgICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmN0YS1zZWNvbmRhcnk6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xNSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgICB9CgogICAgICAgIC5jdGEtc3VidGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnU3BhY2UgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgICB9CgogICAgICAgIC8qID09PT09PT09PT0gQ0FQVEFJTiBTRUNUSU9OID09PT09PT09PT0gKi8KICAgICAgICAuY2FwdGFpbi1zZWN0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMTIsIDE2OCwgODMsIDAuMSkgMCUsIHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjA4KSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMTIsIDE2OCwgODMsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjVweDsKICAgICAgICAgICAgbWFyZ2luOiA0MHB4IDA7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jYXB0YWluLWJhZGdlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wZWFybC1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CgogICAgICAgIC5jYXB0YWluLW5hbWUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0RNIFNlcmlmIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWJyaWdodCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQoKICAgICAgICAuY2FwdGFpbi10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc2t5LXN1bnJpc2UpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcHRhaW4tY3JlZGVudGlhbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgICAgfQoKICAgICAgICAuY3JlZGVudGlhbC10YWcgewogICAgICAgICAgICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtYnJpZ2h0KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBERVNUSU5BVElPTlMgPT09PT09PT09PSAqLwogICAgICAgIC5kZXN0aW5hdGlvbnMtc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luOiA0MHB4IDA7CiAgICAgICAgfQoKICAgICAgICAuZGVzdGluYXRpb25zLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmRlc3RpbmF0aW9ucy1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlc3RpbmF0aW9uLXBpbGwgewogICAgICAgICAgICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtYnJpZ2h0KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg0NSwgOTAsIDEyMywgMC41KSAwJSwgcmdiYSgyNiwgNTgsIDkyLCAwLjUpIDEwMCUpOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5kZXN0aW5hdGlvbi1waWxsOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc2t5LWRhd24pLCB2YXIoLS1za3ktc3VucmlzZSkpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOwogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBGT09URVIgPT09PT09PT09PSAqLwogICAgICAgIC5mb290ZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMCAzMHB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0MHB4OwogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci1zb2NpYWwgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgIH0KCiAgICAgICAgLnNvY2lhbC1pY29uIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHdpZHRoOiA1MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xKSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuc29jaWFsLWljb246aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCkgc2NhbGUoMS4xKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2t5LXN1bnJpc2UpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNreS1zdW5yaXNlKTsKICAgICAgICB9CgogICAgICAgIC5wb3dlcmVkLWJ5IHsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgICAgfQoKICAgICAgICAucG93ZXJlZC1sYWJlbCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIH0KCiAgICAgICAgLnBvd2VyZWQtbGluayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wZWFybC1nb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnBvd2VyZWQtbGluazpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1za3ktc3VucmlzZSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgfQoKICAgICAgICAucG93ZXJlZC10YWdsaW5lIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLWNvcHlyaWdodCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIH0KCiAgICAgICAgLyogPT09PT09PT09PSBBQ0NFU1NJQklMSVRZID09PT09PT09PT0gKi8KICAgICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICAgICAgICAgICAucGxhbmUsIC5jbG91ZCwgLnN0YXIsIC5zY2FuLWFycm93cywgLmN0YS1hcnJvd3MsCiAgICAgICAgICAgIC5jdGEtcHJpbWFyeSwgLmhlcm8taWNvbiB7CiAgICAgICAgICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICAgIDwhLS0gU2t5IEJhY2tncm91bmQgLS0+CiAgICA8ZGl2IGNsYXNzPSJza3ktY2FudmFzIj48L2Rpdj4KCiAgICA8IS0tIFN0YXJzIC0tPgogICAgPGRpdiBjbGFzcz0ic3RhcnMiPgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXIiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBDbG91ZHMgLS0+CiAgICA8ZGl2IGNsYXNzPSJjbG91ZHMtbGF5ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3VkIGNsb3VkLTEiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3VkIGNsb3VkLTIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3VkIGNsb3VkLTMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3VkIGNsb3VkLTQiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBQbGFuZXMgLS0+CiAgICA8ZGl2IGNsYXNzPSJwbGFuZXMtbGF5ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYW5lIHBsYW5lLTEiPuKciO+4jzwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYW5lIHBsYW5lLTIiPuKciO+4jzwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYW5lIHBsYW5lLTMiPvCfm6nvuI88L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgCiAgICAgICAgPCEtLSBTY2FuIFNlY3Rpb24gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNjYW4tc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjYW4tYXJyb3dzIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzY2FuLWFycm93Ij7ilrI8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2Nhbi1hcnJvdyI+4payPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNjYW4tYXJyb3ciPuKWsjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwIGNsYXNzPSJzY2FuLXRleHQiPlNjYW4gdG8gRXhwbG9yZTwvcD4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gSGVybyBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJoZXJvLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZXJvLWljb24iPvCfm6s8L2Rpdj4KICAgICAgICAgICAgPGgxIGNsYXNzPSJoZXJvLXRpdGxlIj5Bc2hhYmFGbGlnaHRzPC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9Imhlcm8tc3VidGl0bGUiPlNjZW5pYyBGbGlnaHQgVG91cnM8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJoZXJvLXRhZ2xpbmUiPkV4cGVyaWVuY2UgYnJlYXRodGFraW5nIGFlcmlhbCB2aWV3cyBvdmVyIFVnYW5kYSdzIG1vc3Qgc3R1bm5pbmcgbGFuZHNjYXBlcy4gUHJpdmF0ZSBzY2VuaWMgZmxpZ2h0cyBmb3IgdG91cmlzdHMgQU5EIGxvY2FscyBjZWxlYnJhdGluZyBsaWZlJ3Mgc3BlY2lhbCBtb21lbnRzLjwvcD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBlYXJsLWJhZGdlIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwZWFybC1iYWRnZS1pY29uIj7wn5KOPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBlYXJsLWJhZGdlLXRleHQiPlRoZSBQZWFybCBvZiBBZnJpY2EgRnJvbSBBYm92ZTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8IS0tIEF1ZGllbmNlIENhcmRzIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhdWRpZW5jZS1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXVkaWVuY2UtY2FyZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdWRpZW5jZS1jYXJkLWljb24iPvCfjI08L2Rpdj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iYXVkaWVuY2UtY2FyZC10aXRsZSI+Rm9yIFRvdXJpc3RzPC9oMz4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYXVkaWVuY2UtY2FyZC1saXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+U291cmNlIG9mIHRoZSBOaWxlPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+TGFrZSBWaWN0b3JpYSBTdW5zZXQ8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT5TYWZhcmkgQWVyaWFsIEFkZC1PbjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPlBob3RvZ3JhcGh5IEV4cGVkaXRpb25zPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdWRpZW5jZS1jYXJkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1ZGllbmNlLWNhcmQtaWNvbiI+8J+HuvCfh6w8L2Rpdj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iYXVkaWVuY2UtY2FyZC10aXRsZSI+Rm9yIFVnYW5kYW5zPC9oMz4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iYXVkaWVuY2UtY2FyZC1saXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+QmlydGhkYXkgQ2VsZWJyYXRpb25zPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+QW5uaXZlcnNhcnkgU3VycHJpc2VzPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+UHJvcG9zYWwgRmxpZ2h0czwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPkNvcnBvcmF0ZSBFeHBlcmllbmNlczwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gQ1RBIFNlY3Rpb24gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImN0YS1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3RhLWFycm93cyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3RhLWFycm93Ij7ilrw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3RhLWFycm93Ij7ilrw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3RhLWFycm93Ij7ilrw8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3RhLWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93YS5tZS8yNTY3NzU2MzExNTc/dGV4dD1IZWxsbyElMjBJJTIwd2FudCUyMHRvJTIwYm9vayUyMGElMjBzY2VuaWMlMjBmbGlnaHQlMjBvdmVyJTIwVGhlJTIwUGVhcmwlMjBvZiUyMEFmcmljYSEiIGNsYXNzPSJjdGEtcHJpbWFyeSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPvCfk7E8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Qm9vayB2aWEgV2hhdHNBcHA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2FzaGFiYWZsaWdodHMudHJhdmVsIiBjbGFzcz0iY3RhLXNlY29uZGFyeSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+MkDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5FeHBsb3JlIEZ1bGwgV2Vic2l0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8cCBjbGFzcz0iY3RhLXN1YnRleHQiPvCfk54gKzI1NiA3NzUgNjMxIDE1NzwvcD4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gQ2FwdGFpbiBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjYXB0YWluLXNlY3Rpb24iPgogICAgICAgICAgICA8cCBjbGFzcz0iY2FwdGFpbi1iYWRnZSI+4pyI77iPIFlvdXIgUGlsb3Q8L3A+CiAgICAgICAgICAgIDxoMyBjbGFzcz0iY2FwdGFpbi1uYW1lIj5DYXB0YWluIEZhcmlkYWggQXNoYWJhPC9oMz4KICAgICAgICAgICAgPHAgY2xhc3M9ImNhcHRhaW4tdGl0bGUiPlVnYW5kYSdzIFBpb25lZXJpbmcgRmVtYWxlIENvbW1lcmNpYWwgUGlsb3Q8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcHRhaW4tY3JlZGVudGlhbHMiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNyZWRlbnRpYWwtdGFnIj5VTiBXb21lbiBGZWF0dXJlZDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcmVkZW50aWFsLXRhZyI+VEVEeCBTcGVha2VyPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNyZWRlbnRpYWwtdGFnIj5UaW1lcyBTcXVhcmUgRmVhdHVyZWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3JlZGVudGlhbC10YWciPlNURU0gQWR2b2NhdGU8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPCEtLSBEZXN0aW5hdGlvbnMgLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImRlc3RpbmF0aW9ucy1zZWN0aW9uIj4KICAgICAgICAgICAgPHAgY2xhc3M9ImRlc3RpbmF0aW9ucy10aXRsZSI+Rmx5IE92ZXI8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RpbmF0aW9ucy1ncmlkIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXN0aW5hdGlvbi1waWxsIj7wn4yKIFNvdXJjZSBvZiB0aGUgTmlsZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXN0aW5hdGlvbi1waWxsIj7wn4yFIExha2UgVmljdG9yaWE8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVzdGluYXRpb24tcGlsbCI+8J+SpyBNdXJjaGlzb24gRmFsbHM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVzdGluYXRpb24tcGlsbCI+8J+Pme+4jyBLYW1wYWxhIFNreWxpbmU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVzdGluYXRpb24tcGlsbCI+8J+mjSBTYWZhcmkgUm91dGVzPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gRm9vdGVyIC0tPgogICAgICAgIDxmb290ZXIgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zb2NpYWwiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pbnN0YWdyYW0uY29tL2FzaGFiYUZhcmlkYWgiIGNsYXNzPSJzb2NpYWwtaWNvbiIgdGFyZ2V0PSJfYmxhbmsiIGFyaWEtbGFiZWw9Ikluc3RhZ3JhbSI+8J+TuDwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGlrdG9rLmNvbS9AY2FwdGFzaGFiYWZhcmlkYWgiIGNsYXNzPSJzb2NpYWwtaWNvbiIgdGFyZ2V0PSJfYmxhbmsiIGFyaWEtbGFiZWw9IlRpa1RvayI+8J+OtTwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vQXNoYWJhRmFyaWRhaCIgY2xhc3M9InNvY2lhbC1pY29uIiB0YXJnZXQ9Il9ibGFuayIgYXJpYS1sYWJlbD0iVHdpdHRlciI+8J+QpjwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vbGlua2VkaW4uY29tL2luL2NhcHQtYXNoYWJhLWZhcmlkYWgtMTQwNTAxNGEiIGNsYXNzPSJzb2NpYWwtaWNvbiIgdGFyZ2V0PSJfYmxhbmsiIGFyaWEtbGFiZWw9IkxpbmtlZEluIj7wn5K8PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBvd2VyZWQtYnkiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvd2VyZWQtbGFiZWwiPkRpZ2l0YWwgUHJlc2VuY2UgUG93ZXJlZCBCeTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJwb3dlcmVkLWxpbmsiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPvCfpJ08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+QnJhbmQgSGFuZHNoYWtlIEFmcmljYTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3dlcmVkLXRhZ2xpbmUiPkFyY2hpdGVjdGluZyBEaWdpdGFsIFNvdmVyZWlnbnR5IGZvciBBZnJpY2EncyBDaGFuZ2VtYWtlcnMsIENvbW11bml0eSBMZWFkZXJzLCBCcmFuZCBFeGVjdXRpdmVzICYgVmlzaW9uYXJpZXM8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1jb3B5cmlnaHQiPgogICAgICAgICAgICAgICAgwqkgMjAyNiBBc2hhYmFGbGlnaHRzIOKAoiBLYW1wYWxhLCBVZ2FuZGEg8J+HuvCfh6wKICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZm9vdGVyPgogICAgICAgIAogICAgPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
✈️
✈️
🛩️
▲
▲
▲
Scan to Explore
🛫
AshabaFlights
Scenic Flight Tours
Experience breathtaking aerial views over Uganda's most stunning landscapes. Private scenic flights for tourists AND locals celebrating life's special moments.
💎
The Pearl of Africa From Above
🌍
For Tourists
- Source of the Nile
- Lake Victoria Sunset
- Safari Aerial Add-On
- Photography Expeditions
🇺🇬
For Ugandans
- Birthday Celebrations
- Anniversary Surprises
- Proposal Flights
- Corporate Experiences
▼
▼
▼
📞 +256 775 631 157
✈️ Your Pilot
Captain Faridah Ashaba
Uganda's Pioneering Female Commercial Pilot
UN Women Featured
TEDx Speaker
Times Square Featured
STEM Advocate
Fly Over
🌊 Source of the Nile
🌅 Lake Victoria
💧 Murchison Falls
🏙️ Kampala Skyline
🦍 Safari Routes