{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUFJJTUFSWSBNRVRBIC0tPgogICAgPHRpdGxlPllvdXIgU3RyYXRlZ2ljIFByaW9yaXRpZXMgfCBTb3ZlcmVpZ24gQXJjaGl0ZWN0czwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJ0aXRsZSIgY29udGVudD0iV2hpY2ggQXJlYSBOZWVkcyBZb3VyIEZvY3VzPyB8IFNvdmVyZWlnbiBBcmNoaXRlY3RzIj4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJSZXB1dGF0aW9uLiBGdW5uZWxzLiBTb2NpYWwuIFRyYWZmaWMuIElkZW50aWZ5IHdoZXJlIHN0cmF0ZWdpYyBhbXBsaWZpY2F0aW9uIHdpbGwgc2VydmUgeW91IG1vc3QuIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJNYXJrZXRpbmcgc3RyYXRlZ3ksIGJ1c2luZXNzIHByaW9yaXRpZXMsIEFmcmljYW4gZW50cmVwcmVuZXVycyI+CiAgICA8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IlNvdmVyZWlnbiBBcmNoaXRlY3RzIE1lZGlhIj4KICAgIAogICAgPCEtLSBISURFIEZST00gU0VBUkNIICYgTkFWSUdBVElPTiAtLT4KICAgIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCwgbm9mb2xsb3ciPgogICAgPG1ldGEgbmFtZT0iZ29vZ2xlYm90IiBjb250ZW50PSJub2luZGV4LCBub2ZvbGxvdyI+CiAgICA8bWV0YSBuYW1lPSJuYXZpZ2F0aW9uIiBjb250ZW50PSJoaWRkZW4iPgogICAgPG1ldGEgbmFtZT0ibWVudS1leGNsdWRlIiBjb250ZW50PSJ0cnVlIj4KICAgIDxtZXRhIG5hbWU9ImZwLW5hdmlnYXRpb24iIGNvbnRlbnQ9ImV4Y2x1ZGUiPgogICAgPG1ldGEgbmFtZT0iZnAtbWVudSIgY29udGVudD0iaGlkZGVuIj4KICAgIAogICAgPCEtLSBOTyBDQUNIRSAtLT4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNhY2hlLUNvbnRyb2wiIGNvbnRlbnQ9Im5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIj4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlByYWdtYSIgY29udGVudD0ibm8tY2FjaGUiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iRXhwaXJlcyIgY29udGVudD0iMCI+CiAgICAKICAgIDwhLS0gUkVGRVJSRVIgUFJPVEVDVElPTiAtLT4KICAgIDxtZXRhIG5hbWU9InJlZmVycmVyIiBjb250ZW50PSJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSI+CiAgICAKICAgIDwhLS0gT1BFTiBHUkFQSCAvIFNPQ0lBTCBTSEFSSU5HIC0tPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vMjAyNnByaW9yaXRpZXMiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJJZGVudGlmeSBZb3VyIFN0cmF0ZWdpYyBQcmlvcml0aWVzIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iUmVwdXRhdGlvbi4gRnVubmVscy4gU29jaWFsLiBUcmFmZmljLiBXaGljaCBhcmVhIGRlc2VydmVzIHlvdXIgZm9jdXM/Ij4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vaW1hZ2VzL3NvdmVyZWlnbi1hcmNoaXRlY3RzLW9nLnBuZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6c2l0ZV9uYW1lIiBjb250ZW50PSJTb3ZlcmVpZ24gQXJjaGl0ZWN0cyI+CiAgICAKICAgIDwhLS0gRkFWSUNPTiAtLT4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSIvZmF2aWNvbi5pY28iPgogICAgCiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iPgogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Q2luemVsOndnaHRANDAwOzUwMDs2MDA7NzAwJmZhbWlseT1Db3Jtb3JhbnQrR2FyYW1vbmQ6aXRhbCx3Z2h0QDAsNDAwOzAsNTAwOzAsNjAwOzAsNzAwOzEsNDAwOzEsNTAwJmZhbWlseT1SYWxld2F5OndnaHRAMzAwOzQwMDs1MDA7NjAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1zb3ZlcmVpZ24tZ29sZDogI2YzYjcwMDsKICAgICAgICAgICAgLS1hcmNoaXRlY3QtZ29sZDogI2Q0YWYzNzsKICAgICAgICAgICAgLS1zb3ZlcmVpZ24tY2hhcmNvYWw6ICMyZDM0MzY7CiAgICAgICAgICAgIC0tZGVlcC1zbGF0ZTogIzFlMjcyZTsKICAgICAgICAgICAgLS13YXJtLWdyYXk6ICM2MzZlNzI7CiAgICAgICAgICAgIC0tc29mdC1ncmF5OiAjYjJiZWMzOwogICAgICAgICAgICAtLXBhbGUtZ29sZDogI2Y0ZTRiYzsKICAgICAgICAgICAgLS1zb2Z0LWl2b3J5OiAjZmFmOWY2OwogICAgICAgICAgICAtLXdhcm0tY3JlYW06ICNmNWYzZWY7CiAgICAgICAgICAgIC0tcGFyY2htZW50OiAjZWZlOWUxOwogICAgICAgICAgICAtLWRlZXAtbmF2eTogIzFlM2E1ZjsKICAgICAgICAgICAgLS1zdWNjZXNzLWdyZWVuOiAjMjdhZTYwOwogICAgICAgICAgICAKICAgICAgICAgICAgLyogUGlsbGFyIENvbG9ycyAqLwogICAgICAgICAgICAtLXJlcHV0YXRpb24tY29sb3I6ICM5YjU5YjY7CiAgICAgICAgICAgIC0tZnVubmVscy1jb2xvcjogIzM0OThkYjsKICAgICAgICAgICAgLS1zb2NpYWwtY29sb3I6ICNlNzRjM2M7CiAgICAgICAgICAgIC0tdHJhZmZpYy1jb2xvcjogIzI3YWU2MDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gU0NSRUVOU0hPVCBQUkVWRU5USU9OID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSBwcmludCB7CiAgICAgICAgICAgIGJvZHkgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KICAgICAgICAgICAgaHRtbCB7IGJhY2tncm91bmQ6ICMwMDAgIWltcG9ydGFudDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBodG1sIHsKICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zb2Z0LWl2b3J5KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5iYWNrZ3JvdW5kLXRleHR1cmUgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDA7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMDM7CiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nNjAnIGhlaWdodD0nNjAnIHZpZXdCb3g9JzAgMCA2MCA2MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ2cgZmlsbD0nbm9uZScgZmlsbC1ydWxlPSdldmVub2RkJyUzRSUzQ2cgZmlsbD0nJTIzZjNiNzAwJyBmaWxsLW9wYWNpdHk9JzEnJTNFJTNDcGF0aCBkPSdNMzYgMzR2LTRoLTJ2NGgtNHYyaDR2NGgydi00aDR2LTJoLTR6bTAtMzBWMGgtMnY0aC00djJoNHY0aDJWNmg0VjRoLTR6TTYgMzR2LTRINHY0SDB2Mmg0djRoMnYtNGg0di0ySDZ6TTYgNFYwSDR2NEgwdjJoNHY0aDJWNmg0VjRINnonLyUzRSUzQy9nJTNFJTNDL2clM0UlM0Mvc3ZnJTNFIik7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50b3AtYWNjZW50IHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gTUFJTiBDT05UQUlORVIgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAucHJpb3JpdGllcy1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogNTBweCA0MHB4IDgwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAucHJpb3JpdGllcy1jb250YWluZXIgewogICAgICAgICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4IDYwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gSEVBREVSID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLnByaW9yaXRpZXMtaGVhZGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpb3JpdGllcy1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA1MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaW9yaXRpZXMtYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCksIHZhcigtLWFyY2hpdGVjdC1nb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpb3JpdGllcy10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA0dncsIDJyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaW9yaXRpZXMtc3VidGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBJTlRSTyBDQVJEID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmludHJvLWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpLCB2YXIoLS1kZWVwLXNsYXRlKSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgcGFkZGluZzogMzVweCA0MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuaW50cm8tY2FyZCB7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDIwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmludHJvLXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW50cm8taGlnaGxpZ2h0IHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvcmU0LXZpc3VhbCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvcmU0LXBpbGwgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb3JlNC1waWxsLnJlcHV0YXRpb24geyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLXJlcHV0YXRpb24tY29sb3IpOyB9CiAgICAgICAgLmNvcmU0LXBpbGwuZnVubmVscyB7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tZnVubmVscy1jb2xvcik7IH0KICAgICAgICAuY29yZTQtcGlsbC5zb2NpYWwgeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLXNvY2lhbC1jb2xvcik7IH0KICAgICAgICAuY29yZTQtcGlsbC50cmFmZmljIHsgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS10cmFmZmljLWNvbG9yKTsgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFBJTExBUlMgR1JJRCA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5waWxsYXJzLWdyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgICBnYXA6IDI1cHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgICAgICAucGlsbGFycy1ncmlkIHsKICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5waWxsYXItY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZmZmYgMCUsIHZhcigtLXdhcm0tY3JlYW0pIDEwMCUpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zb2Z0LWdyYXkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGlsbGFyLWNhcmQ6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci1jYXJkLnJlcHV0YXRpb246OmJlZm9yZSB7IGJhY2tncm91bmQ6IHZhcigtLXJlcHV0YXRpb24tY29sb3IpOyB9CiAgICAgICAgLnBpbGxhci1jYXJkLmZ1bm5lbHM6OmJlZm9yZSB7IGJhY2tncm91bmQ6IHZhcigtLWZ1bm5lbHMtY29sb3IpOyB9CiAgICAgICAgLnBpbGxhci1jYXJkLnNvY2lhbDo6YmVmb3JlIHsgYmFja2dyb3VuZDogdmFyKC0tc29jaWFsLWNvbG9yKTsgfQogICAgICAgIC5waWxsYXItY2FyZC50cmFmZmljOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS10cmFmZmljLWNvbG9yKTsgfQogICAgICAgIAogICAgICAgIC5waWxsYXItY2FyZDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci1jYXJkOmhvdmVyOjpiZWZvcmUgewogICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGlsbGFyLWNhcmQuc2VsZWN0ZWQgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDM1cHggcmdiYSgyNDMsIDE4MywgMCwgMC4xNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5waWxsYXItY2FyZC5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGlsbGFyLWhlYWRlciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci1pY29uIHsKICAgICAgICAgICAgd2lkdGg6IDUwcHg7CiAgICAgICAgICAgIGhlaWdodDogNTBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci1jYXJkLnJlcHV0YXRpb24gLnBpbGxhci1pY29uIHsgYmFja2dyb3VuZDogcmdiYSgxNTUsIDg5LCAxODIsIDAuMTUpOyB9CiAgICAgICAgLnBpbGxhci1jYXJkLmZ1bm5lbHMgLnBpbGxhci1pY29uIHsgYmFja2dyb3VuZDogcmdiYSg1MiwgMTUyLCAyMTksIDAuMTUpOyB9CiAgICAgICAgLnBpbGxhci1jYXJkLnNvY2lhbCAucGlsbGFyLWljb24geyBiYWNrZ3JvdW5kOiByZ2JhKDIzMSwgNzYsIDYwLCAwLjE1KTsgfQogICAgICAgIC5waWxsYXItY2FyZC50cmFmZmljIC5waWxsYXItaWNvbiB7IGJhY2tncm91bmQ6IHJnYmEoMzksIDE3NCwgOTYsIDAuMTUpOyB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5waWxsYXItZGVzY3JpcHRpb24gewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5waWxsYXItaW5jbHVkZXMgewogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNDMsIDE4MywgMCwgMC4xNSk7CiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGlsbGFyLWluY2x1ZGVzLWxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdSYWxld2F5Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWdyYXkpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGlsbGFyLXRhZ3MgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGlsbGFyLXRhZyB7CiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXJjaG1lbnQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci1jaGVjayB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxNXB4OwogICAgICAgICAgICByaWdodDogMTVweDsKICAgICAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5waWxsYXItY2FyZC5zZWxlY3RlZCAucGlsbGFyLWNoZWNrIHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBpbGxhci1jaGVjayBzdmcgewogICAgICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gRk9MTE9XLVVQIFFVRVNUSU9OUyA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5mb2xsb3d1cC1zZWN0aW9uIHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC41cyBlYXNlLW91dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvbGxvd3VwLXNlY3Rpb24uYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9sbG93dXAtY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZmZmYgMCUsIHZhcigtLXdhcm0tY3JlYW0pIDEwMCUpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjIpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDM1cHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuZm9sbG93dXAtY2FyZCB7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDIwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvbGxvd3VwLWhlYWRlciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjE1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvbGxvd3VwLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb2xsb3d1cC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnF1ZXN0aW9uLWdyb3VwIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnF1ZXN0aW9uLWdyb3VwOmxhc3QtY2hpbGQgewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucXVlc3Rpb24tbGFiZWwgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnF1ZXN0aW9uLWhpbnQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRleHQtaW5wdXQgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMTRweCAxNnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zb2Z0LWdyYXkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50ZXh0LWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0MywgMTgzLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICB0ZXh0YXJlYS50ZXh0LWlucHV0IHsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwcHg7CiAgICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWxlY3QtaW5wdXQgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMTRweCAxNnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zb2Z0LWdyYXkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJyB2aWV3Qm94PScwIDAgMTIgMTInJTNFJTNDcGF0aCBmaWxsPSclMjM2MzZlNzInIGQ9J002IDhMMSAzaDEweicvJTNFJTNDL3N2ZyUzRSIpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxNnB4IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlbGVjdC1pbnB1dDpmb2N1cyB7CiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3B0aW9ucy1yb3cgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9wdGlvbi1idG4gewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vcHRpb24tYnRuIGlucHV0IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3B0aW9uLWxhYmVsIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNvZnQtZ3JheSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3B0aW9uLWxhYmVsOmhvdmVyIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vcHRpb24tYnRuIGlucHV0OmNoZWNrZWQgKyAub3B0aW9uLWxhYmVsIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFBSSU9SSVRZIFJBTktJTkcgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAucmFua2luZy1zZWN0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDE4MywgMCwgMC4wNSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDI0MywgMTgzLCAwLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7CiAgICAgICAgICAgIG1hcmdpbjogNDBweCAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmFua2luZy1oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yYW5raW5nLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yYW5raW5nLXN1YnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmFua2luZy1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHsKICAgICAgICAgICAgLnJhbmtpbmctZ3JpZCB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yYW5raW5nLWl0ZW0gewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yYW5raW5nLWxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdSYWxld2F5Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1ncmF5KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJhbmtpbmctc2VsZWN0IHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWNoYXJjb2FsKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yYW5raW5nLXNlbGVjdDpmb2N1cyB7CiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmFua2luZy1pdGVtLnJlcHV0YXRpb24gLnJhbmtpbmctc2VsZWN0IHsgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLXJlcHV0YXRpb24tY29sb3IpOyB9CiAgICAgICAgLnJhbmtpbmctaXRlbS5mdW5uZWxzIC5yYW5raW5nLXNlbGVjdCB7IGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1mdW5uZWxzLWNvbG9yKTsgfQogICAgICAgIC5yYW5raW5nLWl0ZW0uc29jaWFsIC5yYW5raW5nLXNlbGVjdCB7IGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1zb2NpYWwtY29sb3IpOyB9CiAgICAgICAgLnJhbmtpbmctaXRlbS50cmFmZmljIC5yYW5raW5nLXNlbGVjdCB7IGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS10cmFmZmljLWNvbG9yKTsgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IE5BVklHQVRJT04gQlVUVE9OUyA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5uYXYtYnV0dG9ucyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2LWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMzVweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdi1idG4uYmFjayB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdi1idG4uYmFjazpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdi1idG4uc3VibWl0IHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1jaGFyY29hbCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSwgdmFyKC0tYXJjaGl0ZWN0LWdvbGQpKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDI0MywgMTgzLCAwLCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2LWJ0bi5zdWJtaXQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDI1cHggcmdiYSgyNDMsIDE4MywgMCwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdi1idG4gc3ZnIHsKICAgICAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gRk9PVEVSID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLnBhZ2UtZm9vdGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI0MywgMTgzLCAwLCAwLjEpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyLXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXItYnJhbmQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tY2hhcmNvYWwpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJiYWNrZ3JvdW5kLXRleHR1cmUiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0idG9wLWFjY2VudCI+PC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InByaW9yaXRpZXMtY29udGFpbmVyIj4KICAgICAgICA8IS0tIEhlYWRlciAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmlvcml0aWVzLWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmlvcml0aWVzLWljb24iPvCfjq88L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmlvcml0aWVzLWJhZGdlIj5UaGUgQ29yZSA0IEZyYW1ld29yazwvc3Bhbj4KICAgICAgICAgICAgPGgxIGNsYXNzPSJwcmlvcml0aWVzLXRpdGxlIj5Zb3VyIFN0cmF0ZWdpYyBQcmlvcml0aWVzPC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9InByaW9yaXRpZXMtc3VidGl0bGUiPkV2ZXJ5IGJ1c2luZXNzIG5lZWRzIGFsbCBmb3VyIHBpbGxhcnMsIGJ1dCBvbmUgdXN1YWxseSBkZW1hbmRzIGltbWVkaWF0ZSBhdHRlbnRpb24uIExldCdzIGlkZW50aWZ5IHlvdXJzLjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEludHJvIENhcmQgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW50cm8tY2FyZCI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJpbnRyby10ZXh0Ij4KICAgICAgICAgICAgICAgIFRoZSA8c3BhbiBjbGFzcz0iaW50cm8taGlnaGxpZ2h0Ij5Db3JlIDQgTWFya2V0aW5nIEZyYW1ld29yazwvc3Bhbj4gaWRlbnRpZmllcyB0aGUgZXNzZW50aWFsIHBpbGxhcnMgZXZlcnkgYnVzaW5lc3MgbmVlZHMgdG8gdGhyaXZlLiBNb3N0IGVudHJlcHJlbmV1cnMgc3ByZWFkIHRoZW1zZWx2ZXMgdGhpbiBhY3Jvc3MgYWxsIGZvdXIuIFRoZSBzdHJhdGVnaWMgYXBwcm9hY2g/IDxzcGFuIGNsYXNzPSJpbnRyby1oaWdobGlnaHQiPk1hc3RlciBvbmUsIHRoZW4gZXhwYW5kLjwvc3Bhbj4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3JlNC12aXN1YWwiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcmU0LXBpbGwgcmVwdXRhdGlvbiI+8J+RkSBSZXB1dGF0aW9uPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcmU0LXBpbGwgZnVubmVscyI+4pqhIEZ1bm5lbHM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29yZTQtcGlsbCBzb2NpYWwiPvCfk7EgU29jaWFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcmU0LXBpbGwgdHJhZmZpYyI+8J+agCBUcmFmZmljPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8Zm9ybSBpZD0icHJpb3JpdGllc0Zvcm0iPgogICAgICAgICAgICA8IS0tIFBpbGxhcnMgU2VsZWN0aW9uIC0tPgogICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsgZm9udC1zaXplOiAxLjFyZW07IGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1ib3R0b206IDI1cHg7IGZvbnQtc3R5bGU6IGl0YWxpYzsiPlNlbGVjdCB0aGUgcGlsbGFyIHRoYXQgbmVlZHMgeW91ciBmb2N1cyBtb3N0IHJpZ2h0IG5vdzo8L3A+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXJzLWdyaWQiPgogICAgICAgICAgICAgICAgPCEtLSBSZXB1dGF0aW9uIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFyLWNhcmQgcmVwdXRhdGlvbiIgb25jbGljaz0ic2VsZWN0UGlsbGFyKHRoaXMsICdyZXB1dGF0aW9uJykiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1jaGVjayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIiBkPSJNNSAxM2w0IDRMMTkgNyIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1pY29uIj7wn5GRPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InBpbGxhci10aXRsZSI+UmVwdXRhdGlvbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGlsbGFyLXN1YnRpdGxlIj5BdXRob3JpdHkgJiBDcmVkaWJpbGl0eTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBpbGxhci1kZXNjcmlwdGlvbiI+IlBlb3BsZSBrbm93IG15IG5hbWUsIGJ1dCB0aGV5IGRvbid0IGtub3cgbXkgZXhwZXJ0aXNlLiBJIG5lZWQgdG8gYmUgc2VlbiBhcyBUSEUgYXV0aG9yaXR5IGluIG15IHNwYWNlLiI8L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFyLWluY2x1ZGVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBpbGxhci1pbmNsdWRlcy1sYWJlbCI+VGhpcyBpbmNsdWRlczo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci10YWdzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItdGFnIj5NZWRpYSBGZWF0dXJlczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItdGFnIj5QUiAmIFByZXNzPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpbGxhci10YWciPkV4cGVydCBQb3NpdGlvbmluZzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItdGFnIj5UaG91Z2h0IExlYWRlcnNoaXA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwhLS0gRnVubmVscyAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1jYXJkIGZ1bm5lbHMiIG9uY2xpY2s9InNlbGVjdFBpbGxhcih0aGlzLCAnZnVubmVscycpIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItY2hlY2siPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIgZD0iTTUgMTNsNCA0TDE5IDciIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItaWNvbiI+4pqhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InBpbGxhci10aXRsZSI+RnVubmVsczwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGlsbGFyLXN1YnRpdGxlIj5BdXRvbWF0aW9uICYgU3lzdGVtczwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBpbGxhci1kZXNjcmlwdGlvbiI+IkknbSBkb2luZyBldmVyeXRoaW5nIG1hbnVhbGx5LiBJIG5lZWQgc3lzdGVtcyB0aGF0IGNhcHR1cmUgbGVhZHMsIG51cnR1cmUgcHJvc3BlY3RzLCBhbmQgY29udmVydCB3aXRob3V0IG1lIGJlaW5nIHRoZXJlIDI0LzcuIjwvcD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItaW5jbHVkZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGlsbGFyLWluY2x1ZGVzLWxhYmVsIj5UaGlzIGluY2x1ZGVzOjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFyLXRhZ3MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpbGxhci10YWciPkxlYWQgQ2FwdHVyZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItdGFnIj5FbWFpbCBTZXF1ZW5jZXM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlsbGFyLXRhZyI+Q1JNIFN5c3RlbXM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlsbGFyLXRhZyI+QXV0b21hdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBTb2NpYWwgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItY2FyZCBzb2NpYWwiIG9uY2xpY2s9InNlbGVjdFBpbGxhcih0aGlzLCAnc29jaWFsJykiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1jaGVjayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIiBkPSJNNSAxM2w0IDRMMTkgNyIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1pY29uIj7wn5OxPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InBpbGxhci10aXRsZSI+U29jaWFsIE1lZGlhPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwaWxsYXItc3VidGl0bGUiPkNvbnRlbnQgJiBDb21tdW5pdHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwaWxsYXItZGVzY3JpcHRpb24iPiJNeSBzb2NpYWwgcHJlc2VuY2UgaXMgaW5jb25zaXN0ZW50IG9yIG5vbmV4aXN0ZW50LiBJIG5lZWQgYSBjb250ZW50IHN0cmF0ZWd5IHRoYXQgYnVpbGRzIGVuZ2FnZW1lbnQgYW5kIGNvbW11bml0eS4iPC9wPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1pbmNsdWRlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwaWxsYXItaW5jbHVkZXMtbGFiZWwiPlRoaXMgaW5jbHVkZXM6PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItdGFncyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlsbGFyLXRhZyI+Q29udGVudCBTdHJhdGVneTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItdGFnIj5QbGF0Zm9ybSBHcm93dGg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlsbGFyLXRhZyI+RW5nYWdlbWVudDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwaWxsYXItdGFnIj5Db21tdW5pdHk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwhLS0gVHJhZmZpYyAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1jYXJkIHRyYWZmaWMiIG9uY2xpY2s9InNlbGVjdFBpbGxhcih0aGlzLCAndHJhZmZpYycpIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItY2hlY2siPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIgZD0iTTUgMTNsNCA0TDE5IDciIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBpbGxhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItaWNvbiI+8J+agDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwaWxsYXItdGl0bGUiPlBhaWQgVHJhZmZpYzwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGlsbGFyLXN1YnRpdGxlIj5BZHMgJiBQcm9tb3Rpb248L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwaWxsYXItZGVzY3JpcHRpb24iPiJJIGhhdmUgdGhlIG9mZmVyLCBidXQgbm90IGVub3VnaCBleWViYWxscy4gSSBuZWVkIHN0cmF0ZWdpYyBhZHZlcnRpc2luZyB0aGF0IGJyaW5ncyBxdWFsaWZpZWQgYnV5ZXJzIHRvIG15IGRvb3IuIjwvcD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaWxsYXItaW5jbHVkZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGlsbGFyLWluY2x1ZGVzLWxhYmVsIj5UaGlzIGluY2x1ZGVzOjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGlsbGFyLXRhZ3MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpbGxhci10YWciPkZhY2Vib29rL01ldGEgQWRzPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBpbGxhci10YWciPkdvb2dsZSBBZHM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlsbGFyLXRhZyI+U3BvbnNvcmVkIENvbnRlbnQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGlsbGFyLXRhZyI+UmV0YXJnZXRpbmc8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJpbWFyeV9waWxsYXIiIGlkPSJwcmltYXJ5UGlsbGFyIiB2YWx1ZT0iIj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gRm9sbG93LXVwIFF1ZXN0aW9ucyAoYXBwZWFyIGFmdGVyIHNlbGVjdGlvbikgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGxvd3VwLXNlY3Rpb24iIGlkPSJmb2xsb3d1cFNlY3Rpb24iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9sbG93dXAtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9sbG93dXAtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbGxvd3VwLWljb24iPvCfkqw8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iZm9sbG93dXAtdGl0bGUiPlRlbGwgVXMgTW9yZSBBYm91dCBZb3VyIDxzcGFuIGlkPSJwaWxsYXJOYW1lIj5Qcmlvcml0eTwvc3Bhbj48L2gzPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1ZXN0aW9uLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJxdWVzdGlvbi1sYWJlbCI+V2hhdCdzIHlvdXIgYmlnZ2VzdCBjaGFsbGVuZ2UgaW4gdGhpcyBhcmVhIHJpZ2h0IG5vdz88L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9InRleHQtaW5wdXQiIG5hbWU9ImJpZ2dlc3RfY2hhbGxlbmdlIiBwbGFjZWhvbGRlcj0iRGVzY3JpYmUgdGhlIHNwZWNpZmljIG9ic3RhY2xlIHlvdSdyZSBmYWNpbmcuLi4iPjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVlc3Rpb24tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InF1ZXN0aW9uLWxhYmVsIj5XaGF0IGhhdmUgeW91IGFscmVhZHkgdHJpZWQ/PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InF1ZXN0aW9uLWhpbnQiPktub3dpbmcgd2hhdCBoYXNuJ3Qgd29ya2VkIGhlbHBzIHVzIHVuZGVyc3RhbmQgd2hhdCBtaWdodDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPSJ0ZXh0LWlucHV0IiBuYW1lPSJhbHJlYWR5X3RyaWVkIiBwbGFjZWhvbGRlcj0iU2hhcmUgYW55IGFwcHJvYWNoZXMgb3Igc29sdXRpb25zIHlvdSd2ZSBhdHRlbXB0ZWQuLi4iPjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVlc3Rpb24tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InF1ZXN0aW9uLWxhYmVsIj5JZiB0aGlzIHdhcyBzb2x2ZWQsIHdoYXQgd291bGQgY2hhbmdlIGZvciB5b3VyIGJ1c2luZXNzPzwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz0idGV4dC1pbnB1dCIgbmFtZT0iaW1wYWN0X2lmX3NvbHZlZCIgcGxhY2Vob2xkZXI9IlBhaW50IHRoZSBwaWN0dXJlIG9mIHN1Y2Nlc3MuLi4iPjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVlc3Rpb24tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InF1ZXN0aW9uLWxhYmVsIj5Ib3cgdXJnZW50IGlzIHRoaXMgcHJpb3JpdHk/PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9ucy1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWJ0biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ1cmdlbmN5IiBpZD0idXJnZW5jeTEiIHZhbHVlPSJjcml0aWNhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJvcHRpb24tbGFiZWwiIGZvcj0idXJnZW5jeTEiPvCflLQgQ3JpdGljYWwgLSBOZWVkIGl0IHllc3RlcmRheTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbi1idG4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idXJnZW5jeSIgaWQ9InVyZ2VuY3kyIiB2YWx1ZT0iaGlnaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJvcHRpb24tbGFiZWwiIGZvcj0idXJnZW5jeTIiPvCfn6AgSGlnaCAtIFRoaXMgcXVhcnRlcjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbi1idG4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idXJnZW5jeSIgaWQ9InVyZ2VuY3kzIiB2YWx1ZT0ibW9kZXJhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ib3B0aW9uLWxhYmVsIiBmb3I9InVyZ2VuY3kzIj7wn5+hIE1vZGVyYXRlIC0gVGhpcyB5ZWFyPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWJ0biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ1cmdlbmN5IiBpZD0idXJnZW5jeTQiIHZhbHVlPSJleHBsb3JpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ib3B0aW9uLWxhYmVsIiBmb3I9InVyZ2VuY3k0Ij7wn5+iIEV4cGxvcmluZyAtIEp1c3QgcmVzZWFyY2hpbmc8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBQcmlvcml0eSBSYW5raW5nIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5raW5nLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFua2luZy1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icmFua2luZy10aXRsZSI+UmFuayBBbGwgRm91ciBQaWxsYXJzPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icmFua2luZy1zdWJ0aXRsZSI+SW4gb3JkZXIgb2YgcHJpb3JpdHkgZm9yIHlvdXIgYnVzaW5lc3MgKDEgPSBNb3N0IEltcG9ydGFudCk8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmtpbmctZ3JpZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFua2luZy1pdGVtIHJlcHV0YXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icmFua2luZy1sYWJlbCI+UmVwdXRhdGlvbjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0icmFua2luZy1zZWxlY3QiIG5hbWU9InJhbmtfcmVwdXRhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPi08L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEiPjFzdDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMiI+Mm5kPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzIj4zcmQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQiPjR0aDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYW5raW5nLWl0ZW0gZnVubmVscyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJyYW5raW5nLWxhYmVsIj5GdW5uZWxzPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJyYW5raW5nLXNlbGVjdCIgbmFtZT0icmFua19mdW5uZWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+LTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+MXN0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIyIj4ybmQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMiPjNyZDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNCI+NHRoPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhbmtpbmctaXRlbSBzb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icmFua2luZy1sYWJlbCI+U29jaWFsPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJyYW5raW5nLXNlbGVjdCIgbmFtZT0icmFua19zb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj4tPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxIj4xc3Q8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiPjJuZDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMyI+M3JkPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI0Ij40dGg8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFua2luZy1pdGVtIHRyYWZmaWMiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icmFua2luZy1sYWJlbCI+VHJhZmZpYzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0icmFua2luZy1zZWxlY3QiIG5hbWU9InJhbmtfdHJhZmZpYyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPi08L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEiPjFzdDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMiI+Mm5kPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzIj4zcmQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQiPjR0aDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gSGlkZGVuIGZpZWxkcyAtLT4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3N1YmplY3QiIHZhbHVlPSLwn46vIENPUkUgNCBQUklPUklUSUVTIC0gRm91bmRpbmcgUGlvbmVlciI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9jYXB0Y2hhIiB2YWx1ZT0iZmFsc2UiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfdGVtcGxhdGUiIHZhbHVlPSJ0YWJsZSI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVudHJ5X3R5cGUiIHZhbHVlPSJDb3JlNF9Qcmlvcml0aWVzX1N1cnZleSI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InN1Ym1pc3Npb25fZGF0ZSIgaWQ9InN1Ym1pc3Npb25EYXRlIj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gTmF2aWdhdGlvbiAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vMjAyNmludHJvc3BlY3QiIGNsYXNzPSJuYXYtYnRuIGJhY2siPgogICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik03IDE2bC00LTRtMCAwbDQtNG0tNCA0aDE4IiAvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIEJhY2sgdG8gQXNzZXNzbWVudAogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJuYXYtYnRuIHN1Ym1pdCI+CiAgICAgICAgICAgICAgICAgICAgQ29tcGxldGUgJiBWaWV3IFJld2FyZHMKICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMTcgOGw0IDRtMCAwbC00IDRtNC00SDMiIC8+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CiAgICAKICAgIDwhLS0gRm9vdGVyIC0tPgogICAgPGZvb3RlciBjbGFzcz0icGFnZS1mb290ZXIiPgogICAgICAgIDxwIGNsYXNzPSJmb290ZXItdGV4dCI+IkJ1aWxkaW5nIHF1aWV0bHkuIEFtcGxpZnlpbmcgaW50ZW50aW9uYWxseS4iPC9wPgogICAgICAgIDxwIGNsYXNzPSJmb290ZXItYnJhbmQiPlNPVkVSRUlHTiBBUkNISVRFQ1RTIE1FRElBPC9wPgogICAgPC9mb290ZXI+CiAgICAKICAgIDxzY3JpcHQ+CiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gU0NSRUVOU0hPVCAmIENPUFkgUFJFVkVOVElPTiA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgZSA9PiB7IGUucHJldmVudERlZmF1bHQoKTsgcmV0dXJuIGZhbHNlOyB9KTsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdQcmludFNjcmVlbicpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgaWYgKGUuY3RybEtleSAmJiBlLmtleSA9PT0gJ3AnKSB7IGUucHJldmVudERlZmF1bHQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICdzJykgeyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybiBmYWxzZTsgfQogICAgICAgICAgICBpZiAoZS5jdHJsS2V5ICYmIGUuc2hpZnRLZXkgJiYgZS5rZXkgPT09ICdJJykgeyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybiBmYWxzZTsgfQogICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdGMTInKSB7IGUucHJldmVudERlZmF1bHQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICd1JykgeyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybiBmYWxzZTsgfQogICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdzdGFydCcsIGUgPT4geyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybiBmYWxzZTsgfSk7CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gUElMTEFSIFNFTEVDVElPTiA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGNvbnN0IHBpbGxhck5hbWVzID0gewogICAgICAgICAgICByZXB1dGF0aW9uOiAnUmVwdXRhdGlvbiAmIEF1dGhvcml0eScsCiAgICAgICAgICAgIGZ1bm5lbHM6ICdGdW5uZWxzICYgQXV0b21hdGlvbicsCiAgICAgICAgICAgIHNvY2lhbDogJ1NvY2lhbCBNZWRpYScsCiAgICAgICAgICAgIHRyYWZmaWM6ICdQYWlkIFRyYWZmaWMnCiAgICAgICAgfTsKICAgICAgICAKICAgICAgICBmdW5jdGlvbiBzZWxlY3RQaWxsYXIoY2FyZCwgcGlsbGFyKSB7CiAgICAgICAgICAgIC8vIFJlbW92ZSBzZWxlY3RlZCBmcm9tIGFsbCBjYXJkcwogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucGlsbGFyLWNhcmQnKS5mb3JFYWNoKGMgPT4gewogICAgICAgICAgICAgICAgYy5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEFkZCBzZWxlY3RlZCB0byBjbGlja2VkIGNhcmQKICAgICAgICAgICAgY2FyZC5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVXBkYXRlIGhpZGRlbiBmaWVsZAogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpbWFyeVBpbGxhcicpLnZhbHVlID0gcGlsbGFyOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVXBkYXRlIGZvbGxvdy11cCBzZWN0aW9uCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwaWxsYXJOYW1lJykudGV4dENvbnRlbnQgPSBwaWxsYXJOYW1lc1twaWxsYXJdOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gU2hvdyBmb2xsb3ctdXAgc2VjdGlvbgogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9sbG93dXBTZWN0aW9uJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTY3JvbGwgdG8gZm9sbG93LXVwCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvbGxvd3VwU2VjdGlvbicpLnNjcm9sbEludG9WaWV3KHsgCiAgICAgICAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLCAKICAgICAgICAgICAgICAgICAgICBibG9jazogJ3N0YXJ0JyAKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9LCAzMDApOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBGT1JNIFNVQk1JU1NJT04gPT09PT09PT09PT09PT09PT09PT0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpb3JpdGllc0Zvcm0nKS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFZhbGlkYXRlIHBpbGxhciBzZWxlY3Rpb24KICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpbWFyeVBpbGxhcicpLnZhbHVlKSB7CiAgICAgICAgICAgICAgICBhbGVydCgnUGxlYXNlIHNlbGVjdCB5b3VyIHByaW1hcnkgcHJpb3JpdHkgcGlsbGFyLicpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTZXQgc3VibWlzc2lvbiBkYXRlCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJtaXNzaW9uRGF0ZScpLnZhbHVlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ29sbGVjdCBmb3JtIGRhdGEKICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEodGhpcyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTdWJtaXQgdG8gRm9ybVN1Ym1pdAogICAgICAgICAgICBmZXRjaCgnaHR0cHM6Ly9mb3Jtc3VibWl0LmNvL2FqYXgvZHluYW1pY3BhcmFkaWdtc2VhY2FkZW15QGdtYWlsLmNvbScsIHsKICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLAogICAgICAgICAgICAgICAgYm9keTogZm9ybURhdGEKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKQogICAgICAgICAgICAudGhlbihkYXRhID0+IHsKICAgICAgICAgICAgICAgIC8vIFJlZGlyZWN0IHRvIHJld2FyZHMKICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ2h0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tLzIwMjZyZXdhcmRzJzsKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTsKICAgICAgICAgICAgICAgIC8vIFN0aWxsIHJlZGlyZWN0IG9uIGVycm9yCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICdodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbS8yMDI2cmV3YXJkcyc7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
🎯
The Core 4 Framework
Your Strategic Priorities
Every business needs all four pillars, but one usually demands immediate attention. Let's identify yours.
The Core 4 Marketing Framework identifies the essential pillars every business needs to thrive. Most entrepreneurs spread themselves thin across all four. The strategic approach? Master one, then expand.
👑 Reputation
âš¡ Funnels
📱 Social
🚀 Traffic