cropper

DYNAMIC PARADIGMS HIVE
UBUNTU-COHORT HUB

cropper
  • Cohort
  • Hub
  • Assess
  • Week 1
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Founder
  • Connect
  • About
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUHJpbWFyeSBNZXRhIFRhZ3MgLS0+CiAgICA8dGl0bGU+MTQtRGF5IFplcm8tQnVkZ2V0IENsaWVudCBBY3F1aXNpdGlvbiBQbGFuIHwgV2VlayAyIHwgVWJ1bnR1IENvaG9ydCB8IFRoZSBTb3ZlcmVpZ24gQXJjaGl0ZWN04oSiPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9InRpdGxlIiBjb250ZW50PSIxNC1EYXkgWmVyby1CdWRnZXQgQ2xpZW50IEFjcXVpc2l0aW9uIFBsYW4gfCBUaGUgU292ZXJlaWduIEFyY2hpdGVjdOKEoiI+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQSBzb3BoaXN0aWNhdGVkIGR1YWwtb2ZmZXIgc3BsaXQtdGVzdCBzeXN0ZW0gZGVzaWduZWQgdG8gYXR0cmFjdCAxNCsgcGF5aW5nIGNsaWVudHMgaW4gMTQgZGF5cyB3aXRob3V0IHNwZW5kaW5nIG1vbmV5LCBidWlsdCBvbiBpZGVudGl0eS1sZWQgYnJhbmRpbmcgYW5kIGRpZ2l0YWwgc292ZXJlaWdudHkuIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJDbGllbnQgQWNxdWlzaXRpb24sIFplcm8gQnVkZ2V0IE1hcmtldGluZywgRGlnaXRhbCBTdHJhdGVneSwgQWZyaWNhbiBXb21lbiBFbnRyZXByZW5ldXJzLCBCcmFuZCBEZXZlbG9wbWVudCwgU292ZXJlaWduIEFyY2hpdGVjdCI+CiAgICA8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9Ik5pZ2h0aW5nYWxlIE11a2FzYSB8IER5bmFtaWMgUGFyYWRpZ21zICYgTWVudG9yc2hpcCBTdWNjZXNzIEFjYWRlbWllcyI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3csIG5vYXJjaGl2ZSwgbm9pbWFnZWluZGV4Ij4KICAgIAogICAgPCEtLSBPcGVuIEdyYXBoIC8gRmFjZWJvb2sgLS0+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrMiI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IjE0LURheSBaZXJvLUJ1ZGdldCBDbGllbnQgQWNxdWlzaXRpb24gUGxhbiI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlNvdmVyZWlnbiwgZXRoaWNhbCwgbm9uLXNwYW1teSwgZmVtaW5pbmUsIHN0cmF0ZWdpYyBjbGllbnQgYWNxdWlzaXRpb24gc3lzdGVtLiI+CiAgICAKICAgIDwhLS0gVHdpdHRlciAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogICAgPG1ldGEgcHJvcGVydHk9InR3aXR0ZXI6dXJsIiBjb250ZW50PSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrMiI+CiAgICA8bWV0YSBwcm9wZXJ0eT0idHdpdHRlcjp0aXRsZSIgY29udGVudD0iMTQtRGF5IFplcm8tQnVkZ2V0IENsaWVudCBBY3F1aXNpdGlvbiBQbGFuIj4KICAgIAogICAgPCEtLSBDYW5vbmljYWwgVVJMIC0tPgogICAgPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL3dlZWsyIj4KICAgIAogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANDAwOzUwMDs2MDA7NzAwJmZhbWlseT1Db3Jtb3JhbnQrR2FyYW1vbmQ6aXRhbCx3Z2h0QDAsNDAwOzAsNTAwOzAsNjAwOzEsNDAwJmZhbWlseT1Nb250c2VycmF0OndnaHRAMzAwOzQwMDs1MDA7NjAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1uYXZ5OiAjMEQxQjJBOwogICAgICAgICAgICAtLWluZGlnbzogIzFDMUY0QTsKICAgICAgICAgICAgLS1nb2xkOiAjRDRBRjM3OwogICAgICAgICAgICAtLXJvc2Vnb2xkOiAjQzI5QThCOwogICAgICAgICAgICAtLWl2b3J5OiAjRjhGNEVDOwogICAgICAgICAgICAtLWNyZWFtOiAjRkFGN0YyOwogICAgICAgICAgICAtLWRlZXBnb2xkOiAjQjg5NzJFOwogICAgICAgICAgICAtLWxpZ2h0Z29sZDogI0U4RDVBMzsKICAgICAgICAgICAgLS1zaGFkb3duYXZ5OiByZ2JhKDEzLCAyNywgNDIsIDAuODUpOwogICAgICAgICAgICAtLXRlYWw6ICMwMDg5N2I7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGh0bWwgewogICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgICBJUCBQUk9URUNUSU9OIFNUWUxFUwogICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAKICAgICAgICAucHJvdGVjdGVkIHsKICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpbWcgewogICAgICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKICAgICAgICAgICAgLWtodG1sLXVzZXItZHJhZzogbm9uZTsKICAgICAgICAgICAgLW1vei11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgICAgIC1vLXVzZXItZHJhZzogbm9uZTsKICAgICAgICAgICAgdXNlci1kcmFnOiBub25lOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndhdGVybWFyayB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogOTk5OTsKICAgICAgICAgICAgb3BhY2l0eTogMC4wMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndhdGVybWFyazo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJ8KpIER5bmFtaWMgUGFyYWRpZ21z4oSiIOKAoiBQcm9wcmlldGFyeSBGcmFtZXdvcmsg4oCiIGR5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbSc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC0zMGRlZyk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDQpOwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgcHJpbnQgewogICAgICAgICAgICBib2R5OjpiZWZvcmUgewogICAgICAgICAgICAgICAgY29udGVudDogJ0NPTkZJREVOVElBTCDigKIgwqkgRHluYW1pYyBQYXJhZGlnbXMgJiBNZW50b3JzaGlwIFN1Y2Nlc3MgQWNhZGVtaWVzIOKAoiBVbmF1dGhvcml6ZWQgcmVwcm9kdWN0aW9uIHByb2hpYml0ZWQnOwogICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKTsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTsKICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5OwogICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgICAgfQogICAgICAgICAgICBib2R5ICogeyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBHZW9tZXRyaWMgQmFja2dyb3VuZCBQYXR0ZXJuICovCiAgICAgICAgLmdlb3BhdHRlcm4gewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDA7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMDM7CiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDMwZGVnLCB2YXIoLS1nb2xkKSAxcHgsIHRyYW5zcGFyZW50IDFweCksCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoLTMwZGVnLCB2YXIoLS1nb2xkKSAxcHgsIHRyYW5zcGFyZW50IDFweCksCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCB2YXIoLS1nb2xkKSAxcHgsIHRyYW5zcGFyZW50IDFweCksCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoLTE1MGRlZywgdmFyKC0tZ29sZCkgMXB4LCB0cmFuc3BhcmVudCAxcHgpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDYwcHggMTA0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZsb2F0aW5nIE9yYnMgKi8KICAgICAgICAub3JiIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGZpbHRlcjogYmx1cig2MHB4KTsKICAgICAgICAgICAgb3BhY2l0eTogMC4xNTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vcmIxIHsKICAgICAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdG9wOiAtMTAwcHg7CiAgICAgICAgICAgIHJpZ2h0OiAtMTAwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRvcmIgMjBzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3JiMiB7CiAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBib3R0b206IDIwJTsKICAgICAgICAgICAgbGVmdDogLTEwMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0b3JiIDI1cyBlYXNlLWluLW91dCBpbmZpbml0ZSByZXZlcnNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3JiMyB7CiAgICAgICAgICAgIHdpZHRoOiAyNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAyNTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICByaWdodDogMTAlOwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0b3JiIDE4cyBlYXNlLWluLW91dCBpbmZpbml0ZSAyczsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmbG9hdG9yYiB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7IH0KICAgICAgICAgICAgMjUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMzBweCwgLTMwcHgpIHNjYWxlKDEuMSk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpIHNjYWxlKDAuOTUpOyB9CiAgICAgICAgICAgIDc1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDMwcHgpIHNjYWxlKDEuMDUpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgICBUT1AgTkFWSUdBVElPTgogICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAKICAgICAgICAuc292ZXJlaWdubmF2IHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaGFkb3duYXZ5KTsKICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpOwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDMwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2bG9nbyB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdmxvZ286aG92ZXIgewogICAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXZjZW50ZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXZidG4gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdmJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXZidG4uZGlzYWJsZWQgewogICAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2YnRuLmhvbWVidG4gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2YnRuLmhvbWVidG46aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2YmFkZ2UgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZGVlcGdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2cHJvZ3Jlc3MgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9ncmVzc2RvdCB7CiAgICAgICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgICAgIGhlaWdodDogOHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9ncmVzc2RvdC5jb21wbGV0ZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsKTsgfQogICAgICAgIC5wcm9ncmVzc2RvdC5jdXJyZW50IHsgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7IGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpOyB9CiAgICAgICAgLnByb2dyZXNzZG90LnVwY29taW5nIHsgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7IH0KICAgICAgICAKICAgICAgICAvKiBIZXJvIFNlY3Rpb24gKi8KICAgICAgICAuaGVybyB7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAxMjBweCA0MHB4IDgwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm9iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMzBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA0cHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZSBmb3J3YXJkcyAwLjNzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaGVyb3RpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMi41cmVtLCA2dncsIDVyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMC41czsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm90aXRsZSBzcGFuIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1saWdodGdvbGQpLCB2YXIoLS1nb2xkKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm9zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4ycmVtLCAyLjV2dywgMS44cmVtKTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMC43czsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm9kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC43KTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAxcyBlYXNlIGZvcndhcmRzIDAuOXM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5oZXJvY3RhZ3JvdXAgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZSBmb3J3YXJkcyAxLjFzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuYnRucHJpbWFyeSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1kZWVwZ29sZCkpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggNDVweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idG5wcmltYXJ5OjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IC0xMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwyNTUsMjU1LDAuMyksIHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idG5wcmltYXJ5OmhvdmVyOjpiZWZvcmUgewogICAgICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuYnRucHJpbWFyeTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idG5zZWNvbmRhcnkgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgcGFkZGluZzogMThweCA0NXB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmJ0bnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNjcm9sbGluZGljYXRvciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYm90dG9tOiA0MHB4OwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMS41czsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNjcm9sbHRleHQgewogICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNjcm9sbGxpbmUgewogICAgICAgICAgICB3aWR0aDogMXB4OwogICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2Nyb2xscHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgc2Nyb2xscHVsc2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IGhlaWdodDogNTBweDsgfQogICAgICAgICAgICA1MCUgeyBvcGFjaXR5OiAwLjU7IGhlaWdodDogMzBweDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJblVwIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTZWN0aW9uIFN0eWxpbmcgKi8KICAgICAgICBzZWN0aW9uIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBwYWRkaW5nOiAxMDBweCA0MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbmhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogODBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb25sYWJlbCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogNHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9udGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDMuNXJlbSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uc3VidGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogU3RyYXRlZ3kgT3ZlcnZpZXcgKi8KICAgICAgICAuc3RyYXRlZ3lvdmVydmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50IDAlLCByZ2JhKDI4LCAzMSwgNzQsIDAuMykgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN0cmF0ZWd5Z3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zdHJhdGVneWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzLCAyNywgNDIsIDAuOCksIHJnYmEoMjgsIDMxLCA3NCwgMC40KSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zdHJhdGVneWNhcmQ6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogM3B4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1yb3NlZ29sZCkpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTsKICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN0cmF0ZWd5Y2FyZDpob3Zlcjo6YmVmb3JlIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zdHJhdGVneWNhcmQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN0cmF0ZWd5aWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3RyYXRlZ3ljYXJkIGgzIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zdHJhdGVneWNhcmQgcCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTcGxpdCBUZXN0IE9mZmVycyBTZWN0aW9uICovCiAgICAgICAgLm9mZmVyc3NlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1pbmRpZ28pIDAlLCB2YXIoLS1uYXZ5KSAxMDAlKTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub2ZmZXJzc2VjdGlvbjo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vZmZlcnNncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCg0MDBweCwgMWZyKSk7CiAgICAgICAgICAgIGdhcDogNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9mZmVyY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMTMsIDI3LCA0MiwgMC45KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjUpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMTUpOwogICAgICAgICAgICBwYWRkaW5nOiA1MHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vZmZlcmNhcmQ6OmFmdGVyIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtNTAlOwogICAgICAgICAgICByaWdodDogLTUwJTsKICAgICAgICAgICAgd2lkdGg6IDIwMCU7CiAgICAgICAgICAgIGhlaWdodDogMjAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDMpIDAlLCB0cmFuc3BhcmVudCA1MCUpOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9mZmVyYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vZmZlcmNhcmQgaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vZmZlcmRlc2NyaXB0aW9uIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9mZmVyZmVhdHVyZXMgewogICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub2ZmZXJmZWF0dXJlcyBsaSB7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9mZmVyZmVhdHVyZXMgbGk6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICfinKYnOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub2ZmZXJsZWFkc3RvIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vZmZlcmxlYWRzdG8gaDQgewogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub2ZmZXJsZWFkc3RvIHAgewogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC44KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRnVubmVsIERpYWdyYW0gU2VjdGlvbiAqLwogICAgICAgIC5mdW5uZWxzZWN0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tbmF2eSkgMCUsIHJnYmEoMjgsIDMxLCA3NCwgMC41KSA1MCUsIHZhcigtLW5hdnkpIDEwMCUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZnVubmVsdmlzdWFsaXphdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMzBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mdW5uZWxsZXZlbCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZ1bm5lbGJveCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMTMsIDI3LCA0MiwgMC45KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjUpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggNDBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZnVubmVsYm94LnRvcGZ1bm5lbCB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mdW5uZWxsZXZlbGxhYmVsIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBsZWZ0OiAtMTIwcHg7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZnVubmVsYm94IGg0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZnVubmVsYm94IHAgewogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mdW5uZWxhcnJvdyB7CiAgICAgICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tZ29sZCksIHZhcigtLXJvc2Vnb2xkKSk7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZ1bm5lbGFycm93OjphZnRlciB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGJvdHRvbTogLThweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkIHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZ1bm5lbHNwbGl0IHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgICBnYXA6IDMwcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBUaW1lbGluZSBTZWN0aW9uICovCiAgICAgICAgLnRpbWVsaW5lc2VjdGlvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjgsIDMxLCA3NCwgMC40KSAwJSwgdmFyKC0tbmF2eSkgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aW1lbGluZSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aW1lbGluZTo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tZ29sZCksIHZhcigtLXJvc2Vnb2xkKSwgdmFyKC0tZ29sZCkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGltZWxpbmVpdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGltZWxpbmVpdGVtOm50aC1jaGlsZChvZGQpIHsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1NSU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aW1lbGluZWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1NSU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aW1lbGluZWNvbnRlbnQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzLCAyNywgNDIsIDAuOSksIHJnYmEoMjgsIDMxLCA3NCwgMC41KSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjE1KTsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGltZWxpbmVkb3QgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdG9wOiAzMHB4OwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLW5hdnkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGltZWxpbmVkYXkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpbWVsaW5ldGFza3MgewogICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGltZWxpbmV0YXNrcyBsaSB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC44KTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpbWVsaW5ldGFza3MgbGk6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICfihpInOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIE1ldGhvZCBTZWN0aW9uICovCiAgICAgICAgLm1ldGhvZHNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmRpZ28pOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tZXRob2RzZWN0aW9uOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDUpIDAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubWV0aG9kZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICAgICAgICAgIGdhcDogNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1ldGhvZGxldmVsIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxMywgMjcsIDQyLCAwLjgpLCByZ2JhKDI4LCAzMSwgNzQsIDAuNCkpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMzBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tZXRob2RsZXZlbDo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWxldmVsKTsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0xNXB4OwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1ldGhvZGxldmVsIGg0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbjogMjBweCAwIDI1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tZXRob2RwaWxsYXJzIHsKICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1ldGhvZHBpbGxhcnMgbGkgewogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuOCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tZXRob2RwaWxsYXJzIGxpOmxhc3QtY2hpbGQgewogICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBDaGFubmVscyBTZWN0aW9uICovCiAgICAgICAgLmNoYW5uZWxzc2VjdGlvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLW5hdnkpIDAlLCByZ2JhKDI4LCAzMSwgNzQsIDAuMykgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaGFubmVsc2dyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICAgICAgZ2FwOiAyNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhbm5lbGNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzLCAyNywgNDIsIDAuNyksIHJnYmEoMjgsIDMxLCA3NCwgMC4zKSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICBwYWRkaW5nOiAzNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaGFubmVsY2FyZDpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYW5uZWxpY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhbm5lbGNhcmQgaDQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYW5uZWxjYXJkIHAgewogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNik7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIENUQSBTZWN0aW9uICovCiAgICAgICAgLmN0YXNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1pbmRpZ28pIDAlLCB2YXIoLS1uYXZ5KSA1MCUsIHZhcigtLWluZGlnbykgMTAwJSk7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY3Rhc2VjdGlvbjo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jdGFjb250ZW50IHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jdGF0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jdGFzdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jdGFidXR0b25zIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFyZ2V0c3N1bW1hcnkgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA1MHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTMsIDI3LCA0MiwgMC41KTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YXJnZXRpdGVtIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFyZ2V0bnVtYmVyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhcmdldGxhYmVsIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICAgQk9UVE9NIFBBR0UgTkFWSUdBVElPTgogICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAKICAgICAgICAucGFnZW5hdiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDI1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggMzBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMTMsIDI3LCA0MiwgMC4zKSk7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZjYXJkIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDI4LCAzMSwgNzQsIDAuNiksIHJnYmEoMTMsIDI3LCA0MiwgMC44KSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjIpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDI1cHg7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgbWluLXdpZHRoOiAxODBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZjYXJkOmhvdmVyIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlbmF2Y2FyZC5kaXNhYmxlZCB7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlbmF2YXJyb3cgewogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZW5hdmluZm8gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDNweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZsYWJlbCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZW5hdnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZob21lIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1kZWVwZ29sZCkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDMwcHg7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZW5hdmhvbWU6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZW5hdmhvbWUgLnBhZ2VuYXZhcnJvdyB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlbmF2aG9tZSAucGFnZW5hdmxhYmVsIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICAgRk9PVEVSIFdJVEggU0hBUkUKICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgCiAgICAgICAgLmZvb3RlcnNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgcGFkZGluZzogNjBweCA0MHB4IDMwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXJsb2dvIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXJ0YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyZGl2aWRlciB7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIG1hcmdpbjogMjVweCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyY29weXJpZ2h0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXJjb3B5cmlnaHQgc3Ryb25nIHsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC42KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogU2hhcmUgQ1RBIFNlY3Rpb24gKi8KICAgICAgICAuc2hhcmVjdGFzZWN0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyOCwgMzEsIDc0LCAwLjQpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHggMzBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA0NTBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMzBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNoYXJlY3RhaGVhZGxpbmUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNoYXJlY3Rhc3VidGV4dCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVidG5ncm91cCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNoYXJlYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVidG4ud2hhdHNhcHAgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM3LCAyMTEsIDEwMiwgMC4xNSk7CiAgICAgICAgICAgIGNvbG9yOiAjMjVEMzY2OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCAyMTEsIDEwMiwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNoYXJlYnRuLndoYXRzYXBwOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzI1RDM2NjsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVidG4ubGlua2VkaW4gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxMDIsIDE5NCwgMC4xNSk7CiAgICAgICAgICAgIGNvbG9yOiAjMEE2NkMyOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEwLCAxMDIsIDE5NCwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNoYXJlYnRuLmxpbmtlZGluOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzBBNjZDMjsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVidG4uY29weSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVidG4uY29weTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaGFyZW5vdGUgewogICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvb3RlcmhvbWV3b3JrIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjUpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBSZXNwb25zaXZlICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkgewogICAgICAgICAgICAubWV0aG9kZ3JpZCB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLnRpbWVsaW5lOjpiZWZvcmUgewogICAgICAgICAgICAgICAgbGVmdDogMjBweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLnRpbWVsaW5laXRlbTpudGgtY2hpbGQob2RkKSwKICAgICAgICAgICAgLnRpbWVsaW5laXRlbTpudGgtY2hpbGQoZXZlbikgewogICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgNjBweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLnRpbWVsaW5lZG90IHsKICAgICAgICAgICAgICAgIGxlZnQ6IDIwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5mdW5uZWxsZXZlbGxhYmVsIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAubmF2Y2VudGVyIHsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAgIHNlY3Rpb24gewogICAgICAgICAgICAgICAgcGFkZGluZzogNjBweCAyMHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuaGVybyB7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMDBweCAyMHB4IDYwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5vZmZlcnNncmlkIHsKICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuZnVubmVsc3BsaXQgewogICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC50YXJnZXRzc3VtbWFyeSB7CiAgICAgICAgICAgICAgICBnYXA6IDMwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5wYWdlbmF2IHsKICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5wYWdlbmF2Y2FyZCB7CiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI2MHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuc2hhcmVidG5ncm91cCB7CiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuc2hhcmVidG4gewogICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5zb3ZlcmVpZ25uYXYgewogICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFNjcm9sbCBBbmltYXRpb25zICovCiAgICAgICAgLnJldmVhbCB7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJldmVhbC5hY3RpdmUgewogICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBjbGFzcz0icHJvdGVjdGVkIj4KICAgIDwhLS0gSVAgUHJvdGVjdGlvbjogV2F0ZXJtYXJrIE92ZXJsYXkgLS0+CiAgICA8ZGl2IGNsYXNzPSJ3YXRlcm1hcmsiPjwvZGl2PgogICAgCiAgICA8IS0tIEJhY2tncm91bmQgRWxlbWVudHMgLS0+CiAgICA8ZGl2IGNsYXNzPSJnZW9wYXR0ZXJuIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9yYiBvcmIxIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9yYiBvcmIyIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9yYiBvcmIzIj48L2Rpdj4KICAgIAogICAgPCEtLSBUb3AgTmF2aWdhdGlvbiAtLT4KICAgIDxuYXYgY2xhc3M9InNvdmVyZWlnbm5hdiI+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vdWJ1bnR1aHViIiBjbGFzcz0ibmF2bG9nbyI+VEhFIFNPVkVSRUlHTiBBUkNISVRFQ1TihKI8L2E+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2Y2VudGVyIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vd2VlazEiIGNsYXNzPSJuYXZidG4iPgogICAgICAgICAgICAgICAgPHNwYW4+4oaQPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+V2VlayAxPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIAogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS91YnVudHVodWIiIGNsYXNzPSJuYXZidG4gaG9tZWJ0biI+CiAgICAgICAgICAgICAgICA8c3Bhbj7il4g8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj5IdWI8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL3dlZWszIiBjbGFzcz0ibmF2YnRuIj4KICAgICAgICAgICAgICAgIDxzcGFuPldlZWsgMzwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPuKGkjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2cHJvZ3Jlc3MiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgY29tcGxldGVkIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzZG90IGN1cnJlbnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgdXBjb21pbmciPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgdXBjb21pbmciPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgdXBjb21pbmciPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgdXBjb21pbmciPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgdXBjb21pbmciPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgdXBjb21pbmciPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJuYXZiYWRnZSI+V2VlayAyIG9mIDg8L2Rpdj4KICAgIDwvbmF2PgogICAgCiAgICA8IS0tIEhlcm8gU2VjdGlvbiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJoZXJvIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZXJvYmFkZ2UiPkR5bmFtaWMgUGFyYWRpZ21zICYgTWVudG9yc2hpcCBTdWNjZXNzIEFjYWRlbWllcyBQcmVzZW50czwvZGl2PgogICAgICAgIDxoMSBjbGFzcz0iaGVyb3RpdGxlIj4KICAgICAgICAgICAgPHNwYW4+VGhlIDE0LURheSBaZXJvLUJ1ZGdldDwvc3Bhbj4KICAgICAgICAgICAgQ2xpZW50IEFjcXVpc2l0aW9uIFBsYW4KICAgICAgICA8L2gxPgogICAgICAgIDxwIGNsYXNzPSJoZXJvc3VidGl0bGUiPlNvdmVyZWlnbiwgZXRoaWNhbCwgbm9uLXNwYW1teSwgZmVtaW5pbmUsIHN0cmF0ZWdpYyDigJQgYW5kIGNvaG9ydC1hcHByb3ZlZDwvcD4KICAgICAgICA8cCBjbGFzcz0iaGVyb2Rlc2NyaXB0aW9uIj5BIHNvcGhpc3RpY2F0ZWQgZHVhbC1vZmZlciBzcGxpdC10ZXN0IHN5c3RlbSBkZXNpZ25lZCB0byBhdHRyYWN0IDE0KyBwYXlpbmcgY2xpZW50cyBpbiAxNCBkYXlzIHdpdGhvdXQgc3BlbmRpbmcgbW9uZXksIGJ1aWx0IG9uIGlkZW50aXR5LWxlZCBicmFuZGluZyBhbmQgZGlnaXRhbCBzb3ZlcmVpZ250eS48L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVyb2N0YWdyb3VwIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vYnJhbmRhc3Nlc3NtZW50IiBjbGFzcz0iYnRucHJpbWFyeSI+VGFrZSB0aGUgQXNzZXNzbWVudDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iI29mZmVycyIgY2xhc3M9ImJ0bnNlY29uZGFyeSI+RXhwbG9yZSB0aGUgU3RyYXRlZ3k8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsaW5kaWNhdG9yIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNjcm9sbHRleHQiPkRpc2NvdmVyIE1vcmU8L3NwYW4+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGxpbmUiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8IS0tIFN0cmF0ZWd5IE92ZXJ2aWV3IC0tPgogICAgPHNlY3Rpb24gY2xhc3M9InN0cmF0ZWd5b3ZlcnZpZXciPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb25oZWFkZXIgcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzZWN0aW9ubGFiZWwiPlN0cmF0ZWdpYyBGcmFtZXdvcms8L3A+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb250aXRsZSI+VGhlIFNvdmVyZWlnbiBBY3F1aXNpdGlvbiBBcmNoaXRlY3R1cmU8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InNlY3Rpb25zdWJ0aXRsZSI+QnVpbHQgb24gSXNhYWMncyAzIGZyZWUgY2hhbm5lbHMsIGluZnVzZWQgd2l0aCBteSAzNjDCsCBMZWdhY3kgRWNvc3lzdGVtPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmF0ZWd5Z3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdHJhdGVneWNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdHJhdGVneWljb24iPuKcpjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMz5Ud28tT2ZmZXIgU3BsaXQgVGVzdDwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+U3RyYXRlZ2ljIHNlZ21lbnRhdGlvbiB3aXRoIHRoZSBTb3ZlcmVpZ24gRGlnaXRhbCBQcmVzZW5jZSBTY29yZWNhcmQgYW5kIFJlc2V0IDIwMjXihpIyMDI2IFdvcmtzaG9wIOKAlCBlYWNoIGxlYWRpbmcgdG8gZGlzdGluY3QgcGFpZCBwYXRod2F5cy48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmF0ZWd5Y2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmF0ZWd5aWNvbiI+4peHPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzPkR1YWwgQXVkaWVuY2UgUGF0aHdheXM8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwPkVuZ2luZSBBIGNhcHR1cmVzIGFnZW5jeS1yZWFkeSBjbGllbnRzIGZvciBDTU8gc2VydmljZXMuIEVuZ2luZSBCIGF0dHJhY3RzIG1lbnRvcnNoaXAtcmVhZHkgd29tZW4gZm9yIHRoZSAzNjDCsCBMZWdhY3kgcHJvZ3JhbS48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmF0ZWd5Y2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmF0ZWd5aWNvbiI+4peLPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzPlplcm8tQnVkZ2V0IENoYW5uZWxzPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD5XaGF0c0FwcCBTdGF0dXMgKHByaW1hcnkpLCBGYWNlYm9vayBNYXJrZXRwbGFjZSwgYW5kIG15IHBvd2VyZnVsIHJlZmVycmFsIGVjb3N5c3RlbSDigJQgYWxsIGxldmVyYWdpbmcgZXhpc3RpbmcgcmVsYXRpb25zaGlwcy48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmF0ZWd5Y2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0cmF0ZWd5aWNvbiI+4pazPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzPlNvdmVyZWlnbiBDb252ZXJzaW9uPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD5JZGVudGl0eS1sZWQsIG5vbi1wdXNoeSBpbnZpdGF0aW9uIHN5c3RlbS4gIkkgYW0gbm90IHNlbGxpbmcg4oCUIEkgYW0gZXh0ZW5kaW5nIHN1cHBvcnQuIiBHcmFjZSBtZWV0cyBzdHJhdGVneS48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gU3BsaXQgVGVzdCBPZmZlcnMgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0ib2ZmZXJzc2VjdGlvbiIgaWQ9Im9mZmVycyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbmhlYWRlciByZXZlYWwiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InNlY3Rpb25sYWJlbCI+U3BsaXQtVGVzdCBGcmVlIE9mZmVyczwvcD4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbnRpdGxlIj5Ud28gRW50cnkgUG9pbnRzLCBUd28gVHJhbnNmb3JtYXRpb24gUGF0aHM8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InNlY3Rpb25zdWJ0aXRsZSI+U3RyYXRlZ2ljIHNlZ21lbnRhdGlvbiBmb3IgbWF4aW11bSBjb252ZXJzaW9uPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9mZmVyc2dyaWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2ZmZXJjYXJkIHJldmVhbCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im9mZmVyYmFkZ2UiPkZyZWUgT2ZmZXIgQSDigJQgQWdlbmN5IFBhdGg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGgzPlNvdmVyZWlnbiBEaWdpdGFsIFByZXNlbmNlIFNjb3JlY2FyZDwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im9mZmVyZGVzY3JpcHRpb24iPkEgNS1taW51dGUgZGlnaXRhbCBhdWRpdCByZXZlYWxpbmcgdmlzaWJpbGl0eSwgaWRlbnRpdHksIGFuZCBvbmxpbmUgYWxpZ25tZW50IGZvciB3b21lbiByZWFkeSB0byBlbGV2YXRlLjwvcD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im9mZmVyZmVhdHVyZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+TXkgU292ZXJlaWduIERpZ2l0YWwgU2NvcmUgcmV2ZWFsZWQ8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+T25saW5lIHZpc2liaWxpdHkgc3RyZW5ndGhzIGlkZW50aWZpZWQ8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+QnJhbmQgaWRlbnRpdHkgaGVhbHRoIHNuYXBzaG90PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbnRlbnQgJiBtZXNzYWdpbmcgaW1wYWN0IGFuYWx5c2lzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkN1c3RvbSAzMC1kYXkgdmlzaWJpbGl0eSByb2FkbWFwPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkJvbnVzIFBERjogIjEwIERpZ2l0YWwgTWlzdGFrZXMgV29tZW4gTWFrZSI8L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib2ZmZXJsZWFkc3RvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGg0PkxlYWRzIEludG8gUGFpZCBPZmZlcjwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkNNTy9mQ01PIHBhY2thZ2VzIOKAoiBCcmFuZCBkZXZlbG9wbWVudCDigKIgV2Vic2l0ZSArIERpZ2l0YWwgTGFuZCDigKIgUmVwdXRhdGlvbiBtYXJrZXRpbmcg4oCiIEZ1bm5lbCBhcmNoaXRlY3R1cmU8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vYnJhbmRhc3Nlc3NtZW50IiBjbGFzcz0iYnRucHJpbWFyeSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXRvcDogMjVweDsiPlJldmVhbCBNeSBEaWdpdGFsIFNjb3JlIOKGkjwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvZmZlcmNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib2ZmZXJiYWRnZSI+RnJlZSBPZmZlciBCIOKAlCBNZW50b3JzaGlwIFBhdGg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGgzPlJlc2V0IDIwMjUg4oaSIFJlc3RhcnQgMjAyNiBXb3Jrc2hvcDwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im9mZmVyZGVzY3JpcHRpb24iPkEgcG93ZXJmdWwgZW5kLW9mLXllYXIgdHJhbnNpdGlvbiB3b3Jrc2hvcCBmb3Igd29tZW4gd2hvIHdhbnQgdG8gcmVzZXQgdGhlaXIgaWRlbnRpdHkgYW5kIHJlc3RhcnQgd2l0aCBzb3ZlcmVpZ24gbW9tZW50dW0uPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ib2ZmZXJmZWF0dXJlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5FbW90aW9uYWwgcmVsZWFzZSAmIGlkZW50aXR5IHJlbmV3YWw8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+MjAyNiBkaXJlY3Rpb24gbWFwcGluZyBzZXNzaW9uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkd1aWRlZCAzNjDCsCBMZWdhY3kgRWNvc3lzdGVtIHByb2Nlc3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+UG93ZXJmdWwgUTQvUTEgcmVzZXQgcml0dWFsPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkZyZWUgMjAyNiBTb3ZlcmVpZ24gUmVzZXQgSm91cm5hbDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Pbi1kZW1hbmQgcmVwbGF5IGFjY2VzczwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvZmZlcmxlYWRzdG8iPgogICAgICAgICAgICAgICAgICAgICAgICA8aDQ+TGVhZHMgSW50byBQYWlkIE9mZmVyPC9oND4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+MzYwwrAgTGVnYWN5IE1lbnRvcnNoaXAg4oCiIFNvdmVyZWlnbiBJZGVudGl0eSBBY2NlbGVyYXRvciDigKIgQ291cnNlcyDigKIgTWVtYmVyc2hpcCBwcm9ncmFtczwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3RoZXNvdmVyZWlnbmFyY2hpdGVjdHMuY29tLzIwMjYiIGNsYXNzPSJidG5wcmltYXJ5IiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tdG9wOiAyNXB4OyI+UmVzZXJ2ZSBNeSBSZXNldCBTZWF0IOKGkjwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIAogICAgPCEtLSBGdW5uZWwgRGlhZ3JhbSAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJmdW5uZWxzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uaGVhZGVyIHJldmVhbCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbmxhYmVsIj5GdW5uZWwgQXJjaGl0ZWN0dXJlPC9wPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9udGl0bGUiPlRoZSBTb3ZlcmVpZ24gU3BsaXQtVGVzdCBGdW5uZWwgTWFwPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzZWN0aW9uc3VidGl0bGUiPkZyb20gZW50cnkgdG8gYXNjZW5zaW9uIOKAlCBldmVyeSBwYXRoIGxlYWRzIHRvIHRyYW5zZm9ybWF0aW9uPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbHZpc3VhbGl6YXRpb24gcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbGxldmVsIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZnVubmVsbGV2ZWxsYWJlbCI+VG9wIG9mIEZ1bm5lbDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmdW5uZWxzcGxpdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbGJveCB0b3BmdW5uZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlNjb3JlY2FyZCAoTGVhZCBNYWduZXQgQSk8L2g0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+RGlnaXRhbCBBdWRpdCDihpIgQWdlbmN5IExlYWRzPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVubmVsYm94IHRvcGZ1bm5lbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmVzZXQgV29ya3Nob3AgKExlYWQgTWFnbmV0IEIpPC9oND4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPklkZW50aXR5IFJlc2V0IOKGkiBNZW50b3JzaGlwIExlYWRzPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmdW5uZWxhcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbGxldmVsIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZnVubmVsbGV2ZWxsYWJlbCI+TWlkZGxlIG9mIEZ1bm5lbDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmdW5uZWxzcGxpdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbGJveCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+VmlzaWJpbGl0eSBQYXRod2F5czwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Bc3Nlc3NtZW50IOKGkiBJbnNpZ2h0IOKGkiBTdHJhdGVneSBDYWxsPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVubmVsYm94Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5JZGVudGl0eSBSZW5ld2FsIFBhdGh3YXk8L2g0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+UmVzZXQg4oaSIFJlLWFsaWduIOKGkiBSZXN0YXJ0IE1hcHBpbmc8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbGFycm93Ij48L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVubmVsbGV2ZWwiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmdW5uZWxsZXZlbGxhYmVsIj5Cb3R0b20gb2YgRnVubmVsPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbHNwbGl0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVubmVsYm94Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5EaWdpdGFsIExhbmQgU292ZXJlaWdudHk8L2g0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+Q01PIOKAoiBXZWJzaXRlcyDigKIgRnVubmVscyDigKIgQXV0b21hdGlvbjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbGJveCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+MzYwwrAgTGVnYWN5IE1lbnRvcnNoaXA8L2g0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SWRlbnRpdHkg4oCiIFN0cnVjdHVyZSDigKIgTW9tZW50dW08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ1bm5lbGFycm93Ij48L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVubmVsbGV2ZWwiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmdW5uZWxsZXZlbGxhYmVsIj5Bc2NlbnNpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnVubmVsYm94IiBzdHlsZT0ibWF4LXdpZHRoOiA2MDBweDsgbWFyZ2luOiAwIGF1dG87Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldGVudGlvbiDigKIgTWVtYmVyc2hpcCDigKIgQ29tbXVuaXR5IOKAoiAyMDI2IFByb2dyYW1zPC9oND4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+RW5yaWNobWVudCBTdHJhdGVneSDihpIgQWxsaWFuY2UgTmV0d29yayDihpIgU292ZXJlaWduIExlZ2FjeTwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIAogICAgPCEtLSAxNC1EYXkgVGltZWxpbmUgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0idGltZWxpbmVzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uaGVhZGVyIHJldmVhbCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbmxhYmVsIj5FeGVjdXRpb24gVGltZWxpbmU8L3A+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb250aXRsZSI+VGhlIDE0LURheSBTb3ZlcmVpZ24gTGF1bmNoPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzZWN0aW9uc3VidGl0bGUiPlN0cmF0ZWdpYyBkYWlseSBhY3Rpb25zIGZvciBtYXhpbXVtIGltcGFjdDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWl0ZW0gcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWRvdCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVjb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVkYXkiPkRheXMgMeKAkzI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJ0aW1lbGluZXRhc2tzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5MYXVuY2ggYm90aCBmcmVlIG9mZmVycyBzaW11bHRhbmVvdXNseTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+UG9zdCBvbiBXaGF0c0FwcCBTdGF0dXMgKDLDlyBkYWlseSk8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlB1Ymxpc2ggRmFjZWJvb2sgTWFya2V0cGxhY2UgbGlzdGluZzwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2VuZCByZWZlcnJhbCBtZXNzYWdlcyB0byAxMCB3YXJtIGNvbnRhY3RzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWl0ZW0gcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWRvdCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVjb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVkYXkiPkRheXMgM+KAkzU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJ0aW1lbGluZXRhc2tzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5CZWdpbiBTY29yZWNhcmQgYXVkaXRzICgxNSBtaW4gZWFjaCk8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlNlbmQgUmVzZXQgV29ya3Nob3Agam91cm5hbHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZCBhbGwgbGVhZHMgdG8gV2hhdHNBcHAgYnJvYWRjYXN0PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5TeXN0ZW1hdGljIGZvbGxvdy11cCBzZXF1ZW5jZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVpdGVtIHJldmVhbCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVkb3QiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWVsaW5lY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWVsaW5lZGF5Ij5EYXlzIDbigJM3PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idGltZWxpbmV0YXNrcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+TWlkd2VlayB2aXNpYmlsaXR5IHB1c2g8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlNoYXJlIDLigJMzIGVhcmx5IHJlc3VsdHMvdGVzdGltb25pYWxzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5MaXZlIDUtbWluIFdoYXRzQXBwIHVwZGF0ZXM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbnRpbnVlIHBlcnNvbmFsIG91dHJlYWNoPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWl0ZW0gcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWRvdCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVjb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmVkYXkiPkRheXMgOOKAkzEwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idGltZWxpbmV0YXNrcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+UmVzZXQgV29ya3Nob3AgcmVtaW5kZXIgcG9zdHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlNjb3JlY2FyZCAibGFzdCBjYWxsIiBtZXNzYWdpbmc8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkludml0ZSAxMOKAkzE1IHdvbWVuIGRhaWx5IHBlcnNvbmFsbHk8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbnRlbnQgcm90YXRpb24gaW50ZW5zaWZpZXM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWVsaW5laXRlbSByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWVsaW5lZG90Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZWRheSI+RGF5cyAxMeKAkzE0PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idGltZWxpbmV0YXNrcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RGVsaXZlciBsaXZlIFJlc2V0IFdvcmtzaG9wPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db21wbGV0ZSByZW1haW5pbmcgYXVkaXRzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5NYWtlIHNvdmVyZWlnbiBwYWlkIG9mZmVyIGludml0YXRpb25zPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db2xsZWN0IDUrIHRlc3RpbW9uaWFsczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gU2lnbmF0dXJlIE1ldGhvZCAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJtZXRob2RzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uaGVhZGVyIHJldmVhbCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbmxhYmVsIj5JbnRlbGxlY3R1YWwgUHJvcGVydHk8L3A+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb250aXRsZSI+VGhlIFNvdmVyZWlnbiBBcmNoaXRlY3QgTWV0aG9k4oSiPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzZWN0aW9uc3VidGl0bGUiPkEgMy1MZXZlbCwgOS1QaWxsYXIgZnJhbWV3b3JrIGZvciBpZGVudGl0eS1sZWQgZGlnaXRhbCB0cmFuc2Zvcm1hdGlvbjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRob2RncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldGhvZGxldmVsIHJldmVhbCIgZGF0YS1sZXZlbD0iTEVWRUwgMSI+CiAgICAgICAgICAgICAgICAgICAgPGg0PklkZW50aXR5IEFyY2hpdGVjdHVyZeKEojwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtZXRob2RwaWxsYXJzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPklkZW50aXR5IEFjdGl2YXRpb248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+SW5uZXIgU3RydWN0dXJlPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlNvdmVyZWlnbiBWb2ljZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRob2RsZXZlbCByZXZlYWwiIGRhdGEtbGV2ZWw9IkxFVkVMIDIiPgogICAgICAgICAgICAgICAgICAgIDxoND5EaWdpdGFsIExhbmQgQXJjaGl0ZWN0dXJl4oSiPC9oND4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im1ldGhvZHBpbGxhcnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+QnJhbmQgQXJjaGl0ZWN0dXJlPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlBsYXRmb3JtIFNvdmVyZWlnbnR5PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlN5c3RlbXMgJiBBdXRvbWF0aW9uPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldGhvZGxldmVsIHJldmVhbCIgZGF0YS1sZXZlbD0iTEVWRUwgMyI+CiAgICAgICAgICAgICAgICAgICAgPGg0PlZpc2liaWxpdHkgJiBMZWdhY3nihKI8L2g0PgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibWV0aG9kcGlsbGFycyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5WaXNpYmlsaXR5IEVuZ2luZWVyaW5nPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbW11bml0eSAmIEluZmx1ZW5jZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5MZWdhY3kgSW50ZWdyYXRpb248L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gQ2hhbm5lbHMgLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0iY2hhbm5lbHNzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uaGVhZGVyIHJldmVhbCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbmxhYmVsIj5GcmVlIEFjcXVpc2l0aW9uIENoYW5uZWxzPC9wPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9udGl0bGUiPk15IFNvdmVyZWlnbiBWaXNpYmlsaXR5IFBhdGh3YXlzPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzZWN0aW9uc3VidGl0bGUiPlplcm8tYnVkZ2V0IGNoYW5uZWxzIHRoYXQgbGV2ZXJhZ2UgZXhpc3RpbmcgcmVsYXRpb25zaGlwczwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFubmVsc2dyaWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhbm5lbGNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFubmVsaWNvbiI+8J+TsTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoND5XaGF0c0FwcCBTdGF0dXM8L2g0PgogICAgICAgICAgICAgICAgICAgIDxwPlByaW1hcnkgY2hhbm5lbC4gMsOXIGRhaWx5IHBvc3RzIGFsdGVybmF0aW5nIGJldHdlZW4gT2ZmZXIgQSAmIEIgd2l0aCBpZGVudGl0eS1kcml2ZW4gbWVzc2FnaW5nLjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhbm5lbGNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFubmVsaWNvbiI+8J+bkjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoND5GYWNlYm9vayBNYXJrZXRwbGFjZTwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHA+RnJlZSBzZXJ2aWNlIGxpc3RpbmcgZm9yIHRoZSBTY29yZWNhcmQuIEhpZ2hseSBhY3RpdmUgaW4gS2VueWEgJiBVZ2FuZGEgbWFya2V0cy48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYW5uZWxjYXJkIHJldmVhbCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhbm5lbGljb24iPvCfkqw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDQ+V29yZCBvZiBNb3V0aDwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHA+TXkgc3VwZXJwb3dlci4gMTAgd2FybSBvdXRyZWFjaGVzIGRhaWx5IHRvIHBhc3QgY2xpZW50cywgY29sbGVhZ3VlcywgYW5kIG5ldHdvcmsuPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFubmVsY2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYW5uZWxpY29uIj7wn5GlPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGg0PkJyb2FkY2FzdCBMaXN0czwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHA+U2VnbWVudGVkIGxpc3RzIOKAlCBBIGZvciBTY29yZWNhcmQgbGVhZHMsIEIgZm9yIFdvcmtzaG9wIHJlZ2lzdHJhbnRzLjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhbm5lbGNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFubmVsaWNvbiI+8J+MkDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoND5GYWNlYm9vayBHcm91cHM8L2g0PgogICAgICAgICAgICAgICAgICAgIDxwPldvbWVuIGVtcG93ZXJtZW50IGFuZCBidXNpbmVzcyBncm91cHMgZm9yIHRoZSBSZXNldCBXb3Jrc2hvcCBwcm9tb3Rpb24uPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFubmVsY2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYW5uZWxpY29uIj7wn6SdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGg0PlN0cmF0ZWdpYyBQYXJ0bmVyc2hpcHM8L2g0PgogICAgICAgICAgICAgICAgICAgIDxwPkNvbGxhYm9yYXRpdmUgdmlzaWJpbGl0eSB0aHJvdWdoIGFsaWduZWQgbmV0d29ya3MgYW5kIGNvbW11bml0eSBsZWFkZXJzLjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIAogICAgPCEtLSBDVEEgU2VjdGlvbiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJjdGFzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjdGFjb250ZW50IHJldmVhbCI+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImN0YXRpdGxlIj5UaGlzIElzIE5vdCBKdXN0IEhvbWV3b3JrPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjdGFzdWJ0aXRsZSI+VGhpcyBpcyBhIHNvdmVyZWlnbiBjbGllbnQgYWNxdWlzaXRpb24gZW5naW5lIGJ1aWx0IG9uIGlkZW50aXR5LCBzdHJ1Y3R1cmUsIGFuZCBmZW1pbmluZSBzdHJhdGVneTwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3RhYnV0dG9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vYnJhbmRhc3Nlc3NtZW50IiBjbGFzcz0iYnRucHJpbWFyeSI+VGFrZSB0aGUgQXNzZXNzbWVudDwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3RoZXNvdmVyZWlnbmFyY2hpdGVjdHMuY29tLzIwMjYiIGNsYXNzPSJidG5zZWNvbmRhcnkiPkpvaW4gdGhlIFJlc2V0IFdvcmtzaG9wPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFyZ2V0c3N1bW1hcnkgcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhcmdldGl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXRudW1iZXIiPjUw4oCTMTAwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXRsYWJlbCI+TmV3IExlYWRzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YXJnZXRpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0bnVtYmVyIj4yMOKAkzMwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXRsYWJlbCI+RnJlZSBTZXNzaW9uczwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFyZ2V0aXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldG51bWJlciI+MTQrPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXRsYWJlbCI+UGFpZCBDbGllbnRzPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YXJnZXRpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0bnVtYmVyIj4kMDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0bGFiZWwiPlNwZW5kPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8IS0tIEJvdHRvbSBQYWdlIE5hdmlnYXRpb24gLS0+CiAgICA8bmF2IGNsYXNzPSJwYWdlbmF2Ij4KICAgICAgICA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrMSIgY2xhc3M9InBhZ2VuYXZjYXJkIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2VuYXZhcnJvdyI+4oaQPC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlbmF2aW5mbyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZW5hdmxhYmVsIj5QcmV2aW91czwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlbmF2dGl0bGUiPldlZWsgMTogRm91bmRhdGlvbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9hPgogICAgICAgIAogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL3VidW50dWh1YiIgY2xhc3M9InBhZ2VuYXZob21lIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2VuYXZhcnJvdyI+4peIPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZW5hdmxhYmVsIj5SZXR1cm4gdG8gSHViPC9zcGFuPgogICAgICAgIDwvYT4KICAgICAgICAKICAgICAgICA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrMyIgY2xhc3M9InBhZ2VuYXZjYXJkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZW5hdmluZm8iIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2VuYXZsYWJlbCI+TmV4dDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlbmF2dGl0bGUiPldlZWsgMzogVmlzaWJpbGl0eTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlbmF2YXJyb3ciPuKGkjwvc3Bhbj4KICAgICAgICA8L2E+CiAgICA8L25hdj4KICAgIAogICAgPCEtLSBGb290ZXIgd2l0aCBTaGFyZSAtLT4KICAgIDxmb290ZXIgY2xhc3M9ImZvb3RlcnNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlcmxvZ28iPlRIRSBTT1ZFUkVJR04gQVJDSElURUNU4oSiPC9kaXY+CiAgICAgICAgPHAgY2xhc3M9ImZvb3RlcnRhZ2xpbmUiPldoZXJlIElkZW50aXR5IE1lZXRzIERpZ2l0YWwgUG93ZXI8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyZGl2aWRlciI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgPHAgY2xhc3M9ImZvb3RlcmNvcHlyaWdodCI+CiAgICAgICAgICAgIMKpIDIwMjQgPHN0cm9uZz5EeW5hbWljIFBhcmFkaWdtcyAmIE1lbnRvcnNoaXAgU3VjY2VzcyBBY2FkZW1pZXPihKI8L3N0cm9uZz48YnI+CiAgICAgICAgICAgIFRoZSBTb3ZlcmVpZ24gQXJjaGl0ZWN0IEZyYW1ld29ya+KEoiBpcyBwcm9wcmlldGFyeSBpbnRlbGxlY3R1YWwgcHJvcGVydHkuPGJyPgogICAgICAgICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBVbmF1dGhvcml6ZWQgcmVwcm9kdWN0aW9uIHByb2hpYml0ZWQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDwhLS0gU2hhcmUgQ1RBIFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmVjdGFzZWN0aW9uIj4KICAgICAgICAgICAgPGgzIGNsYXNzPSJzaGFyZWN0YWhlYWRsaW5lIj5Lbm93IHNvbWVvbmUgd2hvIHdvdWxkIGJlbmVmaXQgZnJvbSB0aGlzPzwvaDM+CiAgICAgICAgICAgIDxwIGNsYXNzPSJzaGFyZWN0YXN1YnRleHQiPlNoYXJlIHRoaXMgcmVzb3VyY2Ugd2l0aCBhIGNvbGxlYWd1ZSBvciBmcmllbmQ8L3A+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFyZWJ0bmdyb3VwIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJzaGFyZWJ0biB3aGF0c2FwcCIgaWQ9InNoYXJlV2hhdHNBcHAiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPvCfkqw8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2hhcmUgdmlhIFdoYXRzQXBwPC9zcGFuPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InNoYXJlYnRuIGxpbmtlZGluIiBpZD0ic2hhcmVMaW5rZWRJbiI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+SvDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TaGFyZSBvbiBMaW5rZWRJbjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InNoYXJlYnRuIGNvcHkiIGlkPSJzaGFyZUNvcHkiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPvCfk4s8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Q29weSBMaW5rPC9zcGFuPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPHAgY2xhc3M9InNoYXJlbm90ZSI+U2hhcmluZyBjb25uZWN0cyB0aGVtIHRvIG91ciBleHBlcnQgcmVzb3VyY2VzPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxwIGNsYXNzPSJmb290ZXJob21ld29yayI+VWJ1bnR1IENvaG9ydCAoVEFTTikgV2VlayAyIEhvbWV3b3JrIEFzc2lnbm1lbnQ8L3A+CiAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMC43cmVtOyBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjQpOyBtYXJnaW4tdG9wOiAxMHB4OyI+CiAgICAgICAgICAgIFByZXBhcmVkIGJ5IE5pZ2h0aW5nYWxlIE11a2FzYSB8IER5bmFtaWMgUGFyYWRpZ21zICYgTWVudG9yc2hpcCBTdWNjZXNzIEFjYWRlbWllczxicj4KICAgICAgICAgICAgQ01PIOKAoiBCcmFuZCAmIE1lZGlhIFN0cmF0ZWdpc3Qg4oCiIERpZ2l0YWwgRWNvc3lzdGVtIEFyY2hpdGVjdAogICAgICAgIDwvcD4KICAgIDwvZm9vdGVyPgogICAgCiAgICA8c2NyaXB0PgogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAvLyBJUCBQUk9URUNUSU9OCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAgIAogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgICAgICAKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoZS5jdHJsS2V5ICYmIChlLmtleSA9PT0gJ2MnIHx8IGUua2V5ID09PSAnQycgfHwgZS5rZXkgPT09ICd2JyB8fCBlLmtleSA9PT0gJ1YnIHx8IGUua2V5ID09PSAncycgfHwgZS5rZXkgPT09ICdTJyB8fCBlLmtleSA9PT0gJ3AnIHx8IGUua2V5ID09PSAnUCcgfHwgZS5rZXkgPT09ICd1JyB8fCBlLmtleSA9PT0gJ1UnKSkgfHwKICAgICAgICAgICAgICAgIChlLmN0cmxLZXkgJiYgZS5zaGlmdEtleSAmJiAoZS5rZXkgPT09ICdpJyB8fCBlLmtleSA9PT0gJ0knIHx8IGUua2V5ID09PSAnaicgfHwgZS5rZXkgPT09ICdKJykpIHx8CiAgICAgICAgICAgICAgICBlLmtleSA9PT0gJ0YxMicKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnc3RhcnQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAvLyBTSEFSRSBCVVRUT04gQ09ORklHVVJBVElPTgogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAKICAgICAgICBjb25zdCBTSEFSRV9DT05GSUcgPSB7CiAgICAgICAgICAgIHNoYXJlVXJsOiAnaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vJywKICAgICAgICAgICAgd2hhdHNhcHBNZXNzYWdlOiAiSSBqdXN0IGRpc2NvdmVyZWQgdGhpcyBhbWF6aW5nIGJ1c2luZXNzIGZyYW1ld29yayBieSBOaWdodGluZ2FsZSBNdWthc2EgYXQgRHluYW1pYyBQYXJhZGlnbXMgQWNhZGVteS4gQ2hlY2sgaXQgb3V0OiAiLAogICAgICAgICAgICBjb3B5TWVzc2FnZTogIkNoZWNrIG91dCB0aGlzIHJlc291cmNlIGZyb20gRHluYW1pYyBQYXJhZGlnbXMgQWNhZGVteTogIgogICAgICAgIH07CiAgICAgICAgCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBXaGF0c0FwcCBTaGFyZQogICAgICAgICAgICBjb25zdCB3aGF0c2FwcEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaGFyZVdoYXRzQXBwJyk7CiAgICAgICAgICAgIGlmICh3aGF0c2FwcEJ0bikgewogICAgICAgICAgICAgICAgY29uc3Qgd2hhdHNhcHBVcmwgPSBgaHR0cHM6Ly93YS5tZS8/dGV4dD0ke2VuY29kZVVSSUNvbXBvbmVudChTSEFSRV9DT05GSUcud2hhdHNhcHBNZXNzYWdlICsgU0hBUkVfQ09ORklHLnNoYXJlVXJsKX1gOwogICAgICAgICAgICAgICAgd2hhdHNhcHBCdG4uaHJlZiA9IHdoYXRzYXBwVXJsOwogICAgICAgICAgICAgICAgd2hhdHNhcHBCdG4udGFyZ2V0ID0gJ19ibGFuayc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIExpbmtlZEluIFNoYXJlCiAgICAgICAgICAgIGNvbnN0IGxpbmtlZGluQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NoYXJlTGlua2VkSW4nKTsKICAgICAgICAgICAgaWYgKGxpbmtlZGluQnRuKSB7CiAgICAgICAgICAgICAgICBjb25zdCBsaW5rZWRpblVybCA9IGBodHRwczovL3d3dy5saW5rZWRpbi5jb20vc2hhcmluZy9zaGFyZS1vZmZzaXRlLz91cmw9JHtlbmNvZGVVUklDb21wb25lbnQoU0hBUkVfQ09ORklHLnNoYXJlVXJsKX1gOwogICAgICAgICAgICAgICAgbGlua2VkaW5CdG4uaHJlZiA9IGxpbmtlZGluVXJsOwogICAgICAgICAgICAgICAgbGlua2VkaW5CdG4udGFyZ2V0ID0gJ19ibGFuayc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENvcHkgTGluayBCdXR0b24gLSBjb3BpZXMgSlVTVCB0aGUgVVJMCiAgICAgICAgICAgIGNvbnN0IGNvcHlCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhcmVDb3B5Jyk7CiAgICAgICAgICAgIGlmIChjb3B5QnRuKSB7CiAgICAgICAgICAgICAgICBjb3B5QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoU0hBUkVfQ09ORklHLnNoYXJlVXJsKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbFRleHQgPSBjb3B5QnRuLmlubmVySFRNTDsKICAgICAgICAgICAgICAgICAgICAgICAgY29weUJ0bi5pbm5lckhUTUwgPSAnPHNwYW4+4pyTPC9zcGFuPjxzcGFuPkxpbmsgQ29waWVkITwvc3Bhbj4nOwogICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmJhY2tncm91bmQgPSAncmdiYSgzOCwgMTY2LCAxNTQsIDAuMiknOwogICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmNvbG9yID0gJyMyNkE2OUEnOwogICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmJvcmRlckNvbG9yID0gJyMyNkE2OUEnOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlCdG4uaW5uZXJIVE1MID0gb3JpZ2luYWxUZXh0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weUJ0bi5zdHlsZS5iYWNrZ3JvdW5kID0gJyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmNvbG9yID0gJyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmJvcmRlckNvbG9yID0gJyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwMDApOwogICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICBhbGVydCgnTGluazogJyArIFNIQVJFX0NPTkZJRy5zaGFyZVVybCk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAvLyBTQ1JPTEwgQU5JTUFUSU9OUwogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAKICAgICAgICBmdW5jdGlvbiByZXZlYWwoKSB7CiAgICAgICAgICAgIGNvbnN0IHJldmVhbHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucmV2ZWFsJyk7CiAgICAgICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDsKICAgICAgICAgICAgCiAgICAgICAgICAgIHJldmVhbHMuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb3AgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDsKICAgICAgICAgICAgICAgIGNvbnN0IHJldmVhbFBvaW50ID0gMTUwOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudFRvcCA8IHdpbmRvd0hlaWdodCAtIHJldmVhbFBvaW50KSB7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCByZXZlYWwpOwogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcmV2ZWFsKTsKICAgICAgICAKICAgICAgICAvLyBTbW9vdGggc2Nyb2xsIGZvciBhbmNob3IgbGlua3MKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZePSIjIl0nKS5mb3JFYWNoKGFuY2hvciA9PiB7CiAgICAgICAgICAgIGFuY2hvci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSk7CiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0KSB7CiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnNjcm9sbEludG9WaWV3KHsKICAgICAgICAgICAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLAogICAgICAgICAgICAgICAgICAgICAgICBibG9jazogJ3N0YXJ0JwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
14-Day Zero-Budget Client Acquisition Plan | Week 2 | Ubuntu Cohort | The Sovereign Architect™
THE SOVEREIGN ARCHITECT™
← Week 1 ◈ Hub Week 3 →
Week 2 of 8
Dynamic Paradigms & Mentorship Success Academies Presents

The 14-Day Zero-Budget Client Acquisition Plan

Sovereign, ethical, non-spammy, feminine, strategic — and cohort-approved

A sophisticated dual-offer split-test system designed to attract 14+ paying clients in 14 days without spending money, built on identity-led branding and digital sovereignty.

Take the Assessment Explore the Strategy
Discover More

Strategic Framework

The Sovereign Acquisition Architecture

Built on Isaac's 3 free channels, infused with my 360° Legacy Ecosystem

✦

Two-Offer Split Test

Strategic segmentation with the Sovereign Digital Presence Scorecard and Reset 2025→2026 Workshop — each leading to distinct paid pathways.

◇

Dual Audience Pathways

Engine A captures agency-ready clients for CMO services. Engine B attracts mentorship-ready women for the 360° Legacy program.

○

Zero-Budget Channels

WhatsApp Status (primary), Facebook Marketplace, and my powerful referral ecosystem — all leveraging existing relationships.

△

Sovereign Conversion

Identity-led, non-pushy invitation system. "I am not selling — I am extending support." Grace meets strategy.

Split-Test Free Offers

Two Entry Points, Two Transformation Paths

Strategic segmentation for maximum conversion

Free Offer A — Agency Path

Sovereign Digital Presence Scorecard

A 5-minute digital audit revealing visibility, identity, and online alignment for women ready to elevate.

  • My Sovereign Digital Score revealed
  • Online visibility strengths identified
  • Brand identity health snapshot
  • Content & messaging impact analysis
  • Custom 30-day visibility roadmap
  • Bonus PDF: "10 Digital Mistakes Women Make"

Leads Into Paid Offer

CMO/fCMO packages • Brand development • Website + Digital Land • Reputation marketing • Funnel architecture

Reveal My Digital Score →
Free Offer B — Mentorship Path

Reset 2025 → Restart 2026 Workshop

A powerful end-of-year transition workshop for women who want to reset their identity and restart with sovereign momentum.

  • Emotional release & identity renewal
  • 2026 direction mapping session
  • Guided 360° Legacy Ecosystem process
  • Powerful Q4/Q1 reset ritual
  • Free 2026 Sovereign Reset Journal
  • On-demand replay access

Leads Into Paid Offer

360° Legacy Mentorship • Sovereign Identity Accelerator • Courses • Membership programs

Reserve My Reset Seat →

Funnel Architecture

The Sovereign Split-Test Funnel Map

From entry to ascension — every path leads to transformation

Top of Funnel

Scorecard (Lead Magnet A)

Digital Audit → Agency Leads

Reset Workshop (Lead Magnet B)

Identity Reset → Mentorship Leads

Middle of Funnel

Visibility Pathways

Assessment → Insight → Strategy Call

Identity Renewal Pathway

Reset → Re-align → Restart Mapping

Bottom of Funnel

Digital Land Sovereignty

CMO • Websites • Funnels • Automation

360° Legacy Mentorship

Identity • Structure • Momentum

Ascension

Retention • Membership • Community • 2026 Programs

Enrichment Strategy → Alliance Network → Sovereign Legacy

Execution Timeline

The 14-Day Sovereign Launch

Strategic daily actions for maximum impact

Days 1–2
  • Launch both free offers simultaneously
  • Post on WhatsApp Status (2× daily)
  • Publish Facebook Marketplace listing
  • Send referral messages to 10 warm contacts
Days 3–5
  • Begin Scorecard audits (15 min each)
  • Send Reset Workshop journals
  • Add all leads to WhatsApp broadcast
  • Systematic follow-up sequence
Days 6–7
  • Midweek visibility push
  • Share 2–3 early results/testimonials
  • Live 5-min WhatsApp updates
  • Continue personal outreach
Days 8–10
  • Reset Workshop reminder posts
  • Scorecard "last call" messaging
  • Invite 10–15 women daily personally
  • Content rotation intensifies
Days 11–14
  • Deliver live Reset Workshop
  • Complete remaining audits
  • Make sovereign paid offer invitations
  • Collect 5+ testimonials

Intellectual Property

The Sovereign Architect Method™

A 3-Level, 9-Pillar framework for identity-led digital transformation

Identity Architecture™

  • Identity Activation
  • Inner Structure
  • Sovereign Voice

Digital Land Architecture™

  • Brand Architecture
  • Platform Sovereignty
  • Systems & Automation

Visibility & Legacy™

  • Visibility Engineering
  • Community & Influence
  • Legacy Integration

Free Acquisition Channels

My Sovereign Visibility Pathways

Zero-budget channels that leverage existing relationships

📱

WhatsApp Status

Primary channel. 2× daily posts alternating between Offer A & B with identity-driven messaging.

🛒

Facebook Marketplace

Free service listing for the Scorecard. Highly active in Kenya & Uganda markets.

💬

Word of Mouth

My superpower. 10 warm outreaches daily to past clients, colleagues, and network.

👥

Broadcast Lists

Segmented lists — A for Scorecard leads, B for Workshop registrants.

🌐

Facebook Groups

Women empowerment and business groups for the Reset Workshop promotion.

🤝

Strategic Partnerships

Collaborative visibility through aligned networks and community leaders.

This Is Not Just Homework

This is a sovereign client acquisition engine built on identity, structure, and feminine strategy

Take the Assessment Join the Reset Workshop
50–100 New Leads
20–30 Free Sessions
14+ Paid Clients
$0 Spend
←
Previous Week 1: Foundation
◈ Return to Hub
Next Week 3: Visibility
→
THE SOVEREIGN ARCHITECT™

Where Identity Meets Digital Power

© 2024 Dynamic Paradigms & Mentorship Success Academies™
The Sovereign Architect Framework™ is proprietary intellectual property.
All rights reserved. Unauthorized reproduction prohibited.

Know someone who would benefit from this?

Share this resource with a colleague or friend

💬 Share via WhatsApp 💼 Share on LinkedIn

Sharing connects them to our expert resources

Ubuntu Cohort (TASN) Week 2 Homework Assignment

Prepared by Nightingale Mukasa | Dynamic Paradigms & Mentorship Success Academies
CMO • Brand & Media Strategist • Digital Ecosystem Architect

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

warning