Codercat Studio | Cookbook

This cookbook contains a collection of useful HoudiniFX node setups. All examples are stored using the new Houdini recipe API and can be copied from this website directly into Houdini using our simple shelf tools. We also periodically make a backup of the recipes here.

Copy a snippet of interest from this page, then use Paste on the "Cookbook" shelf to paste it in.

If you would like to share a recipe, click the Create button and paste in the output of the "Copy" shelf tool. Note that you must be logged in to do so. If you have any questions or comments, feel free to reach out at codercatclub@gmail.com.

Get new recipes updates over RSS feed.

⚠️ Changelog

11.20.2025 - We updated the copy shelf tool to include the Houdini version, which is also visible on the recipes listing. Please update your shelf tools using the Python one-liner from the Recommended Install section.

📦 Recommended Install

To install Cookbook shelf tools copy this code to Houdini Python Shell and press Enter. You will see Cookbook shelf apper on the top panel.

To open Python Shell press Alt-Shift-P or go to main menu Window > Python Shell.

📂 Alternative Manual Install
⬇️ Download shelf tool file and place it to your Houdini toolbar folder:
  • Windows:
  • macOS:
  • Linux:

Replace USERNAME and X.Y with your account name and Houdini version.

Restart Houdini.

? About this project

Motivation and Goals

We created this Houdini Cookbook because:

  • We needed a way to quickly share and store small Houdini node setups. Previously, we attempted to create HDA libraries, but it was too cumbersome for our small team.
  • We believe there is a better way to share Houdini examples than by sharing entire Houdini files.
  • We enjoy sharing our small setups with the Houdini community.
  • We strongly believe in the idea of "Own Your Data," therefore we do not hold any published recipes hostage. All recipes are backed up once a day to a public Git repository here. Even if this service goes down, anyone can still download the full collection and use it directly with the Cookbook shelf tool or by using the two Python functions described below.
  • We also embrace the idea of decentralization, and we are considering open sourcing the Cookbook web service so that anyone can run it locally with their own collection or as their own public webpage. Let us know if this is something that interests you.

How Does It Work

In Houdini 20.5, SideFX introduced a new Recipe system that allows users to save collections of nodes into human-readable structured text files (JSON). Within this, they added a new collection of Python utilities (hou.data) that allows for creating and loading recipes programmatically.

In particular, the Cookbook shelf tools use hou.data.selectedItemsAsData(...) for copying nodes and hou.createItemsFromData(...) for pasting.

For this web service, we use the Go programming language and store all submitted recipes in plain text JSON files.

Basic Flip
Basic flip fluid setup of water flowing from a window. This example also show how to generate and control source fluid velocity.
May 25, 2026 | 20.5.613 | flip Cooked By: kif
ewogICAgIkdST1VORCI6IHsKICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgIDAuOTgsCiAgICAgICAgICAgIDAuNzgsCiAgICAgICAgICAgIDAuMjYKICAgICAgICBdLAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImNvbG9yZGVmYXVsdCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJib3gxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAxMS4zMSwKICAgICAgICAgICAgLTguODMKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogIm51bGwiCiAgICB9LAogICAgIlJPT01fV0FMTFMiOiB7CiAgICAgICAgImNvbG9yIjogWwogICAgICAgICAgICAwLjk4LAogICAgICAgICAgICAwLjc4LAogICAgICAgICAgICAwLjI2CiAgICAgICAgXSwKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJjb2xvcmRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicG9seWV4dHJ1ZGUyIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA4LjA4LAogICAgICAgICAgICAtOC44MwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibnVsbCIKICAgIH0sCiAgICAiV0FURVJfT1VUIjogewogICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgMSwKICAgICAgICAgICAgMC43MywKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiY29sb3JkZWZhdWx0IjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImZsdWlkX21lc2giLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDcuOTgsCiAgICAgICAgICAgIC0yNS44NQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibnVsbCIKICAgIH0sCiAgICAiV0FURVJfU1JDIjogewogICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgMC45OCwKICAgICAgICAgICAgMC43OCwKICAgICAgICAgICAgMC4yNgogICAgICAgIF0sCiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiY29sb3JkZWZhdWx0IjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImF0dHJpYmFkanVzdHZlY3RvcjEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMTEsCiAgICAgICAgICAgIC0xMy40OQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibnVsbCIKICAgIH0sCiAgICAiX19jb29rYm9va01ldGEiOiB7CiAgICAgICAgImNvbnRleHQiOiAic29wIiwKICAgICAgICAidmVyc2lvbiI6ICIyMC41LjYxMyIKICAgIH0sCiAgICAiX19zdGlja3lub3RlMSI6IHsKICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgIDAuOTcsCiAgICAgICAgICAgIDAuNTIKICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgLTMuODYsCiAgICAgICAgICAgIC02LjM1CiAgICAgICAgXSwKICAgICAgICAic2l6ZSI6IFsKICAgICAgICAgICAgMy40NCwKICAgICAgICAgICAgMC44NwogICAgICAgIF0sCiAgICAgICAgInRleHQiOiAiQWRqdXN0IHBhcnRpY2xlIHNlcGFyYXRpb24gb24gZmxpcHNvdXJjZTEgXHUwMDNlIiwKICAgICAgICAidGV4dF9jb2xvciI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiU3RpY2t5Tm90ZSIKICAgIH0sCiAgICAiX19zdGlja3lub3RlMiI6IHsKICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgIDAuOTcsCiAgICAgICAgICAgIDAuNTIKICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgLTMuNzQsCiAgICAgICAgICAgIC0xMC4yMQogICAgICAgIF0sCiAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgIDMuNDQsCiAgICAgICAgICAgIDAuODcKICAgICAgICBdLAogICAgICAgICJ0ZXh0IjogIkFkanVzdCB2ZWxvY2l0eSBoZXJlICBcdTAwM2UiLAogICAgICAgICJ0ZXh0X2NvbG9yIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAwLAogICAgICAgICAgICAwCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJTdGlja3lOb3RlIgogICAgfSwKICAgICJhdHRyaWJhZGp1c3R2ZWN0b3IxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInNldF92ZWxvY2l0eSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRpcmxlbl9hbXBsaXR1ZGUiOiA0LAogICAgICAgICAgICAiZGlybGVuX25vaXNlcmFuZ2UiOiAiemNlbnRlcmVkIiwKICAgICAgICAgICAgImRpcmxlbl92YWx1ZXR5cGUiOiAicmFuZCIsCiAgICAgICAgICAgICJyYW5kb21zZWVkIjogMjMKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMC4xMSwKICAgICAgICAgICAgLTExLjgyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJhZGp1c3R2ZWN0b3IiCiAgICB9LAogICAgImJsYXN0MSI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJoaWdobGlnaHQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJwb2x5ZXh0cnVkZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJncm91cCI6ICIwLTgwIiwKICAgICAgICAgICAgImdyb3VwdHlwZSI6ICJwcmltcyIsCiAgICAgICAgICAgICJyZW1vdmVncnAiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDguMDgsCiAgICAgICAgICAgIC01LjY5CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJibGFzdCIKICAgIH0sCiAgICAiYm94MSI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJkaXZyYXRlIjogWwogICAgICAgICAgICAgICAgMiwKICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAyCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzaXplIjogWwogICAgICAgICAgICAgICAgNS42NjI0OTM3MDU3NDk1MTIsCiAgICAgICAgICAgICAgICAwLjQ3NDIzMDQwODY2ODUxODA3LAogICAgICAgICAgICAgICAgNy44MDEzMDI5MDk4NTEwNzQKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInQiOiBbCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgLTAuNDM3MDE3MzY2MjkwMDkyNDcsCiAgICAgICAgICAgICAgICAzLjQwMDY1MTQ1NDkyNTUzNwogICAgICAgICAgICBdLAogICAgICAgICAgICAidHlwZSI6ICJwb2x5bWVzaCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMTEuMzEsCiAgICAgICAgICAgIC03LjE1CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJib3giCiAgICB9LAogICAgImRlbnNpdHlfY29udHJvbF9wb2ludCI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJyYWQiOiBbCiAgICAgICAgICAgICAgICAwLjUsCiAgICAgICAgICAgICAgICAwLjUsCiAgICAgICAgICAgICAgICAwLjUKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInNjYWxlIjogMC4wNSwKICAgICAgICAgICAgInQiOiBbCiAgICAgICAgICAgICAgICAtMC4wMDA2OTA3MDkxNjQ1Njk4ODMyLAogICAgICAgICAgICAgICAgMS4xNTQ5MzY1MTcyODg2ODUsCiAgICAgICAgICAgICAgICAwLjIxNjQ0NjQ0NjA0MDIxNjIzCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ0eXBlIjogInBvbHltZXNoIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjYzLAogICAgICAgICAgICAtOC42MQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAic3BoZXJlIgogICAgfSwKICAgICJkaXJlY3Rpb25fY29udHJvbF9wb2ludCI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJyYWQiOiBbCiAgICAgICAgICAgICAgICAwLjUsCiAgICAgICAgICAgICAgICAwLjUsCiAgICAgICAgICAgICAgICAwLjUKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInNjYWxlIjogMC4wNSwKICAgICAgICAgICAgInQiOiBbCiAgICAgICAgICAgICAgICAwLjA3NDMwNzY4MDEzMDAwNDg4LAogICAgICAgICAgICAgICAgMC42MzQ1MzE0NTU5OTE4ODQ3LAogICAgICAgICAgICAgICAgLTIuMTAyMzE0MTU1ODQxMTkzCiAgICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMi42MywKICAgICAgICAgICAgLTcuNTQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInNwaGVyZSIKICAgIH0sCiAgICAiZmxpcHNpbSI6IHsKICAgICAgICAiY2hpbGRyZW4iOiB7CiAgICAgICAgICAgICJmbGlwb2JqZWN0MSI6IHsKICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAiY3JlYXRlZnJhbWUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vc3RhcnRmcmFtZVwiKSIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJncmlkc2NhbGUiOiAxLAogICAgICAgICAgICAgICAgICAgICJndWlkZXZpc3JhbXAiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjg5OTk5OTk3NjE1ODE0MjEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuODk5OTk5OTc2MTU4MTQyMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjg5OTk5OTk3NjE1ODE0MjEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvcyI6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgInBhcnRpY2xlc2VwIjogewogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJjaChcIi4uLy4uL2ZsaXBzb3VyY2UxL3BhcnRpY2xlc2VwXCIpIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInJhZGl1c3NjYWxlIjogMC45LAogICAgICAgICAgICAgICAgICAgICJzb3BwYXRoIjogIiIsCiAgICAgICAgICAgICAgICAgICAgInZpc3ByaW0iOiAicGFydCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgLTIuOCwKICAgICAgICAgICAgICAgICAgICA0LjY4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiZmxpcG9iamVjdCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImZsaXBzb2x2ZXIxIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogIm1lcmdlMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJwb3BmYW4xIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAxCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogInBvcHNvdXJjZTEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDMKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJkb2lkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAiZW5hYmxlc3RpY2siOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICJsaW1pdF9zaXplIjogWwogICAgICAgICAgICAgICAgICAgICAgICA2LjIzNDQ5NjU5MzQ3NTM0MiwKICAgICAgICAgICAgICAgICAgICAgICAgNC40NjEwMTY4OTMzODY4NDEsCiAgICAgICAgICAgICAgICAgICAgICAgIDUuMzI1ODM5OTk2MzM3ODkxCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAibGltaXRfdCI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgMS44OTczNjM1NDM1MTA0MzcsCiAgICAgICAgICAgICAgICAgICAgICAgIDEuNTgzNzUyNjMyMTQxMTEzMwogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm9wZW5jbCI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgInJlc2VlZCI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICJzdGlja3RhbmdlbnRzY2FsZSI6IDAuMgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAyLjI3LAogICAgICAgICAgICAgICAgICAgIDAuMwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImZsaXBzb2x2ZXI6OjIuMCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImdyYXZpdHkxIjogewogICAgICAgICAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAgICAgICAgICJkaXNwbGF5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJmbGlwc29sdmVyMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMi4yNywKICAgICAgICAgICAgICAgICAgICAtMS4xNwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImdyYXZpdHkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJtZXJnZTEiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiZmxpcG9iamVjdDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAic3RhdGljb2JqZWN0MSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgLTIuNSwKICAgICAgICAgICAgICAgICAgICAyLjYKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJtZXJnZSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm91dHB1dCI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJncmF2aXR5MSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMi4yNywKICAgICAgICAgICAgICAgICAgICAtMi42NwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogIm91dHB1dCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInBvcGZhbjEiOiB7CiAgICAgICAgICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgImJ5cGFzcyI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRpciI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgLTAuOTk5Nzk0ODgwODE5Njk3NSwKICAgICAgICAgICAgICAgICAgICAgICAgLTAuMDIwMjUzMzAzMTA2NTg1MDIsCiAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJsb2NhbGV4cHJlc3Npb24iOiAiLy8gUGFzcyBUaHJvdWdoXG4vLyBDZW50ZXI6XG50ID0gdDtcbi8vIENvbmUgYW5nbGU6XG5jb25lID0gY29uZTtcbmRpciA9IGRpcjtcbndpbmRzcGVlZCA9IGFicyhzaW4oQEZyYW1lKjAuMDUpKSo1O1xuYWlycmVzaXN0ID0gYWlycmVzaXN0O1xuXG4iLAogICAgICAgICAgICAgICAgICAgICJ0IjogWwogICAgICAgICAgICAgICAgICAgICAgICAxLjY3ODk1MjA2ODA5MDQzODgsCiAgICAgICAgICAgICAgICAgICAgICAgIDAuNDk2ODM1OTAyMzMzMjU5NiwKICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgInVzZWxvY2FsIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAid2luZHNwZWVkIjogNC41OAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAyLjEzLAogICAgICAgICAgICAgICAgICAgIDEuOTQKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJwb3BmYW4iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJwb3Bzb3VyY2UxIjogewogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJlbWl0dHlwZSI6ICJhbGxwb2ludCIsCiAgICAgICAgICAgICAgICAgICAgInNvcHBhdGgiOiAiL29iai93YXRlci9GTElQX1NSQyIsCiAgICAgICAgICAgICAgICAgICAgInVzZWNvbnRleHRnZW8iOiAiZmlyc3QiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDQuNjMsCiAgICAgICAgICAgICAgICAgICAgMi4zMgogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogInBvcHNvdXJjZTo6Mi4wIgogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhdGljb2JqZWN0MSI6IHsKICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAic29wcGF0aCI6ICJgb3BpbnB1dHBhdGgoXCIuLlwiLCAxKWAiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDAuMDIsCiAgICAgICAgICAgICAgICAgICAgNC42OAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogInN0YXRpY29iamVjdCIKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiV0FURVJfU1JDIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAibWVyZ2UyIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDEKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibnVtb2JqIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJkYXRhbmFtZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJlbmFibGUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAib2JqbmFtZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIqIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA3Ljk4LAogICAgICAgICAgICAtMTcuNDEKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImRvcG5ldCIKICAgIH0sCiAgICAiZmxpcHNvdXJjZTEiOiB7CiAgICAgICAgImNvbG9yIjogWwogICAgICAgICAgICAwLjk4LAogICAgICAgICAgICAwLjI4LAogICAgICAgICAgICAwLjI4CiAgICAgICAgXSwKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJjb2xvcmRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAidHJhbnNmb3JtMyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInBhcnRpY2xlc2VwIjogMC4wNCwKICAgICAgICAgICAgInZveGVsc2l6ZSI6IHsKICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwicGFydGljbGVzZXBcIikiCiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMC4xMSwKICAgICAgICAgICAgLTUuODQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImZsaXBzb3VyY2UiCiAgICB9LAogICAgImZsdWlkX21lc2giOiB7CiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICJyZW5kZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJwYXJ0aWNsZWZsdWlkc3VyZmFjZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJiYXNlbmFtZSI6ICJmbHVpZF9tZXNoIiwKICAgICAgICAgICAgImZyYW1lIjogewogICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAie1xuICAgIGlmKGNoKFwidGltZWRlcGVuZGVudFwiKSlcbiAgICB7XG4gICAgICAgIHJhd2ZyYW1lID0gJFQgKiAkRlBTICsgMTtcbiAgICAgICAgcmF3ZnJhbWUgLT0gY2goXCJmMVwiKTtcbiAgICAgICAgcmF3ZnJhbWUgKj0gY2goXCJzdWJzdGVwc1wiKSAvIGNoKFwiZjNcIik7XG4gICAgICAgIHJhd2ZyYW1lID0gcmludChyYXdmcmFtZSk7XG4gICAgICAgIHJhd2ZyYW1lIC89IGNoKFwic3Vic3RlcHNcIikgLyBjaChcImYzXCIpO1xuICAgICAgICByYXdmcmFtZSArPSBjaChcImYxXCIpO1xuICAgICAgICBpZihjaChcImRvY2xhbXBmaXJzdFwiKSBcdTAwMjZcdTAwMjYgY2goXCJkb2NsYW1wbGFzdFwiKSkgcmV0dXJuIGNsYW1wKHJhd2ZyYW1lLGNoKFwiY2xhbXBmaXJzdFwiKSxjaChcImNsYW1wbGFzdFwiKSk7XG4gICAgICAgIGlmKGNoKFwiZG9jbGFtcGZpcnN0XCIpKSByZXR1cm4gbWF4KGNoKFwiY2xhbXBmaXJzdFwiKSxyYXdmcmFtZSk7XG4gICAgICAgIGlmKGNoKFwiZG9jbGFtcGxhc3RcIikpIHJldHVybiBtaW4oY2goXCJjbGFtcGxhc3RcIikscmF3ZnJhbWUpO1xuICAgICAgICByZXR1cm4gcmF3ZnJhbWU7XG4gICAgfVxuICAgIGVsc2VcbiAgICB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbn0iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJsb2FkZnJvbWRpc2siOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDcuOTgsCiAgICAgICAgICAgIC0yNC4zNAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZmlsZWNhY2hlOjoyLjAiCiAgICB9LAogICAgImZsdWlkX3BhcnRpY2xlcyI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJmbHVpZGNvbXByZXNzMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImJhc2VuYW1lIjogImZsdWlkIiwKICAgICAgICAgICAgImZyYW1lIjogewogICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAie1xuICAgIGlmKGNoKFwidGltZWRlcGVuZGVudFwiKSlcbiAgICB7XG4gICAgICAgIHJhd2ZyYW1lID0gJFQgKiAkRlBTICsgMTtcbiAgICAgICAgcmF3ZnJhbWUgLT0gY2goXCJmMVwiKTtcbiAgICAgICAgcmF3ZnJhbWUgKj0gY2goXCJzdWJzdGVwc1wiKSAvIGNoKFwiZjNcIik7XG4gICAgICAgIHJhd2ZyYW1lID0gcmludChyYXdmcmFtZSk7XG4gICAgICAgIHJhd2ZyYW1lIC89IGNoKFwic3Vic3RlcHNcIikgLyBjaChcImYzXCIpO1xuICAgICAgICByYXdmcmFtZSArPSBjaChcImYxXCIpO1xuICAgICAgICBpZihjaChcImRvY2xhbXBmaXJzdFwiKSBcdTAwMjZcdTAwMjYgY2goXCJkb2NsYW1wbGFzdFwiKSkgcmV0dXJuIGNsYW1wKHJhd2ZyYW1lLGNoKFwiY2xhbXBmaXJzdFwiKSxjaChcImNsYW1wbGFzdFwiKSk7XG4gICAgICAgIGlmKGNoKFwiZG9jbGFtcGZpcnN0XCIpKSByZXR1cm4gbWF4KGNoKFwiY2xhbXBmaXJzdFwiKSxyYXdmcmFtZSk7XG4gICAgICAgIGlmKGNoKFwiZG9jbGFtcGxhc3RcIikpIHJldHVybiBtaW4oY2goXCJjbGFtcGxhc3RcIikscmF3ZnJhbWUpO1xuICAgICAgICByZXR1cm4gcmF3ZnJhbWU7XG4gICAgfVxuICAgIGVsc2VcbiAgICB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbn0iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJsb2FkZnJvbWRpc2siOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDcuOTgsCiAgICAgICAgICAgIC0yMS41OQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZmlsZWNhY2hlOjoyLjAiCiAgICB9LAogICAgImZsdWlkY29tcHJlc3MxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInZpc3VhbGl6ZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJwYXJ0aWNsZXNlcCI6IHsKICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vZmxpcHNpbS9mbGlwb2JqZWN0MS9wYXJ0aWNsZXNlcFwiKSIKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA3Ljk4LAogICAgICAgICAgICAtMTkuOTcKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImZsdWlkY29tcHJlc3MiLAogICAgICAgICJ1c2VyX2RhdGEiOiB7CiAgICAgICAgICAgICJ3aXJlc3R5bGUiOiAicm91bmRlZCIKICAgICAgICB9CiAgICB9LAogICAgImdyaWQxIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInIiOiBbCiAgICAgICAgICAgICAgICA5MCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzaXplIjogWwogICAgICAgICAgICAgICAgMS40NzY5LAogICAgICAgICAgICAgICAgMS4yCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ0IjogWwogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAuOTk2MDMyNjk5OTQyNTg4OCwKICAgICAgICAgICAgICAgIC0wLjAxNDAxMzg2NDA5OTk3OTQKICAgICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAwCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJncmlkIgogICAgfSwKICAgICJtZXJnZTIiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiUk9PTV9XQUxMUyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogIkdST1VORCIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAxCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgOC4wOCwKICAgICAgICAgICAgLTExLjI2CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJtZXJnZSIKICAgIH0sCiAgICAicGFydGljbGVmbHVpZHN1cmZhY2UxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImZsdWlkX3BhcnRpY2xlcyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImluZmx1ZW5jZXJhZGl1cyI6IDEuNSwKICAgICAgICAgICAgIm1hc2t2aXNyYW1wIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgIDAuMiwKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjI1LAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgMC44NSwKICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjUsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAwLjEwMDAwMDAwMTQ5MDExNjEyCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuNzUsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAwLjk1LAogICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDEsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAicGFydGljbGVzZXAiOiB7CiAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJjaChcIi4uL2ZsaXBzb3VyY2UxL3BhcnRpY2xlc2VwXCIpIgogICAgICAgICAgICB9LAogICAgICAgICAgICAic3VyZmFjZWRpc3RhbmNlIjogMC41LAogICAgICAgICAgICAidmVsdmlzcmFtcCI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLjg5OTk5OTk3NjE1ODE0MjEKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMC41MDU3OTE0ODUzMDk2MDA4LAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgMC45LAogICAgICAgICAgICAgICAgICAgICAgICAwLjkKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ2b3J0aWNpdHl2aXNyYW1wIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIDAuODk5OTk5OTc2MTU4MTQyMQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjUsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLjg5OTk5OTk3NjE1ODE0MjEsCiAgICAgICAgICAgICAgICAgICAgICAgIDAuODk5OTk5OTc2MTU4MTQyMQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA3Ljk4LAogICAgICAgICAgICAtMjMuMDkKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInBhcnRpY2xlZmx1aWRzdXJmYWNlOjozLjAiLAogICAgICAgICJ1c2VyX2RhdGEiOiB7CiAgICAgICAgICAgICJ3aXJlc3R5bGUiOiAicm91bmRlZCIKICAgICAgICB9CiAgICB9LAogICAgInBvbHlleHRydWRlMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJncmlkMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRpc3QiOiAtMC42MDYsCiAgICAgICAgICAgICJvdXRwdXRiYWNrIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA4LjA4LAogICAgICAgICAgICAtNC4zMwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAicG9seWV4dHJ1ZGU6OjIuMCIKICAgIH0sCiAgICAicG9seWV4dHJ1ZGUyIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImJsYXN0MSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRpc3QiOiAtMC4zMTg3NjgzNjUzODMxNDgxLAogICAgICAgICAgICAib3V0cHV0YmFjayI6IHRydWUKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgOC4wOCwKICAgICAgICAgICAgLTYuOTIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInBvbHlleHRydWRlOjoyLjAiCiAgICB9LAogICAgInBvbHlleHRydWRlMyI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJncmlkMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRpc3QiOiAtMC40NTYsCiAgICAgICAgICAgICJvdXRwdXRiYWNrIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjE4LAogICAgICAgICAgICAtMi45OQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAicG9seWV4dHJ1ZGU6OjIuMCIKICAgIH0sCiAgICAic2V0X3ZlbG9jaXR5IjogewogICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgMC4wOSwKICAgICAgICAgICAgMC4zNywKICAgICAgICAgICAgMC42OQogICAgICAgIF0sCiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiY29sb3JkZWZhdWx0IjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImZsaXBzb3VyY2UxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiZGlyZWN0aW9uX2NvbnRyb2xfcG9pbnQiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJkZW5zaXR5X2NvbnRyb2xfcG9pbnQiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMgogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJtYWciOiAxMCwKICAgICAgICAgICAgInNoYXJwIjogMC44LAogICAgICAgICAgICAic25pcHBldCI6ICJ2ZWN0b3Igc3BoZXJlUG9zID0gcG9pbnQoMSxcIlBcIiwwKTtcbnZlY3RvciBzcGhlcmVQb3MyID0gcG9pbnQoMixcIlBcIiwwKTtcblxuZmxvYXQgZCA9IDEuMCAtIG1pbigxLjAsIGNoZihcInNoYXJwXCIpKmxlbmd0aCh2QFAgLSBzcGhlcmVQb3MyKSk7XG5cbnZlY3RvciBkaXIgPSBub3JtYWxpemUoc3BoZXJlUG9zIC0gdkBQKTtcbmRpciA9IGN1cmxub2lzZSgzLjAqdkBQKzEuMCk7XG5kaXIueiA9IC0xOyBcblxuZGlyID0gbm9ybWFsaXplKGRpcik7XG5cblxuXG52QHYgPSBjaGYoXCJtYWdcIikgKiBkICogLWRpcjtcblxuIgogICAgICAgIH0sCiAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpbnNlcnRfYWZ0ZXIiOiAidmV4X3RocmVhZGpvYnNpemUiLAogICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImZvbGRlcl9nZW5lcmF0ZWRwYXJtc19zbmlwcGV0IjogewogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiR2VuZXJhdGVkIENoYW5uZWwgUGFyYW1ldGVycyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdGVtcGxhdGVzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hZyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTWFnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFycCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiU2hhcnAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXhfdmFsdWUiOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3VwX3R5cGUiOiAic2ltcGxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWRlZng6Omxvb2siOiAiYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZvbGRlcl9zaW1wbGUiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMTUsCiAgICAgICAgICAgIC05LjgKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgInRyYW5zZm9ybTMiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicG9seWV4dHJ1ZGUzIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAidCI6IFsKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgLTAuMTE0CiAgICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMC4xOCwKICAgICAgICAgICAgLTMuOTkKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInhmb3JtIgogICAgfSwKICAgICJ2aXN1YWxpemUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImZsaXBzaW0iLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJudW1fdmlzdWFsaXplcnMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInZpc19hY3RpdmUjIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAidmlzX2RhdGEjIjogIntcblx0XCJmbGFnc1wiOntcblx0XHRcInR5cGVcIjpcImludFwiLFxuXHRcdFwidmFsdWVcIjoyN1xuXHR9LFxuXHRcImljb25cIjp7XG5cdFx0XCJ0eXBlXCI6XCJzdHJpbmdcIixcblx0XHRcInZhbHVlXCI6XCJWSUVXX3Zpc3VhbGl6YXRpb25fY29sb3JcIlxuXHR9LFxuXHRcImxhYmVsXCI6e1xuXHRcdFwidHlwZVwiOlwic3RyaW5nXCIsXG5cdFx0XCJ2YWx1ZVwiOlwiQ29sb3IgMVwiXG5cdH0sXG5cdFwibmFtZVwiOntcblx0XHRcInR5cGVcIjpcInN0cmluZ1wiLFxuXHRcdFwidmFsdWVcIjpcInZpc19jb2xvcl8xXCJcblx0fSxcblx0XCJwYXJhbWV0ZXJzXCI6e1xuXHRcdFwidHlwZVwiOlwic3RyaW5nXCIsXG5cdFx0XCJ2YWx1ZVwiOlwie1xcbnZlcnNpb24gMC44XFxuY29sb3J0eXBlXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdFxcXCJhdHRyaWJyYW1wZWRcXFwiXFx0KVxcbmNsYXNzXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdFxcXCJhdXRvXFxcIlxcdClcXG5hdHRyaWJcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0dlxcdClcXG51dmF0dHJpYlxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHR1dlxcdClcXG5kaXN0b3J0aW9udHlwZVxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHRcXFwiZ2xvYmFsXFxcIlxcdClcXG5yYW5nZXNlY3Rpb25cXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MFxcdClcXG5yYW5nZXNwZWNcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0XFxcIm1pbi1tYXhcXFwiXFx0KVxcbm1pbnNjYWxhclxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHQwXFx0KVxcbm1heHNjYWxhclxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHQxMFxcdClcXG5jZW50ZXJzY2FsYXJcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MFxcdClcXG53aWR0aHNjYWxhclxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHQyXFx0KVxcbmNsYW1wdHlwZVxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHRcXFwiZWRnZVxcXCJcXHQpXFxuY29uc3Rjb2xvclxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHQxXFx0MFxcdDBcXHQxXFx0KVxcbnVzZXRocmVldnR4Y29sb3JcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0XFxcIm9uXFxcIlxcdClcXG5jb2xvcnRocmVldnR4XFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdDFcXHQxXFx0MFxcdClcXG51c2Vmb3VydnR4Y29sb3JcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0XFxcIm9uXFxcIlxcdClcXG5jb2xvcmZvdXJ2dHhcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MC41XFx0MC43XFx0MVxcdClcXG51c2VudnR4Y29sb3JcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0XFxcIm9uXFxcIlxcdClcXG5jb2xvcm52dHhcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MVxcdDBcXHQwXFx0KVxcbnRyZWF0YXNzY2FsYXJcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0XFxcIm9uXFxcIlxcdClcXG51c2luZ1xcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHRcXFwibGVuZ3RoXFxcIlxcdClcXG5jb21wb25lbnRcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MFxcdClcXG5yZWZ2ZWNcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MFxcdDFcXHQwXFx0KVxcbnJhbmRzZWVkXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdDBcXHQpXFxudmFsc2VwXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdDFcXHQpXFxucmFtcHNlY3Rpb25cXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MFxcdClcXG5jb2xvcnJhbXBwcmVzZXRcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MFxcdClcXG5jb2xvcnJhbXBcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0M1xcdClcXG5jb2xvcnJhbXAxcG9zXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdDBcXHQpXFxuY29sb3JyYW1wMWNcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0MFxcdDBcXHQwLjg5OTk5OTk3NjE1ODE0MjFcXHQpXFxuY29sb3JyYW1wMWludGVycFxcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHRcXFwibGluZWFyXFxcIlxcdClcXG5jb2xvcnJhbXAycG9zXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdDAuNVxcdClcXG5jb2xvcnJhbXAyY1xcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHQwXFx0MC44OTk5OTk5NzYxNTgxNDIxXFx0MC44OTk5OTk5NzYxNTgxNDIxXFx0KVxcbmNvbG9ycmFtcDJpbnRlcnBcXHRbIDBcXHRsb2Nrcz0wIF1cXHQoXFx0XFxcImxpbmVhclxcXCJcXHQpXFxuY29sb3JyYW1wM3Bvc1xcdFsgMFxcdGxvY2tzPTAgXVxcdChcXHQxXFx0KVxcbmNvbG9ycmFtcDNjXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdDFcXHQxXFx0MVxcdClcXG5jb2xvcnJhbXAzaW50ZXJwXFx0WyAwXFx0bG9ja3M9MCBdXFx0KFxcdFxcXCJsaW5lYXJcXFwiXFx0KVxcbn1cXG5cIlxuXHR9LFxuXHRcInNjb3BlXCI6e1xuXHRcdFwidHlwZVwiOlwiaW50XCIsXG5cdFx0XCJ2YWx1ZVwiOjJcblx0fSxcblx0XCJ0eXBlXCI6e1xuXHRcdFwidHlwZVwiOlwic3RyaW5nXCIsXG5cdFx0XCJ2YWx1ZVwiOlwidmlzX2NvbG9yXCJcblx0fVxufVxuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAic2V0dmlzdWFsaXplcnMiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAicGFybXRlbXBsYXRlcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImluc2VydF9hZnRlciI6ICJzcHJpdGVjdXRvZmYiLAogICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgIm5vZGVfdmlzX2VuYWJsZWQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJkZWZhdWx0X3ZhbHVlIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJWaXN1YWxpemF0aW9uIEVuYWJsZWQiLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJ0b2dnbGUiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAibnVtX3Zpc3VhbGl6ZXJzIjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlZpc3VhbGl6ZXJzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmlzX2FjdGl2ZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkFjdGl2ZSAjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInRvZ2dsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmlzX2RhdGEjIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJSYXcgRGF0YSAjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGFiZWxfaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVkaXRvciI6ICIxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXN0YXJ0b2Zmc2V0IjogIjAiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZvbGRlcl9tdWx0aXBhcm1saXN0IgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA3Ljk4LAogICAgICAgICAgICAtMTguNwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAidmlzdWFsaXplIgogICAgfQp9