Digital Brand Handshake Logo in royal blue and golden yellow with 3D hands.

BRAND HANDSHAKE

  • Invitation
  • Vault
  • Pricing
  • Rewards
  • Bonus
  • Thank You
  • Networks
  • Domains
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tCiAgICDilZTilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZcKICAgIOKVkSAgQlJBTkRIQU5EU0hBS0UgT0ZGSUNJQUwgQ09ERSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWjCiAgICDilZEgIEZJTEU6IGJyYW5kaGFuZHNoYWtlLXZhdWx0LVNMVUctdmF1bHQtVjIuaHRtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgU0xVRzogYnJhbmRoYW5kc2hha2UuY29tL3ZhdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICBWRVJTSU9OOiBWLTIgT0ZGSUNJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIExBU1QgVVBEQVRFRDogSmFudWFyeSAyMDI2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgU1RBVFVTOiDinIUgU1BJTiBXSEVFTCBWQVVMVCAtIDIgU1BJTiBMSU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVoOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVowogICAg4pWRICBUWVBFOiBHYW1pZmljYXRpb24gLyBMZWFkIENhcHR1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIFBVUlBPU0U6IEZ1biBzcGluLXRvLXdpbiB3aXRoIFJFQUwgcHJpemVzICsgdXJnZW5jeSAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgUlVMRVM6IE1heCAyIHNwaW5zLCAyNGhyIHJlZGVtcHRpb24gd2luZG93LCBwdXJjaGFzZSByZXF1aXJlZCAgICAgICAgICAgICAgIOKVkQogICAg4pWg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWjCiAgICDilZEgIMKpIDIwMjYgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnMgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIPCflJAgUFJPVEVDVEVEIENPREUgLSBVbmF1dGhvcml6ZWQgY29weWluZyBwcm9oaWJpdGVkLiAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdCiAgICAtLT4KICAgIAogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgCiAgICA8dGl0bGU+VGhlIFZhdWx0IHwgQnJhbmRIYW5kc2hha2UgfCBTcGluIHRvIFdpbjwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iRmVlbGluZyBsdWNreT8gRW50ZXIgdGhlIEJyYW5kSGFuZHNoYWtlIHZhdWx0IGFuZCBzcGluIGZvciBleGNsdXNpdmUgcmV3YXJkcywgZGlzY291bnRzLCBhbmQgc3VycHJpc2VzLiBGb3J0dW5lIGZhdm9ycyB0aGUgYm9sZC4iPgogICAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCwgZm9sbG93Ij4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS92YXVsdCI+CiAgICAKICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDswLDcwMDsxLDQwMCZmYW1pbHk9TW9udHNlcnJhdDp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDA7ODAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1uYXZ5OiAjMEQxQjJBOwogICAgICAgICAgICAtLW5hdnktbGlnaHQ6ICMxQjI2M0I7CiAgICAgICAgICAgIC0tZ29sZDogI0Q0QUYzNzsKICAgICAgICAgICAgLS1nb2xkLWxpZ2h0OiAjRThDNTQ3OwogICAgICAgICAgICAtLWdvbGQtZGFyazogI0I4OTcyRTsKICAgICAgICAgICAgLS1pdm9yeTogI0Y4RjRFQzsKICAgICAgICAgICAgLS1jaGFyY29hbDogIzBhMGExMjsKICAgICAgICAgICAgLS1wdXJwbGU6ICM4YjVjZjY7CiAgICAgICAgICAgIC0tY3lhbjogIzA2YjZkNDsKICAgICAgICAgICAgLS1ncmVlbjogIzEwYjk4MTsKICAgICAgICAgICAgLS1waW5rOiAjZWM0ODk5OwogICAgICAgICAgICAtLXJlZDogI2VmNDQ0NDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFyY29hbCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gQ0lORU1BVElDIEJBQ0tHUk9VTkQgPT09PT09PT09PSAqLwogICAgICAgIC5iZy1tYXN0ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDIwJSwgcmdiYSgxMzksIDkyLCAyNDYsIDAuMTUpIDAlLCB0cmFuc3BhcmVudCA1MCUpLAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMjAlIDgwJSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSkgMCUsIHRyYW5zcGFyZW50IDQwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgNjAlLCByZ2JhKDYsIDE4MiwgMjEyLCAwLjA4KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwNTA1MDggMCUsIHZhcigtLWNoYXJjb2FsKSAzMCUsIHZhcigtLW5hdnkpIDEwMCUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09IEZMT0FUSU5HIFNUQVJTID09PT09PT09PT0gKi8KICAgICAgICAuZmxvYXRpbmctc3RhciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4IHZhcigtLWdvbGQpLCAwIDAgMjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC41KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiB0d2lua2xlRmxvYXQgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIC5mbG9hdGluZy1zdGFyOm50aC1jaGlsZCgxKSB7IHRvcDogOCU7IGxlZnQ6IDUlOyBmb250LXNpemU6IDE0cHg7IGFuaW1hdGlvbi1kZWxheTogMHM7IH0KICAgICAgICAuZmxvYXRpbmctc3RhcjpudGgtY2hpbGQoMikgeyB0b3A6IDE1JTsgbGVmdDogOTAlOyBmb250LXNpemU6IDEwcHg7IGFuaW1hdGlvbi1kZWxheTogMC41czsgfQogICAgICAgIC5mbG9hdGluZy1zdGFyOm50aC1jaGlsZCgzKSB7IHRvcDogMzAlOyBsZWZ0OiAzJTsgZm9udC1zaXplOiAxMnB4OyBhbmltYXRpb24tZGVsYXk6IDFzOyB9CiAgICAgICAgLmZsb2F0aW5nLXN0YXI6bnRoLWNoaWxkKDQpIHsgdG9wOiA1MCU7IGxlZnQ6IDk1JTsgZm9udC1zaXplOiAxNnB4OyBhbmltYXRpb24tZGVsYXk6IDEuNXM7IH0KICAgICAgICAuZmxvYXRpbmctc3RhcjpudGgtY2hpbGQoNSkgeyB0b3A6IDcwJTsgbGVmdDogOCU7IGZvbnQtc2l6ZTogMTFweDsgYW5pbWF0aW9uLWRlbGF5OiAyczsgfQogICAgICAgIC5mbG9hdGluZy1zdGFyOm50aC1jaGlsZCg2KSB7IHRvcDogODUlOyBsZWZ0OiA4OCU7IGZvbnQtc2l6ZTogMTNweDsgYW5pbWF0aW9uLWRlbGF5OiAwLjhzOyB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyB0d2lua2xlRmxvYXQgewogICAgICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMjsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuOCk7IH0KICAgICAgICAgICAgNTAlIHsgb3BhY2l0eTogMC45OyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpIHNjYWxlKDEuMik7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBNQUlOIENPTlRBSU5FUiA9PT09PT09PT09ICovCiAgICAgICAgLm1haW4tY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gTE9HTyA9PT09PT09PT09ICovCiAgICAgICAgLmxvZ28gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMjVweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmxvZ286aG92ZXIgeyBvcGFjaXR5OiAxOyB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBTUElOIENPVU5URVIgPT09PT09PT09PSAqLwogICAgICAgIC5zcGluLWNvdW50ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMjVweDsKICAgICAgICAgICAgcmlnaHQ6IDI1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMik7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuNSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxOHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiAjZmNhNWE1OwogICAgICAgIH0KICAgICAgICAuc3Bpbi1jb3VudGVyLndhcm5pbmcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4yKTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC41KTsKICAgICAgICAgICAgY29sb3I6ICNmY2QzNGQ7CiAgICAgICAgfQogICAgICAgIC5zcGluLWNvdW50ZXIuZGVwbGV0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJlZCk7CiAgICAgICAgICAgIGNvbG9yOiAjZmNhNWE1OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09IFZBVUxUIEhFQURFUiA9PT09PT09PT09ICovCiAgICAgICAgLnZhdWx0LWhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnZhdWx0LWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDI1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjIpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzOSwgOTIsIDI0NiwgMC40KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5Eb3duIDAuOHMgZWFzZTsKICAgICAgICB9CiAgICAgICAgLnZhdWx0LWJhZGdlIHNwYW4gewogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wdXJwbGUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmF1bHQtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDIuMnJlbSwgN3Z3LCAzLjVyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDAuOHMgZWFzZSAwLjJzIGJvdGg7CiAgICAgICAgfQogICAgICAgIC52YXVsdC10aXRsZSAuZ29sZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1nb2xkLWxpZ2h0KSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnZhdWx0LXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDAuOHMgZWFzZSAwLjRzIGJvdGg7CiAgICAgICAgICAgIG1heC13aWR0aDogNDAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmF1bHQtd2FybmluZyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6ICNmY2E1YTU7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC44cyBlYXNlIDAuNXMgYm90aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5VcCB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBTUElOIFdIRUVMIENPTlRBSU5FUiA9PT09PT09PT09ICovCiAgICAgICAgLndoZWVsLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDMyMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDMyMHB4OwogICAgICAgICAgICBtYXJnaW46IDE1cHggYXV0bzsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAwLjhzIGVhc2UgMC42cyBib3RoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2hlZWwtZ2xvdyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtMjBweDsgbGVmdDogLTIwcHg7IHJpZ2h0OiAtMjBweDsgYm90dG9tOiAtMjBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb25pYy1ncmFkaWVudChmcm9tIDBkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWdvbGQpLCB2YXIoLS1jeWFuKSwgdmFyKC0tcGluayksIHZhcigtLXB1cnBsZSkpOwogICAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICAgIGZpbHRlcjogYmx1cigyMHB4KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBnbG93Um90YXRlIDhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBnbG93Um90YXRlIHsKICAgICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1cyBjdWJpYy1iZXppZXIoMC4xNywgMC42NywgMC4xMiwgMC45OSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCAwIDMwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyksCiAgICAgICAgICAgICAgICBpbnNldCAwIDAgNTBweCByZ2JhKDAsMCwwLDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWdtZW50IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB3aWR0aDogNTAlOwogICAgICAgICAgICBoZWlnaHQ6IDUwJTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAxMDAlLCAxMDAlIDAsIDEwMCUgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWdtZW50LWNvbnRlbnQgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMzAlOwogICAgICAgICAgICBsZWZ0OiA1NSU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyLjVkZWcpOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VnbWVudC1pY29uIHsgZm9udC1zaXplOiAxLjRyZW07IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAzcHg7IH0KICAgICAgICAuc2VnbWVudC10ZXh0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAycHggcmdiYSgwLDAsMCwwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VnbWVudDpudGgtY2hpbGQoMSkgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhiNWNmNiwgIzdjM2FlZCk7IH0KICAgICAgICAuc2VnbWVudDpudGgtY2hpbGQoMikgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNENEFGMzcsICNCODk3MkUpOyB9CiAgICAgICAgLnNlZ21lbnQ6bnRoLWNoaWxkKDMpIHsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDZiNmQ0LCAjMDg5MWIyKTsgfQogICAgICAgIC5zZWdtZW50Om50aC1jaGlsZCg0KSB7IHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlYzQ4OTksICNkYjI3NzcpOyB9CiAgICAgICAgLnNlZ21lbnQ6bnRoLWNoaWxkKDUpIHsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEwYjk4MSwgIzA1OTY2OSk7IH0KICAgICAgICAuc2VnbWVudDpudGgtY2hpbGQoNikgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjU5ZTBiLCAjZDk3NzA2KTsgfQogICAgICAgIC5zZWdtZW50Om50aC1jaGlsZCg3KSB7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2MzY2ZjEsICM0ZjQ2ZTUpOyB9CiAgICAgICAgLnNlZ21lbnQ6bnRoLWNoaWxkKDgpIHsgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCwgI2RjMjYyNik7IH0KICAgICAgICAKICAgICAgICAvKiBSQVJFIHNlZ21lbnRzIGdldCBzcGVjaWFsIGdsb3cgKi8KICAgICAgICAuc2VnbWVudC5yYXJlOjphZnRlciB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICfinKYnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMTUlOwogICAgICAgICAgICByaWdodDogMTUlOwogICAgICAgICAgICBmb250LXNpemU6IDAuNnJlbTsKICAgICAgICAgICAgY29sb3I6IGdvbGQ7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc3BhcmtsZSAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzcGFya2xlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjU7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0KICAgICAgICAgICAgNTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxLjMpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1jZW50ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogNTAlOyBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgICB3aWR0aDogNzBweDsKICAgICAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1uYXZ5KSwgdmFyKC0tbmF2eS1saWdodCkpOwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLDAsMCwwLjQpOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndoZWVsLXBvaW50ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogLTEycHg7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICB3aWR0aDogMDsKICAgICAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgICAgICBib3JkZXItbGVmdDogMThweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxOHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItdG9wOiAzMHB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgM3B4IDVweCByZ2JhKDAsMCwwLDAuNCkpOwogICAgICAgICAgICB6LWluZGV4OiAyMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBTUElOIEJVVFRPTiA9PT09PT09PT09ICovCiAgICAgICAgLnNwaW4tYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBwYWRkaW5nOiAxNnB4IDQ1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksICM3YzNhZWQpOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjQpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyNXB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDAuOHMgZWFzZSAwLjhzIGJvdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zcGluLWJ0bjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KSBzY2FsZSgxLjAyKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgxMzksIDkyLCAyNDYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zcGluLWJ0bjpkaXNhYmxlZCB7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNGI1NTYzLCAjMzc0MTUxKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBOTyBTUElOUyBMRUZUIE1FU1NBR0UgPT09PT09PT09PSAqLwogICAgICAgIC5uby1zcGlucyB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5vLXNwaW5zLmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgICAgICAgCiAgICAgICAgLm5vLXNwaW5zIGgzIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGNvbG9yOiAjZmNhNWE1OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubm8tc3BpbnMgcCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubm8tc3BpbnMgYSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAzMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZ29sZC1kYXJrKSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubm8tc3BpbnMgYTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gUFJJWkUgUE9QVVAgPT09PT09PT09PSAqLwogICAgICAgIC5wcml6ZS1vdmVybGF5IHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC44NSk7CiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaXplLW92ZXJsYXkuYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW5hdnktbGlnaHQpLCB2YXIoLS1uYXZ5KSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDMwcHg7CiAgICAgICAgICAgIG1heC13aWR0aDogNDIwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwb3BJbiAwLjVzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtY2FyZC5qYWNrcG90IHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDUwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgcG9wSW4gewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtcmFyaXR5IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0xMnB4OwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgcGFkZGluZzogNnB4IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaXplLXJhcml0eS5jb21tb24geyBiYWNrZ3JvdW5kOiB2YXIoLS1jeWFuKTsgY29sb3I6IHZhcigtLW5hdnkpOyB9CiAgICAgICAgLnByaXplLXJhcml0eS5yYXJlIHsgYmFja2dyb3VuZDogdmFyKC0tcHVycGxlKTsgY29sb3I6IHdoaXRlOyB9CiAgICAgICAgLnByaXplLXJhcml0eS5lcGljIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWdvbGQtbGlnaHQpKTsgY29sb3I6IHZhcigtLW5hdnkpOyB9CiAgICAgICAgLnByaXplLXJhcml0eS5sZWdlbmRhcnkgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWY0NDQ0LCAjZjk3MzE2KTsgY29sb3I6IHdoaXRlOyBhbmltYXRpb246IHB1bHNlIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgyMzksIDY4LCA2OCwgMC41KTsgfQogICAgICAgICAgICA1MCUgeyBib3gtc2hhZG93OiAwIDAgMjVweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjgpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcml6ZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBtYXJnaW46IDIwcHggMCAxNXB4OwogICAgICAgICAgICBhbmltYXRpb246IGJvdW5jZSAwLjZzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgYm91bmNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtZGVzYyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjgpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtY29kZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtY29kZSBzcGFuIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogVElNRVIgKi8KICAgICAgICAucHJpemUtdGltZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpemUtdGltZXItbGFiZWwgewogICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiAjZmNhNWE1OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcml6ZS10aW1lci1jb3VudGRvd24gewogICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6ICNmY2E1YTU7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcml6ZS1maW5lLXByaW50IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcml6ZS1jdGEgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMzVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWdvbGQtZGFyaykpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaXplLWN0YTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2xvc2UtYnRuIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDE1cHg7CiAgICAgICAgICAgIHJpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNsb3NlLWJ0bjpob3ZlciB7IGNvbG9yOiB2YXIoLS1nb2xkKTsgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gQkFDSyBMSU5LID09PT09PT09PT0gKi8KICAgICAgICAuYmFjay1saW5rIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBib3R0b206IDI1cHg7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjQpOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuYmFjay1saW5rOmhvdmVyIHsgY29sb3I6IHZhcigtLWdvbGQpOyB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBDT05GRVRUSSA9PT09PT09PT09ICovCiAgICAgICAgLmNvbmZldHRpIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgICAgICB0b3A6IC0xMHB4OwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMjAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGNvbmZldHRpRmFsbCB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKSByb3RhdGUoNzIwZGVnKTsgb3BhY2l0eTogMDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09IFJFU1BPTlNJVkUgPT09PT09PT09PSAqLwogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkgewogICAgICAgICAgICAud2hlZWwtY29udGFpbmVyIHsgd2lkdGg6IDI3MHB4OyBoZWlnaHQ6IDI3MHB4OyB9CiAgICAgICAgICAgIC5zZWdtZW50LWNvbnRlbnQgeyB0b3A6IDI1JTsgfQogICAgICAgICAgICAuc2VnbWVudC1pY29uIHsgZm9udC1zaXplOiAxLjFyZW07IH0KICAgICAgICAgICAgLnNlZ21lbnQtdGV4dCB7IGZvbnQtc2l6ZTogMC40cmVtOyB9CiAgICAgICAgICAgIC53aGVlbC1jZW50ZXIgeyB3aWR0aDogNTVweDsgaGVpZ2h0OiA1NXB4OyBmb250LXNpemU6IDEuNHJlbTsgfQogICAgICAgICAgICAucHJpemUtY2FyZCB7IHBhZGRpbmc6IDM1cHggMjBweDsgfQogICAgICAgICAgICAuc3Bpbi1jb3VudGVyIHsgdG9wOiAyMHB4OyByaWdodDogMTVweDsgZm9udC1zaXplOiAwLjY1cmVtOyBwYWRkaW5nOiA2cHggMTJweDsgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8IS0tIEJhY2tncm91bmQgLS0+CiAgICA8ZGl2IGNsYXNzPSJiZy1tYXN0ZXIiPjwvZGl2PgogICAgCiAgICA8IS0tIEZsb2F0aW5nIFN0YXJzIC0tPgogICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctc3RhciI+4pymPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZy1zdGFyIj7inKc8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLXN0YXIiPuKcpjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctc3RhciI+4pynPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZy1zdGFyIj7inKY8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLXN0YXIiPuKcpzwvZGl2PgogICAgCiAgICA8IS0tIE1haW4gQ29udGFpbmVyIC0tPgogICAgPGRpdiBjbGFzcz0ibWFpbi1jb250YWluZXIiPgogICAgICAgIDwhLS0gTG9nbyAtLT4KICAgICAgICA8YSBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbSIgY2xhc3M9ImxvZ28iPkJyYW5kSGFuZHNoYWtlPC9hPgogICAgICAgIAogICAgICAgIDwhLS0gU3BpbiBDb3VudGVyIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InNwaW4tY291bnRlciIgaWQ9InNwaW5Db3VudGVyIj4KICAgICAgICAgICAg8J+OsiA8c3BhbiBpZD0ic3BpbnNMZWZ0Ij4yPC9zcGFuPiBTUElOUyBMRUZUCiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idmF1bHQtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmF1bHQtYmFkZ2UiPgogICAgICAgICAgICAgICAgPHNwYW4+8J+OsiBGZWVsaW5nIEx1Y2t5Pzwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxoMSBjbGFzcz0idmF1bHQtdGl0bGUiPlRoZSA8c3BhbiBjbGFzcz0iZ29sZCI+VmF1bHQ8L3NwYW4+PC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9InZhdWx0LXN1YnRpdGxlIj5TcGluIHRoZSB3aGVlbCBmb3IgZXhjbHVzaXZlIGRpc2NvdW50cyBhbmQgcmFyZSBwcml6ZXMuIEV2ZXJ5IHNwaW4gd2lucyBzb21ldGhpbmchPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YXVsdC13YXJuaW5nIj7imqDvuI8gWU9VIE9OTFkgR0VUIDIgU1BJTlMg4oCUIE1BS0UgVEhFTSBDT1VOVCE8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFNwaW4gV2hlZWwgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtY29udGFpbmVyIiBpZD0id2hlZWxDb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbC1nbG93Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtcG9pbnRlciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsIiBpZD0id2hlZWwiPgogICAgICAgICAgICAgICAgPCEtLSA4IFNlZ21lbnRzIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlZ21lbnQtaWNvbiI+8J+Orzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlZ21lbnQtdGV4dCI+RnJlZSBSZXA8YnI+QXVkaXQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZ21lbnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZ21lbnQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWdtZW50LWljb24iPvCflK48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWdtZW50LXRleHQiPkFsbW9zdDxicj5UaGVyZS4uLjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlZ21lbnQtaWNvbiI+8J+Tujwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlZ21lbnQtdGV4dCI+My1DaGFubmVsPGJyPkJhbm5lciBTZXQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZ21lbnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZ21lbnQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWdtZW50LWljb24iPvCfko48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWdtZW50LXRleHQiPjI1JSBPZmY8YnI+QW55IENhcmQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZ21lbnQgcmFyZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlZ21lbnQtaWNvbiI+8J+OrDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNlZ21lbnQtdGV4dCI+MzAtU2VjPGJyPlZpZGVvPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWdtZW50IHJhcmUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZ21lbnQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWdtZW50LWljb24iPvCfk7E8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWdtZW50LXRleHQiPjMwLURheTxicj5Tb2NpYWwgUGFjazwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudCByYXJlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWdtZW50LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VnbWVudC1pY29uIj7wn5OwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VnbWVudC10ZXh0Ij5FeHBlcnQ8YnI+RmVhdHVyZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudCByYXJlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWdtZW50LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VnbWVudC1pY29uIj7wn5GRPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VnbWVudC10ZXh0Ij4kNTAgQ2FyZDxicj5GUkVFITwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbC1jZW50ZXIiPvCfjrA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBTcGluIEJ1dHRvbiAtLT4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJzcGluLWJ0biIgaWQ9InNwaW5CdG4iIG9uY2xpY2s9InNwaW5XaGVlbCgpIj4KICAgICAgICAgICAg4pyoIFNwaW4gdG8gV2luCiAgICAgICAgPC9idXR0b24+CiAgICAgICAgCiAgICAgICAgPCEtLSBObyBTcGlucyBMZWZ0IE1lc3NhZ2UgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ibm8tc3BpbnMiIGlkPSJub1NwaW5zIj4KICAgICAgICAgICAgPGgzPvCfjrIgTm8gU3BpbnMgUmVtYWluaW5nPC9oMz4KICAgICAgICAgICAgPHA+WW91J3ZlIHVzZWQgYm90aCBvZiB5b3VyIHZhdWx0IHNwaW5zISBCdXQgZG9uJ3Qgd29ycnkg4oCUIHlvdSBjYW4gc3RpbGwgY2xhaW0gYW55IHByaXplcyB5b3Ugd29uLCBvciBleHBsb3JlIG91ciBwcmVtaXVtIGNhcmRzIGF0IGZ1bGwgdmFsdWUuPC9wPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9wcmljaW5nIj5WaWV3IFByZW1pdW0gQ2FyZHMg4oaSPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gQmFjayBMaW5rIC0tPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vYnJhbmRoYW5kc2hha2UuY29tIiBjbGFzcz0iYmFjay1saW5rIj7ihpAgQmFjayB0byBIb21lPC9hPgogICAgPC9kaXY+CiAgICAKICAgIDwhLS0gUHJpemUgUG9wdXAgLS0+CiAgICA8ZGl2IGNsYXNzPSJwcml6ZS1vdmVybGF5IiBpZD0icHJpemVPdmVybGF5Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1jYXJkIiBpZD0icHJpemVDYXJkIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2xvc2UtYnRuIiBvbmNsaWNrPSJjbG9zZVByaXplKCkiPsOXPC9idXR0b24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLXJhcml0eSIgaWQ9InByaXplUmFyaXR5Ij5DT01NT048L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaWNvbiIgaWQ9InByaXplSWNvbiI+8J+OgTwvZGl2PgogICAgICAgICAgICA8aDIgY2xhc3M9InByaXplLXRpdGxlIiBpZD0icHJpemVUaXRsZSI+Q29uZ3JhdHVsYXRpb25zITwvaDI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwcml6ZS1kZXNjIiBpZD0icHJpemVEZXNjIj5Zb3UndmUgd29uIHNvbWV0aGluZyBhbWF6aW5nITwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtY29kZSIgaWQ9InByaXplQ29kZUJveCI+CiAgICAgICAgICAgICAgICA8c3BhbiBpZD0icHJpemVDb2RlIj5DT0RFPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtdGltZXIiIGlkPSJwcml6ZVRpbWVyIj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcml6ZS10aW1lci1sYWJlbCI+4o+wIFByaXplIEV4cGlyZXMgSW48L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpemUtdGltZXItY291bnRkb3duIiBpZD0idGltZXJDb3VudGRvd24iPjIzOjU5OjU5PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHAgY2xhc3M9InByaXplLWZpbmUtcHJpbnQiIGlkPSJwcml6ZUZpbmUiPipNdXN0IGNvbXBsZXRlIHB1cmNoYXNlIHdpdGhpbiAyNCBob3VycyB0byByZWRlZW0uIE9uZSBwcml6ZSBwZXIgY3VzdG9tZXIuPC9wPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9wcmljaW5nIiBjbGFzcz0icHJpemUtY3RhIiBpZD0icHJpemVDdGEiPkNsYWltIFlvdXIgUHJpemUg4oaSPC9hPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxzY3JpcHQ+CiAgICAgICAgLy8gPT09PT09PT09PSBQUklaRVMgREFUQSA9PT09PT09PT09CiAgICAgICAgY29uc3QgcHJpemVzID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiAn8J+OrycsCiAgICAgICAgICAgICAgICB0aXRsZTogJ0ZyZWUgUmVwdXRhdGlvbiBBdWRpdCEnLAogICAgICAgICAgICAgICAgZGVzYzogJ1NlZSBob3cgeW91ciBvbmxpbmUgcHJlc2VuY2Ugc3RhY2tzIHVwISBHZXQgYSBjb21wbGltZW50YXJ5IFJlcEdyYWRlciBhdWRpdCB0byB1bmRlcnN0YW5kIHlvdXIgZGlnaXRhbCBmb290cHJpbnQuJywKICAgICAgICAgICAgICAgIGNvZGU6IG51bGwsCiAgICAgICAgICAgICAgICByYXJpdHk6ICdjb21tb24nLAogICAgICAgICAgICAgICAgY3RhOiAnR2V0IFlvdXIgRnJlZSBBdWRpdCcsCiAgICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly90b3AucmVwZ3JhZGVyLmNvbScsCiAgICAgICAgICAgICAgICBmaW5lOiAnKkZyZWUgYXVkaXQuIE5vIHB1cmNoYXNlIHJlcXVpcmVkLicsCiAgICAgICAgICAgICAgICBpc1dpbjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiAn8J+UricsCiAgICAgICAgICAgICAgICB0aXRsZTogJ1RoZSBTdGFycyBBcmUgQWxpZ25pbmcuLi4nLAogICAgICAgICAgICAgICAgZGVzYzogJ1NvIGNsb3NlISBUaGUgdW5pdmVyc2UgaXMgd2FybWluZyB1cCB0byB5b3UuIFlvdXIgbmV4dCBzcGluIG1pZ2h0IGJlIFRIRSBvbmUuIEZvcnR1bmUgZmF2b3JzIHBlcnNpc3RlbmNlIScsCiAgICAgICAgICAgICAgICBjb2RlOiBudWxsLAogICAgICAgICAgICAgICAgcmFyaXR5OiBudWxsLAogICAgICAgICAgICAgICAgY3RhOiAnVHJ5IEFnYWluJywKICAgICAgICAgICAgICAgIGxpbms6IG51bGwsCiAgICAgICAgICAgICAgICBmaW5lOiAnJywKICAgICAgICAgICAgICAgIGlzV2luOiBmYWxzZQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiAn8J+TuicsCiAgICAgICAgICAgICAgICB0aXRsZTogJzMtQ2hhbm5lbCBCYW5uZXIgU2V0IScsCiAgICAgICAgICAgICAgICBkZXNjOiAnUHJvZmVzc2lvbmFsIGJhbm5lciBncmFwaGljcyBmb3IgeW91ciB0b3AgMyBzb2NpYWwgY2hhbm5lbHMgKEZhY2Vib29rLCBMaW5rZWRJbiwgWW91VHViZSwgZXRjLikg4oCUIHlvdXJzIEZSRUUgd2l0aCBhbnkgY2FyZCBwdXJjaGFzZSEnLAogICAgICAgICAgICAgICAgY29kZTogJ0JBTk5FUlMzJywKICAgICAgICAgICAgICAgIHJhcml0eTogJ2NvbW1vbicsCiAgICAgICAgICAgICAgICBjdGE6ICdDbGFpbSBXaXRoIFB1cmNoYXNlJywKICAgICAgICAgICAgICAgIGxpbms6ICdodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbS9wcmljaW5nJywKICAgICAgICAgICAgICAgIGZpbmU6ICcqUmVkZWVtYWJsZSB3aXRoIGFueSBjYXJkIHB1cmNoYXNlIHdpdGhpbiAyNCBob3Vycy4nLAogICAgICAgICAgICAgICAgaXNXaW46IHRydWUKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogJ/Cfko4nLAogICAgICAgICAgICAgICAgdGl0bGU6ICcyNSUgT2ZmIEFueSBDYXJkIScsCiAgICAgICAgICAgICAgICBkZXNjOiAnTklDRSEgWW91IGp1c3QgdW5sb2NrZWQgMjUlIG9mZiBhbnkgZGlnaXRhbCBidXNpbmVzcyBjYXJkIHRpZXIuIFByZW1pdW0gcXVhbGl0eSBhdCBhIHByZW1pdW0gZGlzY291bnQuJywKICAgICAgICAgICAgICAgIGNvZGU6ICdWQVVMVDI1JywKICAgICAgICAgICAgICAgIHJhcml0eTogJ2NvbW1vbicsCiAgICAgICAgICAgICAgICBjdGE6ICdTaG9wIE5vdycsCiAgICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9icmFuZGhhbmRzaGFrZS5jb20vcHJpY2luZycsCiAgICAgICAgICAgICAgICBmaW5lOiAnKk11c3QgY29tcGxldGUgcHVyY2hhc2Ugd2l0aGluIDI0IGhvdXJzLiBDYW5ub3QgY29tYmluZSB3aXRoIG90aGVyIG9mZmVycy4nLAogICAgICAgICAgICAgICAgaXNXaW46IHRydWUKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogJ/CfjqwnLAogICAgICAgICAgICAgICAgdGl0bGU6ICczMC1TZWNvbmQgVmlkZW8gVXBncmFkZSEnLAogICAgICAgICAgICAgICAgZGVzYzogJ1JBUkUgRklORCEgR2V0IGEgcHJvZmVzc2lvbmFsIDMwLXNlY29uZCBwcm9tb3Rpb25hbCB2aWRlbyBhZGRlZCB0byB5b3VyIGNhcmQgcGFja2FnZSDigJQgYSAkMTUwIHZhbHVlLCBGUkVFIScsCiAgICAgICAgICAgICAgICBjb2RlOiAnVklERU8zMCcsCiAgICAgICAgICAgICAgICByYXJpdHk6ICdyYXJlJywKICAgICAgICAgICAgICAgIGN0YTogJ0NsYWltIFdpdGggUHVyY2hhc2UnLAogICAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vYnJhbmRoYW5kc2hha2UuY29tL3ByaWNpbmcnLAogICAgICAgICAgICAgICAgZmluZTogJypSZWRlZW1hYmxlIHdpdGggUHJvZmVzc2lvbmFsIG9yIFByZW1pdW0gY2FyZCBwdXJjaGFzZSB3aXRoaW4gMjQgaG91cnMuJywKICAgICAgICAgICAgICAgIGlzV2luOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246ICfwn5OxJywKICAgICAgICAgICAgICAgIHRpdGxlOiAnMzAtRGF5IFNvY2lhbCBNZWRpYSBQYWNrIScsCiAgICAgICAgICAgICAgICBkZXNjOiAnRVBJQyBXSU4hIDMwIGRheXMgb2YgcHJvZmVzc2lvbmFsbHkgZGVzaWduZWQgc29jaWFsIG1lZGlhIGNvbnRlbnQgZm9yIHlvdXIgYnJhbmQuIFBvc3RzLCBzdG9yaWVzLCBhbmQgbW9yZSEnLAogICAgICAgICAgICAgICAgY29kZTogJ1NPQ0lBTDMwJywKICAgICAgICAgICAgICAgIHJhcml0eTogJ2VwaWMnLAogICAgICAgICAgICAgICAgY3RhOiAnQ2xhaW0gV2l0aCBQdXJjaGFzZScsCiAgICAgICAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly9icmFuZGhhbmRzaGFrZS5jb20vcHJpY2luZycsCiAgICAgICAgICAgICAgICBmaW5lOiAnKlJlZGVlbWFibGUgd2l0aCBhbnkgY2FyZCBwdXJjaGFzZSB3aXRoaW4gMjQgaG91cnMuICQ1MDAgdmFsdWUuJywKICAgICAgICAgICAgICAgIGlzV2luOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246ICfwn5OwJywKICAgICAgICAgICAgICAgIHRpdGxlOiAnRXhwZXJ0IEZlYXR1cmUgQXJ0aWNsZSEnLAogICAgICAgICAgICAgICAgZGVzYzogJ0xFR0VOREFSWSEgR2V0IGZlYXR1cmVkIGFzIGFuIGluZHVzdHJ5IGV4cGVydCBvbiBvdXIgbmV3cyBjaGFubmVsLiBJbnRlcnZpZXdzLCBhcnRpY2xlcywgYW5kIG1hc3NpdmUgZXhwb3N1cmUhJywKICAgICAgICAgICAgICAgIGNvZGU6ICdGRUFUVVJFRDIwMjYnLAogICAgICAgICAgICAgICAgcmFyaXR5OiAnbGVnZW5kYXJ5JywKICAgICAgICAgICAgICAgIGN0YTogJ0NsYWltIFRoaXMgUHJpemUnLAogICAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vYnJhbmRoYW5kc2hha2UuY29tL3ByaWNpbmcnLAogICAgICAgICAgICAgICAgZmluZTogJypSZWRlZW1hYmxlIHdpdGggUHJlbWl1bSBjYXJkIHB1cmNoYXNlIHdpdGhpbiAyNCBob3Vycy4gU3ViamVjdCB0byBlZGl0b3JpYWwgcmV2aWV3LicsCiAgICAgICAgICAgICAgICBpc1dpbjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiAn8J+RkScsCiAgICAgICAgICAgICAgICB0aXRsZTogJyQ1MCBWaXJ0dWFsIENhcmQg4oCUIEZSRUUhJywKICAgICAgICAgICAgICAgIGRlc2M6ICfwn46JIEpBQ0tQT1QhIFlvdSBqdXN0IHdvbiBhIGNvbXBsZXRlIEVzc2VudGlhbCBEaWdpdGFsIEJ1c2luZXNzIENhcmQgYWJzb2x1dGVseSBGUkVFISBObyBwdXJjaGFzZSBuZWNlc3NhcnkhJywKICAgICAgICAgICAgICAgIGNvZGU6ICdGUkVFQ0FSRDUwJywKICAgICAgICAgICAgICAgIHJhcml0eTogJ2xlZ2VuZGFyeScsCiAgICAgICAgICAgICAgICBjdGE6ICdDbGFpbSBZb3VyIEZyZWUgQ2FyZCEnLAogICAgICAgICAgICAgICAgbGluazogJ2h0dHBzOi8vYnJhbmRoYW5kc2hha2UuY29tL3ByaWNpbmcnLAogICAgICAgICAgICAgICAgZmluZTogJypNdXN0IGNsYWltIHdpdGhpbiAyNCBob3Vycy4gT25lIGZyZWUgY2FyZCBwZXIgcGVyc29uLiBFc3NlbnRpYWwgdGllciBvbmx5LicsCiAgICAgICAgICAgICAgICBpc1dpbjogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgXTsKICAgICAgICAKICAgICAgICAvLyBXZWlnaHRzOiBIaWdoZXIgPSBtb3JlIGxpa2VseS4gVHJ5LWFnYWluIChpbmRleCAxKSBoYXMgaGlnaGVzdCB3ZWlnaHQuCiAgICAgICAgLy8gTGVnZW5kYXJ5IHByaXplcyAoNiw3KSBoYXZlIHZlcnkgbG93IHdlaWdodAogICAgICAgIGNvbnN0IHdlaWdodHMgPSBbMTUsIDI1LCAxNSwgMTgsIDEwLCA4LCA1LCA0XTsgLy8gUmVwIEF1ZGl0LCBUcnkgQWdhaW4sIEJhbm5lcnMsIDI1JSBPZmYsIFZpZGVvLCBTb2NpYWwgUGFjaywgRmVhdHVyZSwgRnJlZSBDYXJkCiAgICAgICAgCiAgICAgICAgbGV0IGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgICBsZXQgY3VycmVudFJvdGF0aW9uID0gMDsKICAgICAgICBsZXQgc3BpbnNSZW1haW5pbmcgPSAyOwogICAgICAgIGxldCB0aW1lckludGVydmFsID0gbnVsbDsKICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09IENIRUNLIFNUT1JFRCBTUElOUyA9PT09PT09PT09CiAgICAgICAgZnVuY3Rpb24gaW5pdFNwaW5zKCkgewogICAgICAgICAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndmF1bHRTcGlucycpOwogICAgICAgICAgICBjb25zdCBzdG9yZWRUaW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ZhdWx0U3BpblRpbWUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFJlc2V0IGFmdGVyIDI0IGhvdXJzCiAgICAgICAgICAgIGlmIChzdG9yZWRUaW1lKSB7CiAgICAgICAgICAgICAgICBjb25zdCBlbGFwc2VkID0gRGF0ZS5ub3coKSAtIHBhcnNlSW50KHN0b3JlZFRpbWUpOwogICAgICAgICAgICAgICAgaWYgKGVsYXBzZWQgPiAyNCAqIDYwICogNjAgKiAxMDAwKSB7CiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3ZhdWx0U3BpbnMnKTsKICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndmF1bHRTcGluVGltZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoc3RvcmVkICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBzcGluc1JlbWFpbmluZyA9IHBhcnNlSW50KHN0b3JlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHVwZGF0ZVNwaW5Db3VudGVyKCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVNwaW5Db3VudGVyKCkgewogICAgICAgICAgICBjb25zdCBjb3VudGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5Db3VudGVyJyk7CiAgICAgICAgICAgIGNvbnN0IHNwaW5zVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluc0xlZnQnKTsKICAgICAgICAgICAgY29uc3Qgc3BpbkJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluQnRuJyk7CiAgICAgICAgICAgIGNvbnN0IG5vU3BpbnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9TcGlucycpOwogICAgICAgICAgICBjb25zdCB3aGVlbENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aGVlbENvbnRhaW5lcicpOwogICAgICAgICAgICAKICAgICAgICAgICAgc3BpbnNUZXh0LnRleHRDb250ZW50ID0gc3BpbnNSZW1haW5pbmc7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoc3BpbnNSZW1haW5pbmcgPT09IDEpIHsKICAgICAgICAgICAgICAgIGNvdW50ZXIuY2xhc3NMaXN0LmFkZCgnd2FybmluZycpOwogICAgICAgICAgICAgICAgY291bnRlci5jbGFzc0xpc3QucmVtb3ZlKCdkZXBsZXRlZCcpOwogICAgICAgICAgICB9IGVsc2UgaWYgKHNwaW5zUmVtYWluaW5nID09PSAwKSB7CiAgICAgICAgICAgICAgICBjb3VudGVyLmNsYXNzTGlzdC5hZGQoJ2RlcGxldGVkJyk7CiAgICAgICAgICAgICAgICBjb3VudGVyLmNsYXNzTGlzdC5yZW1vdmUoJ3dhcm5pbmcnKTsKICAgICAgICAgICAgICAgIHNwaW5CdG4uc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgIG5vU3BpbnMuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgICAgICB3aGVlbENvbnRhaW5lci5zdHlsZS5vcGFjaXR5ID0gJzAuNSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc3BpbldoZWVsKCkgewogICAgICAgICAgICBpZiAoaXNTcGlubmluZyB8fCBzcGluc1JlbWFpbmluZyA8PSAwKSByZXR1cm47CiAgICAgICAgICAgIAogICAgICAgICAgICBpc1NwaW5uaW5nID0gdHJ1ZTsKICAgICAgICAgICAgc3BpbnNSZW1haW5pbmctLTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3ZhdWx0U3BpbnMnLCBzcGluc1JlbWFpbmluZyk7CiAgICAgICAgICAgIGlmICghbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ZhdWx0U3BpblRpbWUnKSkgewogICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3ZhdWx0U3BpblRpbWUnLCBEYXRlLm5vdygpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgdXBkYXRlU3BpbkNvdW50ZXIoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHdoZWVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3doZWVsJyk7CiAgICAgICAgICAgIGNvbnN0IHNwaW5CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpOwogICAgICAgICAgICAKICAgICAgICAgICAgc3BpbkJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHNwaW5CdG4udGV4dENvbnRlbnQgPSAn8J+OsCBTcGlubmluZy4uLic7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBXZWlnaHRlZCByYW5kb20KICAgICAgICAgICAgY29uc3QgdG90YWxXZWlnaHQgPSB3ZWlnaHRzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApOwogICAgICAgICAgICBsZXQgcmFuZG9tID0gTWF0aC5yYW5kb20oKSAqIHRvdGFsV2VpZ2h0OwogICAgICAgICAgICBsZXQgcHJpemVJbmRleCA9IDA7CiAgICAgICAgICAgIAogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdlaWdodHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHJhbmRvbSAtPSB3ZWlnaHRzW2ldOwogICAgICAgICAgICAgICAgaWYgKHJhbmRvbSA8PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgcHJpemVJbmRleCA9IGk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSByb3RhdGlvbgogICAgICAgICAgICBjb25zdCBzZWdtZW50QW5nbGUgPSAzNjAgLyA4OwogICAgICAgICAgICBjb25zdCB0YXJnZXRBbmdsZSA9IChwcml6ZUluZGV4ICogc2VnbWVudEFuZ2xlKSArIChzZWdtZW50QW5nbGUgLyAyKTsKICAgICAgICAgICAgY29uc3Qgc3BpbnMgPSA1ICsgTWF0aC5yYW5kb20oKSAqIDM7CiAgICAgICAgICAgIGNvbnN0IGZpbmFsUm90YXRpb24gPSBjdXJyZW50Um90YXRpb24gKyAoMzYwICogc3BpbnMpICsgKDM2MCAtIHRhcmdldEFuZ2xlKSArIDIyLjU7CiAgICAgICAgICAgIAogICAgICAgICAgICBjdXJyZW50Um90YXRpb24gPSBmaW5hbFJvdGF0aW9uOwogICAgICAgICAgICB3aGVlbC5zdHlsZS50cmFuc2Zvcm0gPSBgcm90YXRlKCR7ZmluYWxSb3RhdGlvbn1kZWcpYDsKICAgICAgICAgICAgCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgc2hvd1ByaXplKHByaXplSW5kZXgpOwogICAgICAgICAgICAgICAgaXNTcGlubmluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoc3BpbnNSZW1haW5pbmcgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgc3BpbkJ0bi5kaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIHNwaW5CdG4udGV4dENvbnRlbnQgPSAn4pyoIExhc3QgU3BpbiEnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCA1MDAwKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hvd1ByaXplKGluZGV4KSB7CiAgICAgICAgICAgIGNvbnN0IHByaXplID0gcHJpemVzW2luZGV4XTsKICAgICAgICAgICAgY29uc3QgY2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZUNhcmQnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZUljb24nKS50ZXh0Q29udGVudCA9IHByaXplLmljb247CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZVRpdGxlJykudGV4dENvbnRlbnQgPSBwcml6ZS50aXRsZTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXplRGVzYycpLnRleHRDb250ZW50ID0gcHJpemUuZGVzYzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGNvZGVCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemVDb2RlQm94Jyk7CiAgICAgICAgICAgIGNvbnN0IGN0YUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZUN0YScpOwogICAgICAgICAgICBjb25zdCByYXJpdHlCYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZVJhcml0eScpOwogICAgICAgICAgICBjb25zdCB0aW1lckJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZVRpbWVyJyk7CiAgICAgICAgICAgIGNvbnN0IGZpbmVUZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXplRmluZScpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ29kZQogICAgICAgICAgICBpZiAocHJpemUuY29kZSkgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXplQ29kZScpLnRleHRDb250ZW50ID0gcHJpemUuY29kZTsKICAgICAgICAgICAgICAgIGNvZGVCb3guc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29kZUJveC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBSYXJpdHkKICAgICAgICAgICAgaWYgKHByaXplLnJhcml0eSkgewogICAgICAgICAgICAgICAgcmFyaXR5QmFkZ2UudGV4dENvbnRlbnQgPSBwcml6ZS5yYXJpdHkudG9VcHBlckNhc2UoKTsKICAgICAgICAgICAgICAgIHJhcml0eUJhZGdlLmNsYXNzTmFtZSA9ICdwcml6ZS1yYXJpdHkgJyArIHByaXplLnJhcml0eTsKICAgICAgICAgICAgICAgIHJhcml0eUJhZGdlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmFyaXR5QmFkZ2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVGltZXIgKG9ubHkgZm9yIHdpbnMpCiAgICAgICAgICAgIGlmIChwcml6ZS5pc1dpbiAmJiBwcml6ZS5jb2RlKSB7CiAgICAgICAgICAgICAgICB0aW1lckJveC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgICAgICAgICAgIHN0YXJ0VGltZXIoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRpbWVyQm94LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEZpbmUgcHJpbnQKICAgICAgICAgICAgZmluZVRleHQudGV4dENvbnRlbnQgPSBwcml6ZS5maW5lOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ1RBCiAgICAgICAgICAgIGN0YUJ0bi50ZXh0Q29udGVudCA9IHByaXplLmN0YSArICcg4oaSJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChwcml6ZS5saW5rKSB7CiAgICAgICAgICAgICAgICBjdGFCdG4uaHJlZiA9IHByaXplLmxpbms7CiAgICAgICAgICAgICAgICBjdGFCdG4ub25jbGljayA9IG51bGw7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjdGFCdG4uaHJlZiA9ICcjJzsKICAgICAgICAgICAgICAgIGN0YUJ0bi5vbmNsaWNrID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICBjbG9zZVByaXplKCk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBKYWNrcG90IHN0eWxpbmcKICAgICAgICAgICAgaWYgKHByaXplLnJhcml0eSA9PT0gJ2xlZ2VuZGFyeScgfHwgcHJpemUucmFyaXR5ID09PSAnZXBpYycpIHsKICAgICAgICAgICAgICAgIGNhcmQuY2xhc3NMaXN0LmFkZCgnamFja3BvdCcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY2FyZC5jbGFzc0xpc3QucmVtb3ZlKCdqYWNrcG90Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZU92ZXJsYXknKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENvbmZldHRpIGZvciB3aW5zCiAgICAgICAgICAgIGlmIChwcml6ZS5pc1dpbikgewogICAgICAgICAgICAgICAgbGF1bmNoQ29uZmV0dGkoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBmdW5jdGlvbiBzdGFydFRpbWVyKCkgewogICAgICAgICAgICAvLyAyNCBob3VyIGNvdW50ZG93bgogICAgICAgICAgICBsZXQgdGltZUxlZnQgPSAyNCAqIDYwICogNjA7IC8vIDI0IGhvdXJzIGluIHNlY29uZHMKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICh0aW1lckludGVydmFsKSBjbGVhckludGVydmFsKHRpbWVySW50ZXJ2YWwpOwogICAgICAgICAgICAKICAgICAgICAgICAgZnVuY3Rpb24gdXBkYXRlVGltZXIoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IodGltZUxlZnQgLyAzNjAwKTsKICAgICAgICAgICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0aW1lTGVmdCAlIDM2MDApIC8gNjApOwogICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kcyA9IHRpbWVMZWZ0ICUgNjA7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aW1lckNvdW50ZG93bicpLnRleHRDb250ZW50ID0gCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKGhvdXJzKS5wYWRTdGFydCgyLCAnMCcpICsgJzonICsgCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKG1pbnV0ZXMpLnBhZFN0YXJ0KDIsICcwJykgKyAnOicgKyAKICAgICAgICAgICAgICAgICAgICBTdHJpbmcoc2Vjb25kcykucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKHRpbWVMZWZ0ID4gMCkgewogICAgICAgICAgICAgICAgICAgIHRpbWVMZWZ0LS07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHVwZGF0ZVRpbWVyKCk7CiAgICAgICAgICAgIHRpbWVySW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh1cGRhdGVUaW1lciwgMTAwMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIGNsb3NlUHJpemUoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZU92ZXJsYXknKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgaWYgKHRpbWVySW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwodGltZXJJbnRlcnZhbCk7CiAgICAgICAgICAgIHVwZGF0ZVNwaW5Db3VudGVyKCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIGxhdW5jaENvbmZldHRpKCkgewogICAgICAgICAgICBjb25zdCBjb2xvcnMgPSBbJyNENEFGMzcnLCAnIzhiNWNmNicsICcjMDZiNmQ0JywgJyNlYzQ4OTknLCAnIzEwYjk4MScsICcjZjU5ZTBiJ107CiAgICAgICAgICAgIAogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDYwOyBpKyspIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZldHRpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBjb25mZXR0aS5jbGFzc05hbWUgPSAnY29uZmV0dGknOwogICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUubGVmdCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAndncnOwogICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUuYmFja2dyb3VuZCA9IGNvbG9yc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjb2xvcnMubGVuZ3RoKV07CiAgICAgICAgICAgICAgICBjb25mZXR0aS5zdHlsZS53aWR0aCA9IChNYXRoLnJhbmRvbSgpICogMTAgKyA1KSArICdweCc7CiAgICAgICAgICAgICAgICBjb25mZXR0aS5zdHlsZS5oZWlnaHQgPSAoTWF0aC5yYW5kb20oKSAqIDEwICsgNSkgKyAncHgnOwogICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUuYm9yZGVyUmFkaXVzID0gTWF0aC5yYW5kb20oKSA+IDAuNSA/ICc1MCUnIDogJzAnOwogICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUuYW5pbWF0aW9uID0gYGNvbmZldHRpRmFsbCAke01hdGgucmFuZG9tKCkgKiAyICsgMn1zIGxpbmVhciBmb3J3YXJkc2A7CiAgICAgICAgICAgICAgICBjb25mZXR0aS5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiAwLjUgKyAncyc7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbmZldHRpKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjb25mZXR0aS5yZW1vdmUoKSwgNDAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gRXZlbnQgbGlzdGVuZXJzCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXplT3ZlcmxheScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS50YXJnZXQgPT09IHRoaXMpIGNsb3NlUHJpemUoKTsKICAgICAgICB9KTsKICAgICAgICAKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSBjbG9zZVByaXplKCk7CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gSW5pdGlhbGl6ZQogICAgICAgIGluaXRTcGlucygpOwogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
The Vault | BrandHandshake | Spin to Win
✦
✧
✦
✧
✦
✧
BrandHandshake
🎲 2 SPINS LEFT
🎲 Feeling Lucky?

The Vault

Spin the wheel for exclusive discounts and rare prizes. Every spin wins something!

⚠️ YOU ONLY GET 2 SPINS — MAKE THEM COUNT!
🎯 Free Rep
Audit
🔮 Almost
There...
📺 3-Channel
Banner Set
💎 25% Off
Any Card
🎬 30-Sec
Video
📱 30-Day
Social Pack
📰 Expert
Feature
👑 $50 Card
FREE!
🎰

🎲 No Spins Remaining

You've used both of your vault spins! But don't worry — you can still claim any prizes you won, or explore our premium cards at full value.

View Premium Cards →
← Back to Home
COMMON
🎁

Congratulations!

You've won something amazing!

CODE

⏰ Prize Expires In

23:59:59

*Must complete purchase within 24 hours to redeem. One prize per customer.

Claim Your Prize →
Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning