{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+VGhlIEhhbmRyYWlscyDCtyBBSSBSZWFkaW5lc3MgRGlhZ25vc3RpYyDCtyBUaGUgU292ZXJlaWduIENvZGV4PC90aXRsZT4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlR3byBtaW51dGVzLiBTZXZlbiBob25lc3QgcXVlc3Rpb25zLiBUaGUgQUkgcmVhZGluZXNzIGRpYWdub3N0aWMgZm9yIEFmcmljYW4gZm91bmRlcnMuIE5vIHNoYW1lLiBObyBmZWFyLiBKdXN0IHRoZSB0cnV0aCBvZiB3aGVyZSB5b3Ugc3RhbmQuIj4KPHN0eWxlPgpAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Db3Jtb3JhbnQrR2FyYW1vbmQ6d2dodEA0MDA7NTAwOzYwMDs3MDAmZmFtaWx5PUlCTStQbGV4K1NhbnM6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmZhbWlseT1JQk0rUGxleCtNb25vOndnaHRANDAwOzUwMCZkaXNwbGF5PXN3YXAnKTsKCjpyb290IHsKICAtLW5hdnk6ICMwQjE2Mjg7CiAgLS1uYXZ5LWRlZXA6ICMwNjBkMTg7CiAgLS1uYXZ5LW1pZDogIzE0MjEzYTsKICAtLWdvbGQ6ICNGMEM0MzA7CiAgLS1nb2xkLWRlZXA6ICNjOWEwMjA7CiAgLS1nb2xkLXNvZnQ6IHJnYmEoMjQwLCAxOTYsIDQ4LCAwLjE1KTsKICAtLWNyZWFtOiAjRkVGQUYwOwogIC0tY3JlYW0tbXV0ZWQ6IHJnYmEoMjU0LCAyNTAsIDI0MCwgMC43OCk7CiAgLS1jcmVhbS1xdWlldDogcmdiYSgyNTQsIDI1MCwgMjQwLCAwLjU1KTsKICAtLXB1cnBsZTogIzRBMUE2QjsKICAtLXB1cnBsZS1zb2Z0OiByZ2JhKDc0LCAyNiwgMTA3LCAwLjQpOwogIC0tYm9yZGVyOiByZ2JhKDI0MCwgMTk2LCA0OCwgMC4xOCk7CiAgLS1ib3JkZXItc29mdDogcmdiYSgyNDAsIDE5NiwgNDgsIDAuMDgpOwogIC0tZ3JlZW46ICMyRDZBNEY7CiAgLS1zZXJpZjogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIEdlb3JnaWEsIHNlcmlmOwogIC0tc2FuczogJ0lCTSBQbGV4IFNhbnMnLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgLS1tb25vOiAnSUJNIFBsZXggTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKfQoKKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQpodG1sIHsgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0KYm9keSB7CiAgYmFja2dyb3VuZDogdmFyKC0tbmF2eSk7CiAgY29sb3I6IHZhcigtLWNyZWFtKTsKICBmb250LWZhbWlseTogdmFyKC0tc2Fucyk7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBsaW5lLWhlaWdodDogMS42NTsKICBmb250LXNpemU6IDE3cHg7CiAgbWluLWhlaWdodDogMTAwdmg7CiAgb3ZlcmZsb3cteDogaGlkZGVuOwp9CmJvZHk6OmJlZm9yZSB7CiAgY29udGVudDogJyc7CiAgcG9zaXRpb246IGZpeGVkOwogIGluc2V0OiAwOwogIGJhY2tncm91bmQ6CiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAyMCUgMCUsIHJnYmEoMjQwLCAxOTYsIDQ4LCAwLjA2KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDgwJSAxMDAlLCByZ2JhKDc0LCAyNiwgMTA3LCAwLjEyKSAwJSwgdHJhbnNwYXJlbnQgNTUlKTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB6LWluZGV4OiAwOwp9Cgoud3JhcCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHotaW5kZXg6IDE7CiAgbWF4LXdpZHRoOiA4ODBweDsKICBtYXJnaW46IDAgYXV0bzsKICBwYWRkaW5nOiAwIDI0cHg7Cn0KCi8qIOKUgOKUgOKUgCBIZWFkZXIg4pSA4pSA4pSAICovCi5zaXRlLWhlYWRlciB7CiAgcGFkZGluZzogMjRweDsKICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXNvZnQpOwogIGJhY2tncm91bmQ6IHJnYmEoNiwgMTMsIDI0LCAwLjQpOwp9Ci5zaXRlLWhlYWRlci1pbm5lciB7CiAgbWF4LXdpZHRoOiA4ODBweDsKICBtYXJnaW46IDAgYXV0bzsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogIGZsZXgtd3JhcDogd3JhcDsKICBnYXA6IDE0cHg7Cn0KLmJyYW5kLW1hcmsgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuNzhyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKfQouYnJhbmQtbWFyayAubG96ZW5nZSB7CiAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgZm9udC1zaXplOiAwLjY1cmVtOwogIG9wYWNpdHk6IDAuNzsKfQouYmFjay1saW5rIHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7CiAgZm9udC1zaXplOiAwLjcycmVtOwogIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tY3JlYW0tcXVpZXQpOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwp9Ci5iYWNrLWxpbms6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KCi8qIOKUgOKUgOKUgCBTdGFnZSBzeXN0ZW0g4pSA4pSA4pSAICovCi5zdGFnZSB7IGRpc3BsYXk6IG5vbmU7IH0KLnN0YWdlLmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyBhbmltYXRpb246IGZhZGVJbiAwLjRzIGVhc2U7IH0KQGtleWZyYW1lcyBmYWRlSW4gewogIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfQogIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9Cn0KCi8qIOKUgOKUgOKUgCBXZWxjb21lIHN0YWdlIOKUgOKUgOKUgCAqLwoud2VsY29tZSB7CiAgcGFkZGluZzogODBweCAwIDYwcHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5leWVicm93IHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7CiAgZm9udC1zaXplOiAwLjdyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMjhlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBtYXJnaW4tYm90dG9tOiAyNnB4OwogIG9wYWNpdHk6IDAuOTsKfQoud2VsY29tZSBoMSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLXNlcmlmKTsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNXZ3LCAzLjRyZW0pOwogIGxpbmUtaGVpZ2h0OiAxLjE1OwogIGNvbG9yOiB2YXIoLS1jcmVhbSk7CiAgbWFyZ2luLWJvdHRvbTogMjhweDsKfQoud2VsY29tZSBoMSBlbSB7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKfQoud2VsY29tZSAubGVkZSB7CiAgbWF4LXdpZHRoOiA2MjBweDsKICBtYXJnaW46IDAgYXV0byAzNnB4OwogIGZvbnQtc2l6ZTogMS4wOHJlbTsKICBsaW5lLWhlaWdodDogMS43NTsKICBjb2xvcjogdmFyKC0tY3JlYW0tbXV0ZWQpOwp9Ci53ZWxjb21lLW1ldGEgewogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgZ2FwOiAyOHB4OwogIGZsZXgtd3JhcDogd3JhcDsKICBtYXJnaW4tYm90dG9tOiA0MHB4Owp9Ci5tZXRhLWl0ZW0gewogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuNzVyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBvcGFjaXR5OiAwLjg1Owp9Ci5tZXRhLWl0ZW0gLmRvdCB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHdpZHRoOiA1cHg7CiAgaGVpZ2h0OiA1cHg7CiAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIG1hcmdpbi1yaWdodDogMTBweDsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogIG9wYWNpdHk6IDAuNzsKfQoucHJvbWlzZS1ib3ggewogIG1heC13aWR0aDogNTgwcHg7CiAgbWFyZ2luOiAwIGF1dG8gNDRweDsKICBwYWRkaW5nOiAyNnB4IDMwcHg7CiAgYmFja2dyb3VuZDogcmdiYSgyMCwgMzMsIDU4LCAwLjUpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zb2Z0KTsKICBib3JkZXItcmFkaXVzOiA0cHg7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQoucHJvbWlzZS1ib3ggLnByb21pc2UtdGl0bGUgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuNzJyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBtYXJnaW4tYm90dG9tOiAxMnB4Owp9Ci5wcm9taXNlLWJveCAucHJvbWlzZS10ZXh0IHsKICBmb250LXNpemU6IDAuOThyZW07CiAgbGluZS1oZWlnaHQ6IDEuNzsKICBjb2xvcjogdmFyKC0tY3JlYW0tbXV0ZWQpOwp9Ci5idG4tcHJpbWFyeSB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuODVyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgcGFkZGluZzogMThweCAzOHB4OwogIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgYm9yZGVyOiBub25lOwogIGJvcmRlci1yYWRpdXM6IDJweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKfQouYnRuLXByaW1hcnk6aG92ZXIgewogIGJhY2tncm91bmQ6IHZhcigtLWdvbGQtZGVlcCk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyNDAsIDE5NiwgNDgsIDAuMik7Cn0KLnNpZ25hdHVyZSB7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOwogIGZvbnQtc2l6ZTogMC43NHJlbTsKICBsZXR0ZXItc3BhY2luZzogMC4xNmVtOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIG1hcmdpbi10b3A6IDM2cHg7CiAgb3BhY2l0eTogMC44NTsKfQoKLyog4pSA4pSA4pSAIEFzc2Vzc21lbnQgc3RhZ2Ug4pSA4pSA4pSAICovCi5hc3Nlc3MgewogIHBhZGRpbmc6IDUwcHggMCA3MHB4Owp9Ci5wcm9ncmVzcy1ibG9jayB7CiAgbWFyZ2luLWJvdHRvbTogNTBweDsKfQoucHJvZ3Jlc3MtbWV0YSB7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBtYXJnaW4tYm90dG9tOiAxNHB4OwogIGZsZXgtd3JhcDogd3JhcDsKICBnYXA6IDEwcHg7Cn0KLnByb2dyZXNzLWRpbSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOwogIGZvbnQtc2l6ZTogMC43NHJlbTsKICBsZXR0ZXItc3BhY2luZzogMC4xNmVtOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgY29sb3I6IHZhcigtLWdvbGQpOwp9Ci5wcm9ncmVzcy1jb3VudCB7CiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOwogIGZvbnQtc2l6ZTogMC43NHJlbTsKICBsZXR0ZXItc3BhY2luZzogMC4xNGVtOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgY29sb3I6IHZhcigtLWNyZWFtLXF1aWV0KTsKfQoucHJvZ3Jlc3MtY291bnQgc3Ryb25nIHsgY29sb3I6IHZhcigtLWNyZWFtKTsgZm9udC13ZWlnaHQ6IDUwMDsgfQoucHJvZ3Jlc3MtYmFyIHsKICBoZWlnaHQ6IDNweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjUwLCAyNDAsIDAuMDgpOwogIGJvcmRlci1yYWRpdXM6IDJweDsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5wcm9ncmVzcy1maWxsIHsKICBoZWlnaHQ6IDEwMCU7CiAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgYm9yZGVyLXJhZGl1czogMnB4OwogIHRyYW5zaXRpb246IHdpZHRoIDAuNXMgZWFzZTsKICB3aWR0aDogMCU7Cn0KLnEtYmxvY2sgewogIG1hcmdpbi1ib3R0b206IDM2cHg7Cn0KLnEtZXllYnJvdyB7CiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOwogIGZvbnQtc2l6ZTogMC43cmVtOwogIGxldHRlci1zcGFjaW5nOiAwLjJlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBtYXJnaW4tYm90dG9tOiAxNnB4OwogIG9wYWNpdHk6IDAuODU7Cn0KLnEtdGV4dCB7CiAgZm9udC1mYW1pbHk6IHZhcigtLXNlcmlmKTsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAzLjJ2dywgMi4wNXJlbSk7CiAgbGluZS1oZWlnaHQ6IDEuMzsKICBjb2xvcjogdmFyKC0tY3JlYW0pOwogIG1hcmdpbi1ib3R0b206IDE0cHg7Cn0KLnEtbnVkZ2UgewogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXNpemU6IDAuOThyZW07CiAgY29sb3I6IHZhcigtLWNyZWFtLXF1aWV0KTsKICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Ci5vcHRpb25zIHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZ2FwOiAxMnB4Owp9Ci5vcHQgewogIHBhZGRpbmc6IDE4cHggMjJweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCAzMywgNTgsIDAuNDUpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zb2Z0KTsKICBib3JkZXItcmFkaXVzOiAzcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtc2l6ZTogMXJlbTsKICBsaW5lLWhlaWdodDogMS41NTsKICBjb2xvcjogdmFyKC0tY3JlYW0tbXV0ZWQpOwogIHRyYW5zaXRpb246IGFsbCAwLjE4cyBlYXNlOwogIHRleHQtYWxpZ246IGxlZnQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7Cn0KLm9wdDpob3ZlciB7CiAgYmFja2dyb3VuZDogcmdiYSgyNDAsIDE5NiwgNDgsIDAuMDYpOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyKTsKICBjb2xvcjogdmFyKC0tY3JlYW0pOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOwp9Ci5vcHQuc2VsZWN0ZWQgewogIGJhY2tncm91bmQ6IHZhcigtLWdvbGQtc29mdCk7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICBjb2xvcjogdmFyKC0tY3JlYW0pOwp9Ci5xLW5hdiB7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBtYXJnaW4tdG9wOiAzNnB4OwogIGdhcDogMTRweDsKICBmbGV4LXdyYXA6IHdyYXA7Cn0KLmJ0bi1iYWNrIHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7CiAgZm9udC1zaXplOiAwLjc0cmVtOwogIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tY3JlYW0tcXVpZXQpOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zb2Z0KTsKICBwYWRkaW5nOiAxMnB4IDIycHg7CiAgYm9yZGVyLXJhZGl1czogMnB4OwogIGN1cnNvcjogcG9pbnRlcjsKICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKfQouYnRuLWJhY2s6aG92ZXIgewogIGNvbG9yOiB2YXIoLS1jcmVhbSk7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIpOwp9Ci5idG4tYmFjay5oaWRkZW4geyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KCi8qIOKUgOKUgOKUgCBSZWFkaW5nIHN0YWdlIOKUgOKUgOKUgCAqLwoucmVhZGluZyB7CiAgcGFkZGluZzogNjBweCAwIDgwcHg7Cn0KLnJlYWRpbmctZXllYnJvdyB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuNzJyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMjZlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBtYXJnaW4tYm90dG9tOiAyMnB4Owp9Ci5yZWFkaW5nLWJhbmQgewogIHRleHQtYWxpZ246IGNlbnRlcjsKICBtYXJnaW4tYm90dG9tOiA1MHB4Owp9Ci5yZWFkaW5nLWJhbmQtbmFtZSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLXNlcmlmKTsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc2l6ZTogY2xhbXAoMi40cmVtLCA2dncsIDRyZW0pOwogIGxpbmUtaGVpZ2h0OiAxOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBtYXJnaW4tYm90dG9tOiAxNHB4OwogIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwp9Ci5yZWFkaW5nLXNjb3JlIHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7CiAgZm9udC1zaXplOiAwLjg1cmVtOwogIGxldHRlci1zcGFjaW5nOiAwLjE2ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tY3JlYW0tcXVpZXQpOwp9Ci5yZWFkaW5nLXNjb3JlIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jcmVhbSk7IGZvbnQtd2VpZ2h0OiA1MDA7IH0KLmJhbmQtbWV0ZXIgewogIG1heC13aWR0aDogNDgwcHg7CiAgbWFyZ2luOiAzMnB4IGF1dG8gMDsKfQouYmFuZC1tZXRlci10cmFjayB7CiAgaGVpZ2h0OiA2cHg7CiAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI1MCwgMjQwLCAwLjA4KTsKICBib3JkZXItcmFkaXVzOiAzcHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmJhbmQtbWV0ZXItZmlsbCB7CiAgaGVpZ2h0OiAxMDAlOwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tcHVycGxlKSwgdmFyKC0tZ29sZCkpOwogIGJvcmRlci1yYWRpdXM6IDNweDsKICB0cmFuc2l0aW9uOiB3aWR0aCAwLjhzIGVhc2U7Cn0KLmJhbmQtbWV0ZXItbGFiZWxzIHsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICBtYXJnaW4tdG9wOiAxMHB4OwogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuNjJyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1jcmVhbS1xdWlldCk7Cn0KCi5yZWFkaW5nLWJvZHkgewogIG1heC13aWR0aDogNjgwcHg7CiAgbWFyZ2luOiAwIGF1dG8gNDRweDsKICBwYWRkaW5nOiA0MHB4IDM2cHg7CiAgYmFja2dyb3VuZDogcmdiYSgyMCwgMzMsIDU4LCAwLjUpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zb2Z0KTsKICBib3JkZXItcmFkaXVzOiA0cHg7Cn0KLnJlYWRpbmctYm9keSBoMiB7CiAgZm9udC1mYW1pbHk6IHZhcigtLXNlcmlmKTsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc2l6ZTogMS43cmVtOwogIGNvbG9yOiB2YXIoLS1jcmVhbSk7CiAgbWFyZ2luLWJvdHRvbTogMThweDsKICBsaW5lLWhlaWdodDogMS4yNTsKfQoucmVhZGluZy1ib2R5IGgyIGVtIHsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgY29sb3I6IHZhcigtLWdvbGQpOwp9Ci5yZWFkaW5nLWJvZHkgcCB7CiAgZm9udC1zaXplOiAxLjA0cmVtOwogIGxpbmUtaGVpZ2h0OiAxLjc1OwogIGNvbG9yOiB2YXIoLS1jcmVhbS1tdXRlZCk7CiAgbWFyZ2luLWJvdHRvbTogMThweDsKfQoucmVhZGluZy1ib2R5IHA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH0KCi5kaW0tYnJlYWtkb3duIHsKICBtYXgtd2lkdGg6IDY4MHB4OwogIG1hcmdpbjogMCBhdXRvIDUwcHg7CiAgcGFkZGluZzogMjhweCAzMHB4OwogIGJhY2tncm91bmQ6IHJnYmEoMTEsIDIyLCA0MCwgMC41KTsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc29mdCk7CiAgYm9yZGVyLXJhZGl1czogNHB4Owp9Ci5kaW0tYnJlYWtkb3duLXRpdGxlIHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7CiAgZm9udC1zaXplOiAwLjcycmVtOwogIGxldHRlci1zcGFjaW5nOiAwLjE4ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgbWFyZ2luLWJvdHRvbTogMjBweDsKfQouZGltLXJvdyB7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBwYWRkaW5nOiAxMXB4IDA7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zb2Z0KTsKICBnYXA6IDE0cHg7Cn0KLmRpbS1yb3c6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH0KLmRpbS1uYW1lIHsKICBmb250LWZhbWlseTogdmFyKC0tc2Fucyk7CiAgZm9udC1zaXplOiAwLjk0cmVtOwogIGNvbG9yOiB2YXIoLS1jcmVhbS1tdXRlZCk7Cn0KLmRpbS1iYXIgewogIGZsZXg6IDE7CiAgbWF4LXdpZHRoOiAxMzBweDsKICBoZWlnaHQ6IDRweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjUwLCAyNDAsIDAuMDgpOwogIGJvcmRlci1yYWRpdXM6IDJweDsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5kaW0tYmFyLWZpbGwgewogIGhlaWdodDogMTAwJTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICBib3JkZXItcmFkaXVzOiAycHg7Cn0KLmRpbS1zY29yZSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOwogIGZvbnQtc2l6ZTogMC44MnJlbTsKICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgbWluLXdpZHRoOiAzMHB4OwogIHRleHQtYWxpZ246IHJpZ2h0Owp9CgovKiDilIDilIDilIAgSW52aXRhdGlvbiBibG9jayDilIDilIDilIAgKi8KLmludml0YXRpb24gewogIG1heC13aWR0aDogNjgwcHg7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZzogNTBweCAzOHB4OwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoNzQsIDI2LCAxMDcsIDAuMjUpLCByZ2JhKDI0MCwgMTk2LCA0OCwgMC4wNikpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdvbGQpOwogIGJvcmRlci1yYWRpdXM6IDRweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmludml0YXRpb24tZXllYnJvdyB7CiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOwogIGZvbnQtc2l6ZTogMC43MnJlbTsKICBsZXR0ZXItc3BhY2luZzogMC4yZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgbWFyZ2luLWJvdHRvbTogMThweDsKfQouaW52aXRhdGlvbiBoMyB7CiAgZm9udC1mYW1pbHk6IHZhcigtLXNlcmlmKTsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtc2l6ZTogMS44NXJlbTsKICBjb2xvcjogdmFyKC0tY3JlYW0pOwogIGxpbmUtaGVpZ2h0OiAxLjI1OwogIG1hcmdpbi1ib3R0b206IDE4cHg7Cn0KLmludml0YXRpb24gaDMgZW0gewogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBjb2xvcjogdmFyKC0tZ29sZCk7Cn0KLmludml0YXRpb24gcCB7CiAgZm9udC1zaXplOiAxLjAycmVtOwogIGxpbmUtaGVpZ2h0OiAxLjc7CiAgY29sb3I6IHZhcigtLWNyZWFtLW11dGVkKTsKICBtYXJnaW4tYm90dG9tOiAzMnB4Owp9Ci5idG4td2hhdHNhcHAgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZ2FwOiAxMnB4OwogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuODJyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgcGFkZGluZzogMThweCAzMnB4OwogIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgYm9yZGVyLXJhZGl1czogMnB4OwogIHRyYW5zaXRpb246IGFsbCAwLjJzOwp9Ci5idG4td2hhdHNhcHA6aG92ZXIgewogIGJhY2tncm91bmQ6IHZhcigtLWdvbGQtZGVlcCk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyNDAsIDE5NiwgNDgsIDAuMik7Cn0KLndoYXRzYXBwLWljb24gewogIHdpZHRoOiAxOHB4OwogIGhlaWdodDogMThweDsKICBmaWxsOiB2YXIoLS1uYXZ5KTsKfQouaW52aXRhdGlvbi1tZXRhIHsKICBtYXJnaW4tdG9wOiAyMnB4OwogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuN3JlbTsKICBsZXR0ZXItc3BhY2luZzogMC4xNmVtOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgY29sb3I6IHZhcigtLWNyZWFtLXF1aWV0KTsKfQoKLnJldGFrZS1ibG9jayB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIG1hcmdpbi10b3A6IDUwcHg7Cn0KLmJ0bi1yZXRha2UgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuNzRyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1jcmVhbS1xdWlldCk7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXNvZnQpOwogIHBhZGRpbmc6IDEycHggMjJweDsKICBib3JkZXItcmFkaXVzOiAycHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGFsbCAwLjJzOwp9Ci5idG4tcmV0YWtlOmhvdmVyIHsKICBjb2xvcjogdmFyKC0tY3JlYW0pOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyKTsKfQoKLyog4pSA4pSA4pSAIEZvb3RlciDilIDilIDilIAgKi8KLnNpdGUtZm9vdGVyIHsKICBwYWRkaW5nOiA0MHB4IDI0cHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGJhY2tncm91bmQ6IHZhcigtLW5hdnktZGVlcCk7CiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zb2Z0KTsKICBtYXJnaW4tdG9wOiA0MHB4Owp9Ci5mb290ZXItYnJhbmQgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsKICBmb250LXNpemU6IDAuNzhyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1nb2xkKTsKICBtYXJnaW4tYm90dG9tOiA4cHg7Cn0KLmZvb3Rlci1wYXJlbnQgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1zYW5zKTsKICBmb250LXNpemU6IDAuODVyZW07CiAgY29sb3I6IHZhcigtLWNyZWFtLW11dGVkKTsKICBtYXJnaW4tYm90dG9tOiA2cHg7Cn0KLmZvb3Rlci1jb3B5IHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7CiAgZm9udC1zaXplOiAwLjdyZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTsKICBjb2xvcjogdmFyKC0tY3JlYW0tcXVpZXQpOwogIG1hcmdpbi10b3A6IDE0cHg7Cn0KCi8qIOKUgOKUgOKUgCBSZXNwb25zaXZlIOKUgOKUgOKUgCAqLwpAbWVkaWEgKG1heC13aWR0aDogNjgwcHgpIHsKICAud2VsY29tZSB7IHBhZGRpbmc6IDYwcHggMCA0MHB4OyB9CiAgLmFzc2VzcyB7IHBhZGRpbmc6IDQwcHggMCA2MHB4OyB9CiAgLnJlYWRpbmcgeyBwYWRkaW5nOiA1MHB4IDAgNjBweDsgfQogIC5yZWFkaW5nLWJvZHksIC5pbnZpdGF0aW9uLCAucHJvbWlzZS1ib3gsIC5kaW0tYnJlYWtkb3duIHsKICAgIHBhZGRpbmc6IDI4cHggMjJweDsKICB9CiAgLndlbGNvbWUtbWV0YSB7IGdhcDogMTZweDsgfQogIGJvZHkgeyBmb250LXNpemU6IDE2cHg7IH0KfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPCEtLSDilIDilIDilIAgSEVBREVSIOKUgOKUgOKUgCAtLT4KPGhlYWRlciBjbGFzcz0ic2l0ZS1oZWFkZXIiPgogIDxkaXYgY2xhc3M9InNpdGUtaGVhZGVyLWlubmVyIj4KICAgIDxkaXYgY2xhc3M9ImJyYW5kLW1hcmsiPjxzcGFuIGNsYXNzPSJsb3plbmdlIj7il4Y8L3NwYW4+VGhlIFNvdmVyZWlnbiBDb2RleDwvZGl2PgogICAgPGEgaHJlZj0iL3NvdmVyZWlnbi1jb2RleCIgY2xhc3M9ImJhY2stbGluayI+4oaQIFRoZSBDb2RleCBIb21lPC9hPgogIDwvZGl2Pgo8L2hlYWRlcj4KCjwhLS0g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgICAgU1RBR0UgMSDCtyBXRUxDT01FCiAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgo8c2VjdGlvbiBjbGFzcz0ic3RhZ2UgYWN0aXZlIiBpZD0ic3RhZ2Utd2VsY29tZSI+CiAgPGRpdiBjbGFzcz0id3JhcCI+CiAgICA8ZGl2IGNsYXNzPSJ3ZWxjb21lIj4KCiAgICAgIDxkaXYgY2xhc3M9ImV5ZWJyb3ciPlRoZSBIYW5kcmFpbHMgwrcgQUkgUmVhZGluZXNzIERpYWdub3N0aWM8L2Rpdj4KCiAgICAgIDxoMT5TZXZlbiBob25lc3QgcXVlc3Rpb25zLjxicj48ZW0+VHdvIG1pbnV0ZXMuPC9lbT48L2gxPgoKICAgICAgPHAgY2xhc3M9ImxlZGUiPgogICAgICAgIEFJIGlzIGEgZ2VuZXJhbGlzdC4gWW91ciBidXNpbmVzcyBpcyBhIHNwZWNpYWxpc3QuIFRoZSBxdWVzdGlvbiBpcyBub3Qgd2hldGhlciBBSSB3aWxsIHJlc2hhcGUgeW91ciBtYXJrZXQuIEl0IGlzIHdoZXRoZXIgeW91ciBidXNpbmVzcyBpcyBidWlsdCB0byBiZSBmb3VuZCwgdW5kZXJzdG9vZCwgYW5kIHRydXN0ZWQgYnkgdGhlIGVuZ2luZXMgbm93IGFuc3dlcmluZyB5b3VyIGN1c3RvbWVycycgcXVlc3Rpb25zLiBUaGUgSGFuZHJhaWxzIHN1cmZhY2VzIHRoZSBzZXZlbiBzaWduYWxzIHRoYXQgZGVjaWRlLgogICAgICA8L3A+CgogICAgICA8ZGl2IGNsYXNzPSJ3ZWxjb21lLW1ldGEiPgogICAgICAgIDxkaXYgY2xhc3M9Im1ldGEtaXRlbSI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPlR3byBNaW51dGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWV0YS1pdGVtIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+U2V2ZW4gUXVlc3Rpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWV0YS1pdGVtIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+RnJlZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1ldGEtaXRlbSI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPk5vIEVtYWlsIFJlcXVpcmVkPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icHJvbWlzZS1ib3giPgogICAgICAgIDxkaXYgY2xhc3M9InByb21pc2UtdGl0bGUiPk91ciBQcm9taXNlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvbWlzZS10ZXh0Ij4KICAgICAgICAgIE5vIHNjb3JlLXNoYW1pbmcuIE5vIGZlYXItY2xvc2UuIE5vIGNvdW50ZG93biB0aW1lci4gVGhpcyBkaWFnbm9zdGljIGdpdmVzIHlvdSBhIHJlYWwgcmVhZGluZyBvZiB3aGVyZSB5b3Ugc3RhbmQgdG9kYXksIG5hbWVzIHdoYXQgaXMgd29ya2luZywgYW5kIG5hbWVzIHdoYXQgaXMgbWlzc2luZy4gVGhlIHJlYWRpbmcgaXMgZm9yIHlvdS4gV2hhdCB5b3UgZG8gd2l0aCBpdCBpcyB5b3VyIGNhbGwuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLXByaW1hcnkiIG9uY2xpY2s9InN0YXJ0QXNzZXNzbWVudCgpIj5CZWdpbiBUaGUgSGFuZHJhaWxzIOKGkjwvYnV0dG9uPgoKICAgICAgPHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+Tm90IGJlaGluZC4gTm90IGJyb2tlbi4gTm90IHRvbyBsYXRlLjwvc3Bhbj4KCiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICBTVEFHRSAyIMK3IEFTU0VTU01FTlQKICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJzdGFnZSIgaWQ9InN0YWdlLWFzc2VzcyI+CiAgPGRpdiBjbGFzcz0id3JhcCI+CiAgICA8ZGl2IGNsYXNzPSJhc3Nlc3MiPgoKICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmxvY2siPgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLW1ldGEiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZGltIiBpZD0icHJvZ0RpbSI+U2lnbmFsIE9uZSDCtyBCcmFuZCBJZGVudGl0eTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtY291bnQiPlF1ZXN0aW9uIDxzdHJvbmcgaWQ9InByb2dOdW0iPjE8L3N0cm9uZz4gb2YgNzwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsIiBpZD0icHJvZ0ZpbGwiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InEtYmxvY2siPgogICAgICAgIDxkaXYgY2xhc3M9InEtZXllYnJvdyIgaWQ9InFFeWVicm93Ij48L2Rpdj4KICAgICAgICA8aDIgY2xhc3M9InEtdGV4dCIgaWQ9InFUZXh0Ij48L2gyPgogICAgICAgIDxwIGNsYXNzPSJxLW51ZGdlIiBpZD0icU51ZGdlIj48L3A+CgogICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMiIGlkPSJvcHRzQm94Ij48L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icS1uYXYiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuLWJhY2siIGlkPSJidG5CYWNrIiBvbmNsaWNrPSJwcmV2UXVlc3Rpb24oKSI+4oaQIFByZXZpb3VzPC9idXR0b24+CiAgICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgIFNUQUdFIDMgwrcgUkVBRElORwogICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9InN0YWdlIiBpZD0ic3RhZ2UtcmVhZGluZyI+CiAgPGRpdiBjbGFzcz0id3JhcCI+CiAgICA8ZGl2IGNsYXNzPSJyZWFkaW5nIj4KCiAgICAgIDxkaXYgY2xhc3M9InJlYWRpbmctZXllYnJvdyI+WW91ciBSZWFkaW5nPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJyZWFkaW5nLWJhbmQiPgogICAgICAgIDxkaXYgY2xhc3M9InJlYWRpbmctYmFuZC1uYW1lIiBpZD0iYmFuZE5hbWUiPkZvdW5kYXRpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icmVhZGluZy1zY29yZSI+U2NvcmUgwrcgPHN0cm9uZyBpZD0idG90YWxTY29yZSI+MDwvc3Ryb25nPiBvZiAyODwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJhbmQtbWV0ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYmFuZC1tZXRlci10cmFjayI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhbmQtbWV0ZXItZmlsbCIgaWQ9Im1ldGVyRmlsbCI+PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImJhbmQtbWV0ZXItbGFiZWxzIj4KICAgICAgICAgICAgPHNwYW4+Rm91bmRhdGlvbnM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkVtZXJnaW5nPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5FcXVpcHBlZDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+U292ZXJlaWduPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0icmVhZGluZy1ib2R5IiBpZD0icmVhZGluZ0JvZHkiPgogICAgICAgIDwhLS0gRmlsbGVkIGJ5IEpTIC0tPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRpbS1icmVha2Rvd24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRpbS1icmVha2Rvd24tdGl0bGUiPlNpZ25hbC1ieS1TaWduYWwgQnJlYWtkb3duPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iZGltUm93cyI+PC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iaW52aXRhdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iaW52aXRhdGlvbi1leWVicm93Ij5Zb3VyIEludml0YXRpb248L2Rpdj4KICAgICAgICA8aDM+V2FsayB0aGlzIGluIDxlbT5yZWFsIGNvbnZlcnNhdGlvbi48L2VtPjwvaDM+CiAgICAgICAgPHA+CiAgICAgICAgICBUaGUgSGFuZHJhaWxzIHN1cmZhY2VkIHdoZXJlIHlvdSBzdGFuZC4gVGhlIFNvdmVyZWlnbiBBSSBBdWRpdCB3YWxrcyB5b3VyIHdob2xlIGJ1c2luZXNzIHdpdGggeW91IH4gdGhpcnR5IG1pbnV0ZXMsIGZyZWUsIG5vIHBpdGNoIH4gYW5kIHNob3dzIHlvdSBleGFjdGx5IHdoYXQgeW91ciBTb3VyY2Ugb2YgVHJ1dGggd291bGQgbG9vayBsaWtlLCBidWlsdCBmb3IgeW91ciBzcGVjaWZpYyBidXNpbmVzcywgaW4geW91ciB2b2ljZSwgb24geW91ciB0aW1lbGluZS4KICAgICAgICA8L3A+CiAgICAgICAgPGEgY2xhc3M9ImJ0bi13aGF0c2FwcCIgaWQ9IndhQnRuIiBocmVmPSIjIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJ3aGF0c2FwcC1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy40NzIgMTQuMzgyYy0uMjk3LS4xNDktMS43NTgtLjg2Ny0yLjAzLS45NjctLjI3My0uMDk5LS40NzEtLjE0OC0uNjcuMTUtLjE5Ny4yOTctLjc2Ny45NjYtLjk0IDEuMTY0LS4xNzMuMTk5LS4zNDcuMjIzLS42NDQuMDc1LS4yOTctLjE1LTEuMjU1LS40NjMtMi4zOS0xLjQ3NS0uODgzLS43ODgtMS40OC0xLjc2MS0xLjY1My0yLjA1OS0uMTczLS4yOTctLjAxOC0uNDU4LjEzLS42MDYuMTM0LS4xMzMuMjk4LS4zNDcuNDQ2LS41Mi4xNDktLjE3NC4xOTgtLjI5OC4yOTgtLjQ5Ny4wOTktLjE5OC4wNS0uMzcxLS4wMjUtLjUyLS4wNzUtLjE0OS0uNjY5LTEuNjEyLS45MTYtMi4yMDctLjI0Mi0uNTc5LS40ODctLjUtLjY2OS0uNTEtLjE3My0uMDA4LS4zNzEtLjAxLS41Ny0uMDEtLjE5OCAwLS41Mi4wNzQtLjc5Mi4zNzItLjI3Mi4yOTctMS4wNCAxLjAxNi0xLjA0IDIuNDc5IDAgMS40NjIgMS4wNjUgMi44NzUgMS4yMTMgMy4wNzQuMTQ5LjE5OCAyLjA5NiAzLjIgNS4wNzcgNC40ODcuNzA5LjMwNiAxLjI2Mi40ODkgMS42OTQuNjI2LjcxMi4yMjYgMS4zNi4xOTQgMS44NzIuMTE4LjU3MS0uMDg1IDEuNzU4LS43MTkgMi4wMDYtMS40MTMuMjQ4LS42OTQuMjQ4LTEuMjg5LjE3My0xLjQxMy0uMDc0LS4xMjQtLjI3Mi0uMTk4LS41Ny0uMzQ3bS01LjQyMSA3LjQwM2gtLjAwNGE5Ljg3IDkuODcgMCAwMS01LjAzMS0xLjM3OGwtLjM2MS0uMjE0LTMuNzQxLjk4Mi45OTgtMy42NDgtLjIzNS0uMzc0YTkuODYgOS44NiAwIDAxLTEuNTEtNS4yNmMuMDAxLTUuNDUgNC40MzYtOS44ODQgOS44ODgtOS44ODQgMi42NCAwIDUuMTIyIDEuMDMgNi45ODggMi44OThhOS44MjUgOS44MjUgMCAwMTIuODkzIDYuOTk0Yy0uMDAzIDUuNDUtNC40MzcgOS44ODQtOS44ODUgOS44ODRtOC40MTMtMTguMjk3QTExLjgxNSAxMS44MTUgMCAwMDEyLjA1IDBDNS40OTUgMCAuMTYgNS4zMzUuMTU3IDExLjg5MmMwIDIuMDk2LjU0NyA0LjE0MiAxLjU4OCA1Ljk0NUwuMDU3IDI0bDYuMzA1LTEuNjU0YTExLjg4MiAxMS44ODIgMCAwMDUuNjgzIDEuNDQ4aC4wMDVjNi41NTQgMCAxMS44OS01LjMzNSAxMS44OTMtMTEuODkzYTExLjgyMSAxMS44MjEgMCAwMC0zLjQ4LTguNDEzWiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBCb29rIHRoZSBTb3ZlcmVpZ24gQUkgQXVkaXQKICAgICAgICA8L2E+CiAgICAgICAgPGRpdiBjbGFzcz0iaW52aXRhdGlvbi1tZXRhIj4zMCBNaW51dGVzIMK3IEZyZWUgwrcgTm8gUGl0Y2g8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJyZXRha2UtYmxvY2siPgogICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bi1yZXRha2UiIG9uY2xpY2s9InJlc2V0QXNzZXNzbWVudCgpIj7ihrogUmV0YWtlIFRoZSBIYW5kcmFpbHM8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjwhLS0g4pSA4pSA4pSAIEZPT1RFUiDilIDilIDilIAgLS0+Cjxmb290ZXIgY2xhc3M9InNpdGUtZm9vdGVyIj4KICA8ZGl2IGNsYXNzPSJmb290ZXItYnJhbmQiPuKXhiBUaGUgU292ZXJlaWduIENvZGV4PC9kaXY+CiAgPGRpdiBjbGFzcz0iZm9vdGVyLXBhcmVudCI+QSBQcmFjdGljZSBvZiBNdWthc2EgVmVudHVyZSBQYXJ0bmVycyBMTEM8L2Rpdj4KICA8ZGl2IGNsYXNzPSJmb290ZXItcGFyZW50Ij50aGVtZXJpZGlhbi5hZnJpY2E8L2Rpdj4KICA8ZGl2IGNsYXNzPSJmb290ZXItY29weSI+wqkgMjAyNiDCtyBBbGwgcmlnaHRzIHJlc2VydmVkPC9kaXY+CjwvZm9vdGVyPgoKPHNjcmlwdD4KLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCi8vICAgVEhFIEhBTkRSQUlMUyDCtyBRVUVTVElPTiBCQU5LCi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkApjb25zdCBRVUVTVElPTlMgPSBbCiAgewogICAgZGltOiAiQnJhbmQgSWRlbnRpdHkiLAogICAgZXllYnJvdzogIlNpZ25hbCBPbmUgwrcgQnJhbmQgSWRlbnRpdHkiLAogICAgdGV4dDogJyJEbyB5b3UgaGF2ZSBhIHdyaXR0ZW4gZG9jdW1lbnQgdGhhdCBjYXB0dXJlcyB3aG8geW91ciBidXNpbmVzcyBpcyBhdCBpdHMgY29yZT8iJywKICAgIG51ZGdlOiAiTWlzc2lvbiwgdmFsdWVzLCB0YXJnZXQgY3VzdG9tZXIsIHdoYXQgbWFrZXMgeW91IGRpZmZlcmVudC4gVGhlIGRvY3VtZW50IHlvdSBjb3VsZCBoYW5kIHRvIGFueW9uZSAob3IgYW55IEFJIHRvb2wpIGFuZCB0aGV5IHdvdWxkIHVuZGVyc3RhbmQgeW91ciBidXNpbmVzcyBpbW1lZGlhdGVseS4iLAogICAgb3B0czogWwogICAgICB7IGxhYmVsOiAiSSBoYXZlIG5vdCB3cml0dGVuIHRoaXMgZG93biBhbnl3aGVyZSB+IGl0IGxpdmVzIGluIG15IGhlYWQuIiwgc2NvcmU6IDAgfSwKICAgICAgeyBsYWJlbDogIlNvbWUgcGllY2VzIGV4aXN0IGJ1dCB0aGV5IGFyZSBzY2F0dGVyZWQgYWNyb3NzIG5vdGVzLCBkZWNrcywgYW5kIHdlYnNpdGVzLiIsIHNjb3JlOiAxIH0sCiAgICAgIHsgbGFiZWw6ICJJIGhhdmUgYSB3cml0dGVuIGRvY3VtZW50IGJ1dCBpdCBpcyBvdXRkYXRlZCBvciBpbmNvbXBsZXRlLiIsIHNjb3JlOiAyIH0sCiAgICAgIHsgbGFiZWw6ICJJIGhhdmUgYSBjdXJyZW50IGRvY3VtZW50IHRoYXQgbW9zdGx5IGNhcHR1cmVzIHdobyB3ZSBhcmUuIiwgc2NvcmU6IDMgfSwKICAgICAgeyBsYWJlbDogIlllcyB+IGEgY29tcGxldGUsIGN1cnJlbnQgZG9jdW1lbnQgSSBjb3VsZCBoYW5kIHRvIGFueW9uZSB0b2RheS4iLCBzY29yZTogNCB9CiAgICBdCiAgfSwKICB7CiAgICBkaW06ICJCcmFuZCBWb2ljZSIsCiAgICBleWVicm93OiAiU2lnbmFsIFR3byDCtyBCcmFuZCBWb2ljZSIsCiAgICB0ZXh0OiAnIklmIHNvbWVvbmUgcmVhZCB5b3VyIGxhc3QgdGVuIHBvc3RzLCBlbWFpbHMsIGFuZCBhcnRpY2xlcywgd291bGQgdGhleSBzb3VuZCBsaWtlIHRoZSBzYW1lIGJ1c2luZXNzIHdyb3RlIHRoZW0gYWxsPyInLAogICAgbnVkZ2U6ICJBSSBkZWZhdWx0cyB0byBnZW5lcmljIG1hcmtldGluZyBsYW5ndWFnZSB1bmxlc3MgeW91IGdpdmUgaXQgeW91ciBzcGVjaWZpYyB2b2ljZS4gQ29uc2lzdGVuY3kgaXMgd2hhdCBtYWtlcyBjb250ZW50IGZlZWwgbGlrZSB5b3Vycywgbm90IHN0b2NrLiIsCiAgICBvcHRzOiBbCiAgICAgIHsgbGFiZWw6ICJIb25lc3RseSwgZXZlcnkgcGllY2Ugb2YgY29udGVudCBJIHB1Ymxpc2ggc291bmRzIGRpZmZlcmVudC4iLCBzY29yZTogMCB9LAogICAgICB7IGxhYmVsOiAiSSBoYXZlIGEgcm91Z2ggc2Vuc2Ugb2YgbXkgdm9pY2UgYnV0IG5vdGhpbmcgaXMgZG9jdW1lbnRlZC4iLCBzY29yZTogMSB9LAogICAgICB7IGxhYmVsOiAiTXkgdGVhbSBhbmQgSSBkbyBvdXIgYmVzdCBidXQgdGhlIHZvaWNlIGRyaWZ0cyB3aGVuIG90aGVycyB3cml0ZS4iLCBzY29yZTogMiB9LAogICAgICB7IGxhYmVsOiAiV2UgaGF2ZSBhIHZvaWNlIGd1aWRlIHRoYXQgd2UgbW9zdGx5IGZvbGxvdy4iLCBzY29yZTogMyB9LAogICAgICB7IGxhYmVsOiAiWWVzIH4gZG9jdW1lbnRlZCB2b2ljZSBndWlkZSwgYW5kIG91ciBjb250ZW50IGlzIGNvbnNpc3RlbnRseSB1cy4iLCBzY29yZTogNCB9CiAgICBdCiAgfSwKICB7CiAgICBkaW06ICJCcmFuZCBJbWFnZXJ5IiwKICAgIGV5ZWJyb3c6ICJTaWduYWwgVGhyZWUgwrcgQnJhbmQgSW1hZ2VyeSIsCiAgICB0ZXh0OiAnIkRvIHlvdSBoYXZlIGEgY29uc2lzdGVudCBsaWJyYXJ5IG9mIG9uLWJyYW5kIGltYWdlcyB5b3UgcmVhY2ggZm9yIHdoZW5ldmVyIHlvdSBwdWJsaXNoIGFueXRoaW5nPyInLAogICAgbnVkZ2U6ICJZb3VyIHRlYW0sIHlvdXIgd29yaywgeW91ciBsb2NhdGlvbiwgeW91ciBwcm9kdWN0cy4gV2hlbiBBSSBnZW5lcmF0ZXMgY29udGVudCB3aXRoIHRoZSB3cm9uZyB1bmlmb3Jtcywgd3Jvbmcgc2V0dGluZywgb3Igd3JvbmcgcGVvcGxlLCB0aGlzIGlzIHRoZSBnYXAgaXQgaXMgZmlsbGluZy4iLAogICAgb3B0czogWwogICAgICB7IGxhYmVsOiAiSSB1c2Ugc3RvY2sgcGhvdG9zIG9yIHdoYXRldmVyIEkgY2FuIGZpbmQgd2hlbiBJIG5lZWQgYW4gaW1hZ2UuIiwgc2NvcmU6IDAgfSwKICAgICAgeyBsYWJlbDogIkkgaGF2ZSBhIGZldyByZWFsIHBob3RvcyBidXQgcmVhY2ggZm9yIHN0b2NrIHdoZW4gSSBuZWVkIG1vcmUuIiwgc2NvcmU6IDEgfSwKICAgICAgeyBsYWJlbDogIkkgaGF2ZSBzb21lIGltYWdlcyBvZiBteSBhY3R1YWwgd29yayBidXQgbm90IGVub3VnaCB2YXJpZXR5LiIsIHNjb3JlOiAyIH0sCiAgICAgIHsgbGFiZWw6ICJJIGhhdmUgYSBkZWNlbnQgbGlicmFyeSBidXQgaXQgaXMgbm90IG9yZ2FuaXNlZCBvciBsYWJlbGxlZC4iLCBzY29yZTogMyB9LAogICAgICB7IGxhYmVsOiAiWWVzIH4gYSBjdXJhdGVkLCBvcmdhbmlzZWQsIG9uLWJyYW5kIGxpYnJhcnkgSSByZWFjaCBmb3IgZGFpbHkuIiwgc2NvcmU6IDQgfQogICAgXQogIH0sCiAgewogICAgZGltOiAiUHJvZHVjdHMgJiBTZXJ2aWNlcyIsCiAgICBleWVicm93OiAiU2lnbmFsIEZvdXIgwrcgUHJvZHVjdHMgJiBTZXJ2aWNlcyIsCiAgICB0ZXh0OiAnIkZvciBlYWNoIHRoaW5nIHlvdSBzZWxsLCBpcyB0aGVyZSBhIHdyaXR0ZW4gZG9jdW1lbnQgdGhhdCBuYW1lcyB3aGF0IGl0IGlzLCB3aG8gaXQgaXMgZm9yLCB3aGF0IGl0IGNvc3RzLCBhbmQgd2hhdCBtYWtlcyBpdCBiZXR0ZXI/IicsCiAgICBudWRnZTogIk5vdCB5b3VyIHdlYnNpdGUgY29weS4gVGhlIGludGVybmFsIHNvdXJjZSBkb2N1bWVudC4gVGhlIG9uZSBBSSByZWFkcyBiZWZvcmUgaXQgd3JpdGVzIGEgc2luZ2xlIHdvcmQgYWJvdXQgeW91ciBvZmZlcmluZ3MuIiwKICAgIG9wdHM6IFsKICAgICAgeyBsYWJlbDogIkl0IGlzIGFsbCBpbiBteSBoZWFkIH4gbm90aGluZyBpcyB3cml0dGVuIGRvd24gc3lzdGVtYXRpY2FsbHkuIiwgc2NvcmU6IDAgfSwKICAgICAgeyBsYWJlbDogIlNvbWUgb2ZmZXJpbmdzIGhhdmUgZGVzY3JpcHRpb25zLCBvdGhlcnMgZG8gbm90LiIsIHNjb3JlOiAxIH0sCiAgICAgIHsgbGFiZWw6ICJQcm9kdWN0IGluZm8gZXhpc3RzIG9uIG15IHdlYnNpdGUgYnV0IG5vdCBhcyBhIHdvcmtpbmcgZG9jdW1lbnQuIiwgc2NvcmU6IDIgfSwKICAgICAgeyBsYWJlbDogIk1vc3Qgb2ZmZXJpbmdzIGhhdmUgd3JpdHRlbiBkZXNjcmlwdGlvbnMgYnV0IHRoZXkgbmVlZCB1cGRhdGluZy4iLCBzY29yZTogMyB9LAogICAgICB7IGxhYmVsOiAiWWVzIH4gZXZlcnkgcHJvZHVjdCBhbmQgc2VydmljZSBoYXMgYSBjdXJyZW50IHdyaXR0ZW4gZG9jdW1lbnQuIiwgc2NvcmU6IDQgfQogICAgXQogIH0sCiAgewogICAgZGltOiAiQUkgQWRvcHRpb24iLAogICAgZXllYnJvdzogIlNpZ25hbCBGaXZlIMK3IEFJIEFkb3B0aW9uIiwKICAgIHRleHQ6ICciSG93IGFyZSB5b3UgYWN0dWFsbHkgdXNpbmcgQUkgdG9vbHMgaW4geW91ciBidXNpbmVzcyB0b2RheT8iJywKICAgIG51ZGdlOiAiQmUgaG9uZXN0LiBNb3N0IGZvdW5kZXJzIGFyZSBzdGlsbCBpbiB0aGUgZWFybHkgc3RhZ2VzLCBhbmQgdGhhdCBpcyB0aGUgbW9zdCBjb21tb24gc3RhcnRpbmcgcG9pbnQuIFRoZXJlIGlzIG5vIGp1ZGdtZW50IGluIHRoaXMgYW5zd2VyLiIsCiAgICBvcHRzOiBbCiAgICAgIHsgbGFiZWw6ICJJIGhhdmUgbm90IHN0YXJ0ZWQgdXNpbmcgQUkgaW4gbXkgYnVzaW5lc3MgeWV0LiIsIHNjb3JlOiAwIH0sCiAgICAgIHsgbGFiZWw6ICJJIGhhdmUgdHJpZWQgQ2hhdEdQVCBvciBzaW1pbGFyIGEgZmV3IHRpbWVzIGZvciBvbmUtb2ZmIHRhc2tzLiIsIHNjb3JlOiAxIH0sCiAgICAgIHsgbGFiZWw6ICJJIHVzZSBBSSB0b29scyBvY2Nhc2lvbmFsbHkgZm9yIGNvbnRlbnQgZHJhZnRpbmcgb3Igc3VtbWFyaWVzLiIsIHNjb3JlOiAyIH0sCiAgICAgIHsgbGFiZWw6ICJBSSBpcyBwYXJ0IG9mIG15IHdlZWtseSB3b3JrZmxvdyBpbiBzcGVjaWZpYyBhcmVhcyBvZiB0aGUgYnVzaW5lc3MuIiwgc2NvcmU6IDMgfSwKICAgICAgeyBsYWJlbDogIkFJIGlzIGludGVncmF0ZWQgaW50byBvdXIgZGFpbHkgb3BlcmF0aW9ucyBhY3Jvc3MgbXVsdGlwbGUgZnVuY3Rpb25zLiIsIHNjb3JlOiA0IH0KICAgIF0KICB9LAogIHsKICAgIGRpbTogIk9wZXJhdGlvbmFsIFN5c3RlbXMiLAogICAgZXllYnJvdzogIlNpZ25hbCBTaXggwrcgT3BlcmF0aW9uYWwgU3lzdGVtcyIsCiAgICB0ZXh0OiAnIkFjcm9zcyBzYWxlcywgZnVsZmlsbG1lbnQsIG9wZXJhdGlvbnMsIGFuZCBjdXN0b21lciBzZXJ2aWNlIH4gaG93IG11Y2ggZGVwZW5kcyBvbiB5b3UgcGVyc29uYWxseT8iJywKICAgIG51ZGdlOiAiQUkgcmVxdWlyZXMgc3lzdGVtcyB0byBwbHVnIGludG8uIFRoZSBtb3JlIHlvdXIgYnVzaW5lc3MgcnVucyBvbiB5b3UgYWxvbmUsIHRoZSBsZXNzIGxldmVyYWdlIGFueSBBSSB0b29sIGNhbiBnaXZlIHlvdSwgbm8gbWF0dGVyIGhvdyBwb3dlcmZ1bC4iLAogICAgb3B0czogWwogICAgICB7IGxhYmVsOiAiQWxsIGZvdXIgYXJlYXMgcnVuIG9uIG1lIH4gaWYgSSBzdGVwIGF3YXksIHRoaW5ncyBzdG9wLiIsIHNjb3JlOiAwIH0sCiAgICAgIHsgbGFiZWw6ICJNb3N0IHRoaW5ncyBydW4gb24gbWUgd2l0aCBzb21lIGhlbHAgaW4gb25lIG9yIHR3byBhcmVhcy4iLCBzY29yZTogMSB9LAogICAgICB7IGxhYmVsOiAiSGFsZiBteSBvcGVyYXRpb25zIGhhdmUgc3lzdGVtcywgaGFsZiBzdGlsbCBkZXBlbmQgb24gbWUuIiwgc2NvcmU6IDIgfSwKICAgICAgeyBsYWJlbDogIk1vc3QgYXJlYXMgaGF2ZSBzeXN0ZW1zIGJ1dCBJIGFtIHN0aWxsIHRoZSBib3R0bGVuZWNrIGluIG9uZSBvciB0d28uIiwgc2NvcmU6IDMgfSwKICAgICAgeyBsYWJlbDogIkFsbCBmb3VyIHBpbGxhcnMgaGF2ZSBzeXN0ZW1zIGFuZCBwZW9wbGUgdGhhdCBob2xkIHdpdGhvdXQgbXkgZGFpbHkgaW5wdXQuIiwgc2NvcmU6IDQgfQogICAgXQogIH0sCiAgewogICAgZGltOiAiQUkgRGlzY292ZXJhYmlsaXR5IiwKICAgIGV5ZWJyb3c6ICJTaWduYWwgU2V2ZW4gwrcgQUkgRGlzY292ZXJhYmlsaXR5IiwKICAgIHRleHQ6ICciV2hlbiBBSSBlbmdpbmVzIChDaGF0R1BULCBQZXJwbGV4aXR5LCBHb29nbGUgQUkgT3ZlcnZpZXdzKSBhbnN3ZXIgcXVlc3Rpb25zIGluIHlvdXIgaW5kdXN0cnksIGRvIHRoZXkgY2l0ZSB5b3VyIGJ1c2luZXNzPyInLAogICAgbnVkZ2U6ICJZb3VyIGZ1dHVyZSBjdXN0b21lcnMgYXJlIGluY3JlYXNpbmdseSBhc2tpbmcgQUkgZW5naW5lcyBmaXJzdC4gV2hldGhlciBBSSBrbm93cyB5b3VyIGJ1c2luZXNzIGV4aXN0cyB+IGFuZCB3aGF0IGl0IHNheXMgYWJvdXQgeW91IH4gaXMgYmVjb21pbmcgdGhlIG5ldyBmaXJzdCBpbXByZXNzaW9uLiIsCiAgICBvcHRzOiBbCiAgICAgIHsgbGFiZWw6ICJJIGhhdmUgbmV2ZXIgdGhvdWdodCB0byBjaGVjayB3aGV0aGVyIEFJIGtub3dzIG15IGJ1c2luZXNzIGV4aXN0cy4iLCBzY29yZTogMCB9LAogICAgICB7IGxhYmVsOiAiSSBoYXZlIGxvb2tlZCBhbmQgQUkgZW5naW5lcyBkbyBub3Qgc2VlbSB0byBrbm93IG15IGJ1c2luZXNzLiIsIHNjb3JlOiAxIH0sCiAgICAgIHsgbGFiZWw6ICJBSSBlbmdpbmVzIGtub3cgbXkgYnVzaW5lc3MgbmFtZSBidXQgbm90IHdoYXQgSSBhY3R1YWxseSBkby4iLCBzY29yZTogMiB9LAogICAgICB7IGxhYmVsOiAiQUkgZGVzY3JpYmVzIG15IGJ1c2luZXNzIGNvcnJlY3RseSBidXQgbXkgY29tcGV0aXRvcnMgZ2V0IGNpdGVkIG1vcmUuIiwgc2NvcmU6IDMgfSwKICAgICAgeyBsYWJlbDogIlllcyB+IEFJIGVuZ2luZXMgY2l0ZSBteSBidXNpbmVzcyBhcyBhbiBhdXRob3JpdHkgaW4gbXkgaW5kdXN0cnkuIiwgc2NvcmU6IDQgfQogICAgXQogIH0KXTsKCi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAovLyAgIFJFQURJTkcgQkFORFMKLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCmNvbnN0IEJBTkRTID0gWwogIHsKICAgIG1pbjogMCwgbWF4OiA3LAogICAgbmFtZTogIkZvdW5kYXRpb25zIiwKICAgIG1ldGVyUGN0OiAxOCwKICAgIGhlYWRsaW5lOiAiRm91bmRhdGlvbnMuIFRoZSBob25lc3QgPGVtPnN0YXJ0aW5nIHBvaW50LjwvZW0+IiwKICAgIGJvZHk6IFsKICAgICAgIlRoaXMgaXMgd2hlcmUgbW9zdCBBZnJpY2FuIGZvdW5kZXJzIHN0YW5kIHRvZGF5LCB3aGV0aGVyIHRoZXkga25vdyBpdCBvciBub3QuIFNvIHlvdSBoYXZlIGp1c3QgZG9uZSBzb21ldGhpbmcgbW9zdCBvZiB5b3VyIG1hcmtldCBoYXMgbm90OiB5b3UgaGF2ZSBuYW1lZCB5b3VyIHN0YXJ0aW5nIGxpbmUuIFRoYXQgaXMgbm90IGEgc21hbGwgYWN0LiBJdCBpcyB0aGUgZmlyc3QgbW92ZSBvZiBzb3ZlcmVpZ250eS4iLAogICAgICAiWW91ciBidXNpbmVzcyBpcyBmdWxsIG9mIHZhbHVlLCBleHBlcnRpc2UsIGFuZCBjdXN0b21lciB0cnVzdCBhbHJlYWR5LiBOb25lIG9mIHRoYXQgaXMgaW4gcXVlc3Rpb24uIFdoYXQgaXMgbWlzc2luZyBpcyB0aGUgZG9jdW1lbnRlZCBsYXllciB0aGF0IGxldHMgQUkgdG9vbHMsIHNlYXJjaCBlbmdpbmVzLCBhbmQgYW5zd2VyIGVuZ2luZXMgYWN0dWFsbHkgdW5kZXJzdGFuZCBhbmQgcmVwcmVzZW50IHlvdXIgYnVzaW5lc3MgYWNjdXJhdGVseS4gV2l0aG91dCBpdCwgZXZlcnkgQUkgb3V0cHV0IGlzIGdlbmVyaWMgYXQgYmVzdCBhbmQgd3JvbmcgYXQgd29yc3QuIiwKICAgICAgIlRoZSBuZXh0IG1vdmUgaXMgdG8gYnVpbGQgeW91ciBTb3VyY2Ugb2YgVHJ1dGg6IHRoZSBmb3VuZGF0aW9uYWwgc2V0IG9mIGRvY3VtZW50cyB0aGF0IHRlbGxzIEFJIGV4YWN0bHkgd2hvIHlvdSBhcmUsIGhvdyB5b3Ugc291bmQsIHdoYXQgeW91IHNlbGwsIGFuZCB3aGF0IG1ha2VzIHlvdSBkaWZmZXJlbnQuIE9uY2UgdGhhdCBleGlzdHMsIGV2ZXJ5IEFJIHRvb2wgeW91IHRvdWNoIHN0YXJ0cyB3b3JraW5nIGZvciB5b3VyIHNwZWNpZmljIGJ1c2luZXNzIGluc3RlYWQgb2YgZm9yIHRoZSBnZW5lcmljIG1hcmtldC4iCiAgICBdCiAgfSwKICB7CiAgICBtaW46IDgsIG1heDogMTQsCiAgICBuYW1lOiAiRW1lcmdpbmciLAogICAgbWV0ZXJQY3Q6IDQyLAogICAgaGVhZGxpbmU6ICJFbWVyZ2luZy4gU29tZSA8ZW0+cGllY2VzIGFyZSBpbiBwbGFjZS48L2VtPiIsCiAgICBib2R5OiBbCiAgICAgICJZb3UgaGF2ZSBzdGFydGVkLiBTb21lIGZvdW5kYXRpb25zIGV4aXN0LCB5b3VyIGF3YXJlbmVzcyBpcyBzaGFycGVyIHRoYW4gbW9zdCBmb3VuZGVycyBpbiB5b3VyIG1hcmtldCwgYW5kIHlvdSBhcmUgY2xlYXJseSBhbHJlYWR5IHRoaW5raW5nIGFib3V0IHRoaXMgY29udmVyc2F0aW9uLiBUaGF0IHB1dHMgeW91IGFoZWFkIG9mIHRoZSB3YWl0LWFuZC1zZWUgY2FtcCBieSBhIHJlYWwgbWFyZ2luLiIsCiAgICAgICJUaGUgZ2FwIG5vdyBpcyBjb25zaXN0ZW5jeS4gU29tZSBwaWVjZXMgb2YgeW91ciBmb3VuZGF0aW9uIGV4aXN0LCBvdGhlcnMgYXJlIHNjYXR0ZXJlZCBhY3Jvc3MgZHJpdmVzIGFuZCBkb2N1bWVudHMsIGFuZCBzb21lIGhhdmUgbm90IGJlZW4gd3JpdHRlbiBkb3duIGF0IGFsbC4gQUkgdG9vbHMgYXJlIGdpdmluZyB5b3UgcGFydGlhbCB2YWx1ZSBidXQgY2Fubm90IHlldCBwcm9kdWNlIGNvbnRlbnQsIGNpdGF0aW9ucywgYW5kIG91dHB1dHMgdGhhdCBmZWVsIHJlbGlhYmx5IGFuZCBjb25zaXN0ZW50bHkgeW91cnMuIiwKICAgICAgIllvdXIgbmV4dCBtb3ZlIGlzIHRvIHRha2UgaW52ZW50b3J5IG9mIHdoYXQgeW91IGFscmVhZHkgaGF2ZSwgaWRlbnRpZnkgd2hhdCBpcyBtaXNzaW5nLCBhbmQgY29uc29saWRhdGUgZXZlcnl0aGluZyBpbnRvIG9uZSBTb3VyY2Ugb2YgVHJ1dGggeW91ciB3aG9sZSBidXNpbmVzcyBjYW4gYWN0dWFsbHkgdXNlLiBUaGUgbWF0ZXJpYWxzIGV4aXN0LiBUaGV5IGp1c3QgbmVlZCB0byBiZSBicm91Z2h0IGludG8gb25lIGNvaGVyZW50IHBsYWNlLiIKICAgIF0KICB9LAogIHsKICAgIG1pbjogMTUsIG1heDogMjEsCiAgICBuYW1lOiAiRXF1aXBwZWQiLAogICAgbWV0ZXJQY3Q6IDY4LAogICAgaGVhZGxpbmU6ICJFcXVpcHBlZC4gWW91ciBmb3VuZGF0aW9uIDxlbT5ob2xkcyB3ZWlnaHQuPC9lbT4iLAogICAgYm9keTogWwogICAgICAiWW91ciBidXNpbmVzcyBoYXMgcmVhbCBzdHJ1Y3R1cmUuIEFJIGNhbiBhbHJlYWR5IHdvcmsgZm9yIHlvdSBpbiBtZWFuaW5nZnVsIHdheXMsIGFuZCB0aGUgZm91bmRhdGlvbnMgYXJlIG1vc3RseSBpbiBwbGFjZS4gWW91IGFyZSBub3QgaW4gdGhlIHJlYWRpbmVzcyBjb252ZXJzYXRpb24gYW55bW9yZSB+IHlvdSBhcmUgaW4gdGhlIGxldmVyYWdlIGNvbnZlcnNhdGlvbi4iLAogICAgICAiV2hhdCBzaXRzIGFoZWFkIG5vdyBpcyBhbXBsaWZpY2F0aW9uLiBIb3cgZG8gd2UgbWFrZSBzdXJlIEFJIGVuZ2luZXMsIHNlYXJjaCBlbmdpbmVzLCBjdXN0b21lcnMsIGFuZCBwYXJ0bmVycyBjYW4gZmluZCwgY2l0ZSwgYW5kIHRydXN0IHlvdXIgYnVzaW5lc3MgYXQgc2NhbGU/IEhvdyBkbyB3ZSB0dXJuIHRoZSBmb3VuZGF0aW9uIHlvdSBoYXZlIGJ1aWx0IGludG8gYXV0aG9yaXR5IHRoYXQgY29tcG91bmRzIGluIHRoZSBtYXJrZXRzIHlvdSBzZXJ2ZT8iLAogICAgICAiVGhlIG5leHQgbW92ZSBpcyB0d28tcGFydC4gRmlyc3QsIGF1ZGl0IHdoZXJlIHRoZSBzbWFsbCByZW1haW5pbmcgZ2FwcyBsaXZlIHNvIHRoZSBmb3VuZGF0aW9uIGlzIGZ1bGx5IHNlYWxlZC4gU2Vjb25kLCBidWlsZCB0aGUgZGlzY292ZXJhYmlsaXR5IGFuZCBjaXRhdGlvbiBsYXllciBvbiB0b3AgfiB0aGUgd29yayB0aGF0IHRha2VzIHlvdSBmcm9tIEFJLXJlYWR5IHRvIEFJLWNpdGVkIGFzIGFuIGF1dGhvcml0eSBpbiB5b3VyIGluZHVzdHJ5LiIKICAgIF0KICB9LAogIHsKICAgIG1pbjogMjIsIG1heDogMjgsCiAgICBuYW1lOiAiU292ZXJlaWduIiwKICAgIG1ldGVyUGN0OiA5MiwKICAgIGhlYWRsaW5lOiAiU292ZXJlaWduLiBZb3UgYXJlIGFoZWFkIG9mIDxlbT5tb3N0IG9mIHRoZSBtYXJrZXQuPC9lbT4iLAogICAgYm9keTogWwogICAgICAiWW91IGFyZSBvcGVyYXRpbmcgaW4gYSBwb3N0dXJlIG1vc3QgZm91bmRlcnMgaW4geW91ciBtYXJrZXQgaGF2ZSBub3QgeWV0IGltYWdpbmVkLiBZb3VyIGZvdW5kYXRpb24gaXMgYnVpbHQsIHlvdXIgc3lzdGVtcyBob2xkIHdpdGhvdXQgeW91ciBkYWlseSBwcmVzZW5jZSwgYW5kIHlvdSBoYXZlIGFscmVhZHkgdGhvdWdodCB0aHJvdWdoIHRoZSBkaXNjb3ZlcmFiaWxpdHkgcXVlc3Rpb24gdGhhdCBtb3N0IG9mIHlvdXIgcGVlcnMgaGF2ZSBuZXZlciBoZWFyZCB0aGUgbGFuZ3VhZ2UgZm9yLiIsCiAgICAgICJBdCB0aGlzIGxldmVsLCB0aGUgY29udmVyc2F0aW9uIGlzIG5vdCBhYm91dCByZWFkaW5lc3MuIEl0IGlzIGFib3V0IGxldmVyYWdlIGF0IHNjYWxlLiBXaGVyZSBkbyB3ZSBkZXBsb3kgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZSB0byBjb21wb3VuZCB2aXNpYmlsaXR5LCBhdXRob3JpdHksIGNpdGF0aW9uLCBhbmQgcmV2ZW51ZSBpbiB0aGUgbmV4dCB0d2VsdmUgbW9udGhzPyIsCiAgICAgICJZb3VyIG5leHQgbW92ZSBpcyBzdHJhdGVnaWMsIG5vdCBmb3VuZGF0aW9uYWwuIFRoZSBTb3ZlcmVpZ24gQUkgQXVkaXQgYXQgeW91ciBsZXZlbCBpcyBsZXNzIGFib3V0IGRpYWdub3NpcyBhbmQgbW9yZSBhYm91dCBpZGVudGlmeWluZyB0aGUgdHdvIG9yIHRocmVlIGhpZ2hlc3QtbGV2ZXJhZ2UgbW92ZXMgdGhhdCB0dXJuIHRoZSBhc3NldCB5b3UgaGF2ZSBhbHJlYWR5IGJ1aWx0IGludG8gYSBjYXRlZ29yeS1kZWZpbmluZyBwcmVzZW5jZS4iCiAgICBdCiAgfQpdOwoKLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCi8vICAgU1RBVEUgJiBDT1JFIEZVTkNUSU9OUwovLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKbGV0IGN1cnJlbnRRID0gMDsKbGV0IGFuc3dlcnMgPSBuZXcgQXJyYXkoUVVFU1RJT05TLmxlbmd0aCkuZmlsbChudWxsKTsKCmZ1bmN0aW9uIHNob3dTdGFnZShpZCkgewogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdGFnZScpLmZvckVhY2gocyA9PiBzLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7Cn0KCmZ1bmN0aW9uIHN0YXJ0QXNzZXNzbWVudCgpIHsKICBjdXJyZW50USA9IDA7CiAgYW5zd2VycyA9IG5ldyBBcnJheShRVUVTVElPTlMubGVuZ3RoKS5maWxsKG51bGwpOwogIHNob3dTdGFnZSgnc3RhZ2UtYXNzZXNzJyk7CiAgcmVuZGVyUXVlc3Rpb24oKTsKfQoKZnVuY3Rpb24gcmVuZGVyUXVlc3Rpb24oKSB7CiAgY29uc3QgcSA9IFFVRVNUSU9OU1tjdXJyZW50UV07CiAgY29uc3QgcHJvZ1BjdCA9ICgoY3VycmVudFEpIC8gUVVFU1RJT05TLmxlbmd0aCkgKiAxMDA7CgogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9nRGltJykudGV4dENvbnRlbnQgPSBxLmV5ZWJyb3c7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dOdW0nKS50ZXh0Q29udGVudCA9IGN1cnJlbnRRICsgMTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ0ZpbGwnKS5zdHlsZS53aWR0aCA9IHByb2dQY3QgKyAnJSc7CgogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxRXllYnJvdycpLnRleHRDb250ZW50ID0gcS5leWVicm93OwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxVGV4dCcpLnRleHRDb250ZW50ID0gcS50ZXh0OwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxTnVkZ2UnKS50ZXh0Q29udGVudCA9IHEubnVkZ2U7CgogIGNvbnN0IGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcHRzQm94Jyk7CiAgYm94LmlubmVySFRNTCA9ICcnOwogIHEub3B0cy5mb3JFYWNoKChvcHQsIGlkeCkgPT4gewogICAgY29uc3QgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICBidG4uY2xhc3NOYW1lID0gJ29wdCc7CiAgICBpZiAoYW5zd2Vyc1tjdXJyZW50UV0gPT09IGlkeCkgYnRuLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7CiAgICBidG4udGV4dENvbnRlbnQgPSBvcHQubGFiZWw7CiAgICBidG4ub25jbGljayA9ICgpID0+IHNlbGVjdE9wdGlvbihpZHgpOwogICAgYm94LmFwcGVuZENoaWxkKGJ0bik7CiAgfSk7CgogIGNvbnN0IGJhY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuQmFjaycpOwogIGlmIChjdXJyZW50USA9PT0gMCkgYmFja0J0bi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICBlbHNlIGJhY2tCdG4uY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7Cn0KCmZ1bmN0aW9uIHNlbGVjdE9wdGlvbihpZHgpIHsKICBhbnN3ZXJzW2N1cnJlbnRRXSA9IGlkeDsKICAvLyBWaXN1YWwgZmVlZGJhY2sgYmVmb3JlIGFkdmFuY2luZwogIGNvbnN0IGJ1dHRvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcub3B0Jyk7CiAgYnV0dG9ucy5mb3JFYWNoKChiLCBpKSA9PiB7CiAgICBpZiAoaSA9PT0gaWR4KSBiLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7CiAgICBlbHNlIGIuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKTsKICB9KTsKCiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBpZiAoY3VycmVudFEgPCBRVUVTVElPTlMubGVuZ3RoIC0gMSkgewogICAgICBjdXJyZW50USsrOwogICAgICByZW5kZXJRdWVzdGlvbigpOwogICAgfSBlbHNlIHsKICAgICAgLy8gRmluYWwgcXVlc3Rpb24gYW5zd2VyZWQgfiBzaG93IHJlYWRpbmcKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dGaWxsJykuc3R5bGUud2lkdGggPSAnMTAwJSc7CiAgICAgIHNldFRpbWVvdXQoc2hvd1JlYWRpbmcsIDMyMCk7CiAgICB9CiAgfSwgMzIwKTsKfQoKZnVuY3Rpb24gcHJldlF1ZXN0aW9uKCkgewogIGlmIChjdXJyZW50USA+IDApIHsKICAgIGN1cnJlbnRRLS07CiAgICByZW5kZXJRdWVzdGlvbigpOwogIH0KfQoKZnVuY3Rpb24gY2FsY3VsYXRlVG90YWwoKSB7CiAgbGV0IHRvdGFsID0gMDsKICBhbnN3ZXJzLmZvckVhY2goKGEsIGkpID0+IHsKICAgIGlmIChhICE9PSBudWxsKSB0b3RhbCArPSBRVUVTVElPTlNbaV0ub3B0c1thXS5zY29yZTsKICB9KTsKICByZXR1cm4gdG90YWw7Cn0KCmZ1bmN0aW9uIGdldEJhbmQoc2NvcmUpIHsKICByZXR1cm4gQkFORFMuZmluZChiID0+IHNjb3JlID49IGIubWluICYmIHNjb3JlIDw9IGIubWF4KTsKfQoKZnVuY3Rpb24gc2hvd1JlYWRpbmcoKSB7CiAgY29uc3QgdG90YWwgPSBjYWxjdWxhdGVUb3RhbCgpOwogIGNvbnN0IGJhbmQgPSBnZXRCYW5kKHRvdGFsKTsKCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdGFsU2NvcmUnKS50ZXh0Q29udGVudCA9IHRvdGFsOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYW5kTmFtZScpLnRleHRDb250ZW50ID0gYmFuZC5uYW1lOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZXRlckZpbGwnKS5zdHlsZS53aWR0aCA9ICcwJSc7CgogIGNvbnN0IGJvZHlFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWFkaW5nQm9keScpOwogIGxldCBodG1sID0gJzxoMj4nICsgYmFuZC5oZWFkbGluZSArICc8L2gyPic7CiAgYmFuZC5ib2R5LmZvckVhY2gocCA9PiB7IGh0bWwgKz0gJzxwPicgKyBwICsgJzwvcD4nOyB9KTsKICBib2R5RWwuaW5uZXJIVE1MID0gaHRtbDsKCiAgLy8gRGltZW5zaW9uIGJyZWFrZG93bgogIGNvbnN0IGRpbVJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGltUm93cycpOwogIGRpbVJvd3MuaW5uZXJIVE1MID0gJyc7CiAgUVVFU1RJT05TLmZvckVhY2goKHEsIGkpID0+IHsKICAgIGNvbnN0IHNjID0gYW5zd2Vyc1tpXSAhPT0gbnVsbCA/IHEub3B0c1thbnN3ZXJzW2ldXS5zY29yZSA6IDA7CiAgICBjb25zdCBwY3QgPSAoc2MgLyA0KSAqIDEwMDsKICAgIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgcm93LmNsYXNzTmFtZSA9ICdkaW0tcm93JzsKICAgIHJvdy5pbm5lckhUTUwgPQogICAgICAnPHNwYW4gY2xhc3M9ImRpbS1uYW1lIj4nICsgcS5kaW0gKyAnPC9zcGFuPicgKwogICAgICAnPGRpdiBjbGFzcz0iZGltLWJhciI+PGRpdiBjbGFzcz0iZGltLWJhci1maWxsIiBzdHlsZT0id2lkdGg6JyArIHBjdCArICclIj48L2Rpdj48L2Rpdj4nICsKICAgICAgJzxzcGFuIGNsYXNzPSJkaW0tc2NvcmUiPicgKyBzYyArICcgLyA0PC9zcGFuPic7CiAgICBkaW1Sb3dzLmFwcGVuZENoaWxkKHJvdyk7CiAgfSk7CgogIC8vIFdoYXRzQXBwIGxpbmsKICBjb25zdCB3YU1zZyA9ICdIZWxsbywgSSBqdXN0IHRvb2sgVGhlIEhhbmRyYWlscyBvbiB0aGUgU292ZXJlaWduIENvZGV4LiBNeSByZWFkaW5nIHdhcyAnICsgYmFuZC5uYW1lICsgJyAoJyArIHRvdGFsICsgJyBvZiAyOCkuIEkgd291bGQgbGlrZSB0byBib29rIHRoZSBTb3ZlcmVpZ24gQUkgQXVkaXQgY29udmVyc2F0aW9uLic7CiAgLy8gVWdhbmRhIFdoYXRzQXBwIG51bWJlciB+IHZlcmlmaWVkCiAgY29uc3Qgd2FOdW1iZXIgPSAnMjU2Nzc2MDAwMzg0JzsKICBjb25zdCB3YVVybCA9ICdodHRwczovL3dhLm1lLycgKyB3YU51bWJlciArICc/dGV4dD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHdhTXNnKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FCdG4nKS5ocmVmID0gd2FVcmw7CgogIHNob3dTdGFnZSgnc3RhZ2UtcmVhZGluZycpOwoKICAvLyBBbmltYXRlIG1ldGVyIGFmdGVyIHN0YWdlIHNob3dzCiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWV0ZXJGaWxsJykuc3R5bGUud2lkdGggPSBiYW5kLm1ldGVyUGN0ICsgJyUnOwogIH0sIDI1MCk7Cn0KCmZ1bmN0aW9uIHJlc2V0QXNzZXNzbWVudCgpIHsKICBzaG93U3RhZ2UoJ3N0YWdlLXdlbGNvbWUnKTsKICBjdXJyZW50USA9IDA7CiAgYW5zd2VycyA9IG5ldyBBcnJheShRVUVTVElPTlMubGVuZ3RoKS5maWxsKG51bGwpOwp9Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+","embed":""}
◆The Sovereign Codex
← The Codex Home
The Handrails · AI Readiness Diagnostic
Seven honest questions.
Two minutes.
AI is a generalist. Your business is a specialist. The question is not whether AI will reshape your market. It is whether your business is built to be found, understood, and trusted by the engines now answering your customers' questions. The Handrails surfaces the seven signals that decide.
Two Minutes
Seven Questions
Free
No Email Required
Our Promise
No score-shaming. No fear-close. No countdown timer. This diagnostic gives you a real reading of where you stand today, names what is working, and names what is missing. The reading is for you. What you do with it is your call.
Signal One · Brand Identity
Question 1 of 7
Your Reading
Foundations
Score · 0 of 28
Foundations
Emerging
Equipped
Sovereign
Signal-by-Signal Breakdown
Your Invitation
Walk this in real conversation.
The Handrails surfaced where you stand. The Sovereign AI Audit walks your whole business with you ~ thirty minutes, free, no pitch ~ and shows you exactly what your Source of Truth would look like, built for your specific business, in your voice, on your timeline.
Book the Sovereign AI Audit30 Minutes · Free · No Pitch