{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+VGhlIE1FIEJPU1MgQXNzZXNzbWVudCB+IFRoZSBTdW1taXQgfiBTaGUgRXZvbHZlcyBBZnJpY2E8L3RpdGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQmVmb3JlIHlvdSBidWlsZCB5b3VyIGVtcGlyZSB+IGRpc2NvdmVyIHdobyB5b3UgYXJlLiBUaGUgTUUgQk9TUyBBc3Nlc3NtZW50IGJ5IFRoZSBTSEUgRS1Cb3NzIFNvbHV0aW9uaXN0LiBGaXZlIGRpbWVuc2lvbnMuIEZpdmUgc2Vhc29ucy4gT25lIHNvdmVyZWlnbiBzZWxmLiI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMEQyMjQ3Ij4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Db3Jtb3JhbnQrR2FyYW1vbmQ6aXRhbCx3Z2h0QDAsMzAwOzAsNDAwOzAsNjAwOzAsNzAwOzEsMzAwOzEsNDAwOzEsNjAwJmZhbWlseT1PdXRmaXQ6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KCjxzdHlsZT4KLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIFJPT1QgJiBSRVNFVArilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQpodG1sIHsgc2Nyb2xsLWJlaGF2aW9yOnNtb290aDsgfQoKOnJvb3QgewogIC0tbmF2eTogICAgICAjMUIzQTZCOwogIC0tbmF2eS1kZWVwOiAjMEQyMjQ3OwogIC0tbmF2eS1taWQ6ICAjMkM1MjgyOwogIC0tZ29sZDogICAgICAjQzk5NTFBOwogIC0tZ29sZDI6ICAgICAjRThCNDMyOwogIC0tZ29sZDM6ICAgICAjRjVEMDYwOwogIC0tdGVhbDogICAgICAjMkM3QTdCOwogIC0td2hpdGU6ICAgICAjRkZGRkZGOwogIC0tZ3JleS1taWQ6ICAjNzE4MDk2OwogIC0tZGFyazogICAgICAjMDcwRDFBOwoKICAvKiBTZWFzb24gY29sb3VycyAqLwogIC0tc2VlZDogICAgICAjNEE4QzZGOwogIC0tcm9vdHM6ICAgICAjMkM3QTdCOwogIC0tdHJ1bms6ICAgICAjMkI2Q0IwOwogIC0tYmxvb206ICAgICAjNkI0NkMxOwogIC0tc292ZXJlaWduOiAjQzk5NTFBOwp9Cgpib2R5IHsKICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgYmFja2dyb3VuZDogdmFyKC0tZGFyayk7CiAgY29sb3I6IHZhcigtLXdoaXRlKTsKICBvdmVyZmxvdy14OiBoaWRkZW47CiAgbWluLWhlaWdodDogMTAwdmg7Cn0KCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBCQUNLR1JPVU5ECuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwouYmcgewogIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IHotaW5kZXg6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOwogIGJhY2tncm91bmQ6CiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAxNSUgMTAlLCByZ2JhKDI3LDU4LDEwNywuOSkgMCUsIHRyYW5zcGFyZW50IDU1JSksCiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4NSUgOTAlLCByZ2JhKDIwMSwxNDksMjYsLjE1KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSA1MCUsIHJnYmEoNDQsMTIyLDEyMywuMDgpIDAlLCB0cmFuc3BhcmVudCA3MCUpLAogICAgIzA3MEQxQTsKfQoKLmZsb2F0aWVzIHsgcG9zaXRpb246Zml4ZWQ7IGluc2V0OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB9Ci5mbG9hdGllICB7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206LTQwcHg7IGFuaW1hdGlvbjpmbG9hdFVwIGxpbmVhciBpbmZpbml0ZTsgb3BhY2l0eTowOyB9CkBrZXlmcmFtZXMgZmxvYXRVcCB7CiAgMCUgIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgcm90YXRlKC0zZGVnKTsgb3BhY2l0eTowOyB9CiAgOCUgIHsgb3BhY2l0eTouMjsgfSA5MiV7IG9wYWNpdHk6LjA3OyB9CiAgMTAwJXsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTExMHZoKSByb3RhdGUoOGRlZyk7IG9wYWNpdHk6MDsgfQp9CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgV1JBUFBFUgrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KLndyYXAgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTA7CiAgbWluLWhlaWdodDogMTAwdmg7CiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBwYWRkaW5nOiAwIDFyZW0gNXJlbTsKfQoKLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIElOVFJPIFNDUkVFTgrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KLmludHJvLXNjcmVlbiB7CiAgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogNjQwcHg7CiAgcGFkZGluZzogM3JlbSAxLjVyZW0gMnJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgYW5pbWF0aW9uOiBmYWRlSW4gLjhzIGVhc2UgZm9yd2FyZHM7Cn0KQGtleWZyYW1lcyBmYWRlSW4geyBmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxNnB4KX0gdG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfSB9CgouaW50cm8tYnJhbmQgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IC41cmVtOwogIHBhZGRpbmc6IC4zMnJlbSAxcmVtOyBib3JkZXItcmFkaXVzOiAyMHB4OwogIGJhY2tncm91bmQ6IHJnYmEoMjAxLDE0OSwyNiwuMSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMjgpOwogIGZvbnQtc2l6ZTogLjZyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAuMmVtOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1nb2xkMik7IG1hcmdpbi1ib3R0b206IDEuNXJlbTsKfQoKLmludHJvLWNyb3duIHsKICBmb250LXNpemU6IDMuNXJlbTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IC44cmVtOwogIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDI0cHggcmdiYSgyMDEsMTQ5LDI2LC45KSk7CiAgYW5pbWF0aW9uOiBjcm93blB1bHNlIDNzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9CkBrZXlmcmFtZXMgY3Jvd25QdWxzZSB7CiAgMCUsMTAwJXsgZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAyMHB4IHJnYmEoMjAxLDE0OSwyNiwuNykpOyB0cmFuc2Zvcm06c2NhbGUoMSk7IH0KICA1MCUgICAgeyBmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDQwcHggcmdiYSgyMDEsMTQ5LDI2LDEpKTsgIHRyYW5zZm9ybTpzY2FsZSgxLjA2KTsgfQp9CgouaW50cm8tc2NyZWVuIGgxIHsKICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogIGZvbnQtc2l6ZTogY2xhbXAoMi4ycmVtLCA2dncsIDMuNXJlbSk7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgbGluZS1oZWlnaHQ6IDEuMDg7IGNvbG9yOiB2YXIoLS13aGl0ZSk7IG1hcmdpbi1ib3R0b206IC41cmVtOwp9Ci5pbnRyby1zY3JlZW4gaDEgZW0geyBjb2xvcjogdmFyKC0tZ29sZDIpOyBmb250LXN0eWxlOiBpdGFsaWM7IH0KCi5pbnRyby10YWdsaW5lIHsKICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogIGZvbnQtc2l6ZTogMS4wNXJlbTsgZm9udC1zdHlsZTogaXRhbGljOwogIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC42KTsgbWFyZ2luLWJvdHRvbTogMS40cmVtOyBsaW5lLWhlaWdodDogMS42NTsKfQoKLmludHJvLWFjcm9ueW0gewogIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogLjM1cmVtOwogIG1hcmdpbjogMS4ycmVtIGF1dG87IG1heC13aWR0aDogNDIwcHg7IHRleHQtYWxpZ246IGxlZnQ7Cn0KLmFjci1yb3cgewogIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgZ2FwOiAuNnJlbTsKICBwYWRkaW5nOiAuNXJlbSAuOHJlbTsgYm9yZGVyLXJhZGl1czogOXB4OwogIGJhY2tncm91bmQ6IHJnYmEoMjcsNTgsMTA3LC4yNSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA3KTsKfQouYWNyLWxldHRlciB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6MS44cmVtOyBmb250LXdlaWdodDo3MDA7IGNvbG9yOnZhcigtLWdvbGQpOyB3aWR0aDoxLjRyZW07IGZsZXgtc2hyaW5rOjA7IGxpbmUtaGVpZ2h0OjE7IH0KLmFjci13b3JkcyAgeyBmb250LXNpemU6Ljc4cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7IGxpbmUtaGVpZ2h0OjEuNTsgfQouYWNyLXdvcmRzIHN0cm9uZyB7IGNvbG9yOnZhcigtLWdvbGQyKTsgZm9udC13ZWlnaHQ6NjAwOyB9CgouaW50cm8tcGhpbG9zb3BoeSB7CiAgZm9udC1zaXplOiAuODJyZW07IGNvbG9yOiB2YXIoLS1ncmV5LW1pZCk7IGxpbmUtaGVpZ2h0OiAxLjg7CiAgbWF4LXdpZHRoOiA1MjBweDsgbWFyZ2luOiAxcmVtIGF1dG8gMS42cmVtOwp9CgovKiBTZWFzb24gcHJldmlld3MgKi8KLnNlYXNvbnMtc3RyaXAgewogIGRpc3BsYXk6IGZsZXg7IGdhcDogLjRyZW07IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmbGV4LXdyYXA6IHdyYXA7CiAgbWFyZ2luLWJvdHRvbTogMS44cmVtOwp9Ci5zZWFzb24tcGlwIHsKICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IC4zNXJlbTsKICBwYWRkaW5nOiAuM3JlbSAuN3JlbTsgYm9yZGVyLXJhZGl1czogMjBweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTsKICBmb250LXNpemU6IC42cmVtOyBsZXR0ZXItc3BhY2luZzogLjFlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKLmJlZ2luLWJ0biB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogLjZyZW07CiAgcGFkZGluZzogLjk1cmVtIDIuNHJlbTsgYm9yZGVyLXJhZGl1czogMTJweDsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgI0E4N0ExMik7CiAgY29sb3I6IHZhcigtLWRhcmspOyBib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjsKICBmb250LXNpemU6IC45NXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY3Vyc29yOiBwb2ludGVyOwogIGxldHRlci1zcGFjaW5nOiAuMDRlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBib3gtc2hhZG93OiAwIDZweCAyOHB4IHJnYmEoMjAxLDE0OSwyNiwuNCk7IHRyYW5zaXRpb246IGFsbCAuMjJzOwp9Ci5iZWdpbi1idG46aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6IDAgMTBweCAzNnB4IHJnYmEoMjAxLDE0OSwyNiwuNTUpOyB9CgoubWlycm9yLXF1b3RlIHsKICBtYXJnaW4tdG9wOiAxLjhyZW07IGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgZm9udC1zaXplOiAuOTVyZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsKICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMyk7IGxpbmUtaGVpZ2h0OiAxLjc7Cn0KLm1pcnJvci1xdW90ZSBzcGFuIHsgY29sb3I6IHJnYmEoMjAxLDE0OSwyNiwuNSk7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IC42OHJlbTsgZm9udC1zdHlsZTogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogLjEyZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi10b3A6IC4zcmVtOyB9CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgUFJPR1JFU1MgQkFSCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwoucHJvZ3Jlc3Mtd3JhcCB7CiAgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogNjQwcHg7CiAgcGFkZGluZzogMS4ycmVtIDEuNXJlbSAuOHJlbTsKfQoucHJvZ3Jlc3MtdG9wIHsKICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206IC40cmVtOwp9Ci5wcm9ncmVzcy10b3Agc3BhbiB7IGZvbnQtc2l6ZTogLjZyZW07IGxldHRlci1zcGFjaW5nOiAuMTVlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWdyZXktbWlkKTsgfQoucHJvZ3Jlc3MtdG9wIC5wLWNvdW50IHsgY29sb3I6IHZhcigtLWdvbGQpOyBmb250LXdlaWdodDogNjAwOyB9Ci5wcm9ncmVzcy10cmFjayB7IGhlaWdodDogM3B4OyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wNyk7IGJvcmRlci1yYWRpdXM6IDRweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoucHJvZ3Jlc3MtZmlsbCAgeyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbmF2eS1taWQpLCB2YXIoLS1nb2xkKSk7IGJvcmRlci1yYWRpdXM6IDRweDsgdHJhbnNpdGlvbjogd2lkdGggLjVzIGVhc2U7IHdpZHRoOiAwJTsgfQoKLyogZGltZW5zaW9uIGluZGljYXRvciAqLwouZGltLWluZGljYXRvciB7CiAgZGlzcGxheTogZmxleDsgZ2FwOiAuMzVyZW07IG1hcmdpbi10b3A6IC42cmVtOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQouZGltLWRvdCB7CiAgd2lkdGg6IDI4cHg7IGhlaWdodDogM3B4OyBib3JkZXItcmFkaXVzOiAzcHg7CiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMSk7IHRyYW5zaXRpb246IGJhY2tncm91bmQgLjRzOwp9Ci5kaW0tZG90LmFjdGl2ZSAgIHsgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7IH0KLmRpbS1kb3QuY29tcGxldGUgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwxNDksMjYsLjM1KTsgfQoKLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIFFVRVNUSU9OIENBUkQK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCi5xLXN0YWdlIHsgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogNjQwcHg7IHBhZGRpbmc6IDAgMCAuNXJlbTsgfQoKLnEtY2FyZCB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgyNyw1OCwxMDcsLjQ1KSAwJSwgcmdiYSgxMywzNCw3MSwuODUpIDEwMCUpOwogIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMjIpOyBib3JkZXItcmFkaXVzOiAxOHB4OwogIHBhZGRpbmc6IDEuOHJlbSAxLjZyZW0gMS40cmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOwogIGFuaW1hdGlvbjogY2FyZEluIC40cyBlYXNlIGZvcndhcmRzOwp9CkBrZXlmcmFtZXMgY2FyZEluIHsgZnJvbXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTRweCl9IHRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0gfQoKLnEtZGltLWxhYmVsIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAuNHJlbTsKICBwYWRkaW5nOiAuMjVyZW0gLjc1cmVtOyBib3JkZXItcmFkaXVzOiAyMHB4OwogIGZvbnQtc2l6ZTogLjU4cmVtOyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXItc3BhY2luZzogLjE4ZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbWFyZ2luLWJvdHRvbTogLjdyZW07Cn0KLnEtbnVtIHsgZm9udC1zaXplOiAuNjJyZW07IGNvbG9yOiB2YXIoLS1ncmV5LW1pZCk7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAuMjVyZW07IH0KLnEtdGV4dCB7CiAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICBmb250LXNpemU6IDEuNHJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXdoaXRlKTsKICBsaW5lLWhlaWdodDogMS40MjsgbWFyZ2luLWJvdHRvbTogMS40cmVtOwp9CgovKiBhbnN3ZXJzICovCi5hbnN3ZXJzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAuNXJlbTsgfQouYW5zLWJ0biB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogLjg1cmVtOwogIHBhZGRpbmc6IC44NXJlbSAxcmVtOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7CiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDkpOyBib3JkZXItcmFkaXVzOiAxMHB4OwogIGN1cnNvcjogcG9pbnRlcjsgdGV4dC1hbGlnbjogbGVmdDsgdHJhbnNpdGlvbjogYWxsIC4yczsgd2lkdGg6IDEwMCU7Cn0KLmFucy1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI3LDU4LDEwNywuNSk7IGJvcmRlci1jb2xvcjogcmdiYSgyMDEsMTQ5LDI2LC4zNSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpOyB9Ci5hbnMtYnRuLnNlbGVjdGVkIHsgYmFja2dyb3VuZDogcmdiYSgyMDEsMTQ5LDI2LC4xNCk7IGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7IH0KLmFucy1idG4uc2VsZWN0ZWQgLmFucy1sdHIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsgY29sb3I6IHZhcigtLWRhcmspOyBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOyB9CgouYW5zLWx0ciB7CiAgbWluLXdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IGJvcmRlci1yYWRpdXM6IDZweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDI3LDU4LDEwNywuOCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMyk7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgZm9udC1zaXplOiAuNjhyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1nb2xkKTsKICBmbGV4LXNocmluazogMDsgbWFyZ2luLXRvcDogMXB4OyB0cmFuc2l0aW9uOiBhbGwgLjJzOwp9Ci5hbnMtdGV4dCB7IGZvbnQtc2l6ZTogLjgycmVtOyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuODUpOyBsaW5lLWhlaWdodDogMS41NTsgfQoKLyogbmV4dCBidXR0b24gKi8KLm5leHQtYnRuIHsKICB3aWR0aDogMTAwJTsgcGFkZGluZzogLjlyZW07IGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksICNBODdBMTIpOwogIGNvbG9yOiB2YXIoLS1kYXJrKTsgYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOiAuODhyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGN1cnNvcjogcG9pbnRlcjsKICBsZXR0ZXItc3BhY2luZzogLjA0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgb3BhY2l0eTogLjQ7IHBvaW50ZXItZXZlbnRzOiBub25lOyB0cmFuc2l0aW9uOiBhbGwgLjIyczsKICBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMjAxLDE0OSwyNiwuMjUpOwp9Ci5uZXh0LWJ0bi5hY3RpdmUgeyBvcGFjaXR5OiAxOyBwb2ludGVyLWV2ZW50czogYXV0bzsgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDIwMSwxNDksMjYsLjQpOyB9Ci5uZXh0LWJ0bi5hY3RpdmU6aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgyMDEsMTQ5LDI2LC41KTsgfQoKLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIENBUFRVUkUgU0NSRUVOCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwouY2FwdHVyZS1zY3JlZW4gewogIHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IDU4MHB4OwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMjcsNTgsMTA3LC40NSkgMCUsIHJnYmEoMTMsMzQsNzEsLjg4KSAxMDAlKTsKICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsLjMpOyBib3JkZXItcmFkaXVzOiAyMHB4OwogIHBhZGRpbmc6IDIuMnJlbSAxLjhyZW07IHRleHQtYWxpZ246IGNlbnRlcjsKfQouY2FwdHVyZS1zY3JlZW4gaDIgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjEuN3JlbTsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS13aGl0ZSk7IG1hcmdpbi1ib3R0b206LjRyZW07IH0KLmNhcHR1cmUtc2NyZWVuIHAgIHsgZm9udC1zaXplOi44cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IGxpbmUtaGVpZ2h0OjEuNzsgbWFyZ2luLWJvdHRvbToxLjRyZW07IH0KCi5maWVsZCB7IG1hcmdpbi1ib3R0b206IC43cmVtOyB9Ci5maWVsZCBpbnB1dCB7CiAgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IC44cmVtIDFyZW07CiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMDYpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsLjIyKTsKICBib3JkZXItcmFkaXVzOiA5cHg7IGZvbnQtZmFtaWx5OiAnT3V0Zml0JyxzYW5zLXNlcmlmOyBmb250LXNpemU6IC44NXJlbTsKICBjb2xvcjogdmFyKC0td2hpdGUpOyBvdXRsaW5lOiBub25lOyB0cmFuc2l0aW9uOiBib3JkZXIgLjJzOwp9Ci5maWVsZCBpbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMjgpOyB9Ci5maWVsZCBpbnB1dDpmb2N1cyB7IGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7IH0KCi5yZXZlYWwtYnRuIHsKICB3aWR0aDogMTAwJTsgcGFkZGluZzogLjk1cmVtOyBib3JkZXItcmFkaXVzOiAxMHB4OwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCAjQTg3QTEyKTsKICBjb2xvcjogdmFyKC0tZGFyayk7IGJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6ICdPdXRmaXQnLHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOiAuOXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY3Vyc29yOiBwb2ludGVyOwogIGxldHRlci1zcGFjaW5nOiAuMDRlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMjAxLDE0OSwyNiwuMzUpOyB0cmFuc2l0aW9uOiBhbGwgLjIyczsKfQoucmV2ZWFsLWJ0bjpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgfQouc2tpcC1saW5rIHsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6Ljc1cmVtOyBmb250LXNpemU6LjY2cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IGN1cnNvcjpwb2ludGVyOyBsZXR0ZXItc3BhY2luZzouMWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHRleHQtdW5kZXJsaW5lLW9mZnNldDozcHg7IH0KLnNraXAtbGluazpob3ZlciB7IGNvbG9yOnZhcigtLWdvbGQpOyB9CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgUkVTVUxUIFNDUkVFTgrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KLnJlc3VsdC1zY3JlZW4geyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA2NDBweDsgfQoKLnJlc3VsdC1oZXJvIHsKICBib3JkZXItcmFkaXVzOiAxOHB4OyBwYWRkaW5nOiAyLjJyZW0gMS44cmVtIDEuOHJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1ib3R0b206IDFyZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOwogIGFuaW1hdGlvbjogZmFkZUluIC41cyBlYXNlIGZvcndhcmRzOwp9Ci5yZXN1bHQtaGVybzo6YmVmb3JlIHsKICBjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsKICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDIwcHgsIHJnYmEoMjU1LDI1NSwyNTUsLjAxNSkgMjBweCwgcmdiYSgyNTUsMjU1LDI1NSwuMDE1KSAyMXB4KTsKfQoKLnJlc3VsdC1zZWFzb24tYmFkZ2UgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogLjM1cmVtIDFyZW07IGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgZm9udC1zaXplOiAuNnJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IC4yZW07CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbWFyZ2luLWJvdHRvbTogMXJlbTsKfQoucmVzdWx0LWljb24geyBmb250LXNpemU6IDMuMnJlbTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IC43cmVtOyB9Ci5yZXN1bHQtc2Vhc29uLW5hbWUgewogIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sNXZ3LDIuNnJlbSk7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgbGluZS1oZWlnaHQ6IDEuMTsgbWFyZ2luLWJvdHRvbTogLjRyZW07Cn0KLnJlc3VsdC1zZWFzb24tc3ViIHsKICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogIGZvbnQtc2l6ZTogMXJlbTsgZm9udC1zdHlsZTogaXRhbGljOwogIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC42NSk7IGxpbmUtaGVpZ2h0OiAxLjY7IG1hcmdpbi1ib3R0b206IDEuMnJlbTsKfQoKLyogZGltZW5zaW9uIHNjb3JlcyAqLwouZGltLWJhcnMgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogLjVyZW07IG1hcmdpbjogMXJlbSAwOyB9CkBtZWRpYShtYXgtd2lkdGg6NDYwcHgpeyAuZGltLWJhcnMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfSB9Ci5kaW0tYmFyLWNhcmQgewogIHBhZGRpbmc6IC43cmVtIC44cmVtOyBib3JkZXItcmFkaXVzOiAxMHB4OwogIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA1KTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpOwp9Ci5kYmMtbmFtZSB7IGZvbnQtc2l6ZTogLjU2cmVtOyBsZXR0ZXItc3BhY2luZzogLjE1ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1ncmV5LW1pZCk7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAuM3JlbTsgfQouZGJjLXNjb3JleyBmb250LXNpemU6IC44NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IC4zcmVtOyB9Ci5kYmMtdHJhY2sgeyBoZWlnaHQ6IDRweDsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMDgpOyBib3JkZXItcmFkaXVzOiA0cHg7IG92ZXJmbG93OiBoaWRkZW47IH0KLmRiYy1maWxsICB7IGhlaWdodDogMTAwJTsgYm9yZGVyLXJhZGl1czogNHB4OyB0cmFuc2l0aW9uOiB3aWR0aCAxLjVzIGVhc2UgLjNzOyB3aWR0aDogMCU7IH0KCi8qIHJlc3VsdCBib2R5ICovCi5yZXN1bHQtYm9keSB7CiAgYmFja2dyb3VuZDogcmdiYSgxMywzNCw3MSwuNik7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMik7CiAgYm9yZGVyLXJhZGl1czogMTRweDsgcGFkZGluZzogMS40cmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOwp9Ci5yZXN1bHQtYm9keSBoMyB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6MS4ycmVtOyBmb250LXdlaWdodDo2MDA7IGNvbG9yOnZhcigtLXdoaXRlKTsgbWFyZ2luLWJvdHRvbTouNnJlbTsgfQoucmVzdWx0LWJvZHkgcCAgeyBmb250LXNpemU6LjgycmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44KTsgbGluZS1oZWlnaHQ6MS43NTsgbWFyZ2luLWJvdHRvbTouOHJlbTsgfQoucmVzdWx0LWJvZHkgdWwgeyBsaXN0LXN0eWxlOm5vbmU7IH0KLnJlc3VsdC1ib2R5IGxpIHsgZm9udC1zaXplOi44cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43Mik7IHBhZGRpbmc6LjNyZW0gMCAuM3JlbSAxLjJyZW07IHBvc2l0aW9uOnJlbGF0aXZlOyBsaW5lLWhlaWdodDoxLjU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA1KTsgfQoucmVzdWx0LWJvZHkgbGk6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206bm9uZTsgfQoucmVzdWx0LWJvZHkgbGk6OmJlZm9yZSB7IGNvbnRlbnQ6J+Kcpic7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IGZvbnQtc2l6ZTouNTVyZW07IHRvcDouNDVyZW07IH0KCi8qIENUQSAqLwoucmVzdWx0LWN0YSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogLjY1cmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOyB9Ci5yLWJ0biB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogLjU1cmVtOwogIHBhZGRpbmc6IC45cmVtIDEuMnJlbTsgYm9yZGVyLXJhZGl1czogMTBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGZvbnQtZmFtaWx5OiAnT3V0Zml0JyxzYW5zLXNlcmlmOyBmb250LXNpemU6IC44NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsKICB0cmFuc2l0aW9uOiBhbGwgLjIyczsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXI6IG5vbmU7IHRleHQtYWxpZ246IGNlbnRlcjsKfQouci1wcmltYXJ5IHsgY29sb3I6IHZhcigtLWRhcmspOyBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMjAxLDE0OSwyNiwuMyk7IH0KLnItcHJpbWFyeTpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgfQouci1zZWNvbmRhcnkgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LC4zNSk7IGNvbG9yOiB2YXIoLS1nb2xkMik7IH0KLnItc2Vjb25kYXJ5OmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyMDEsMTQ5LDI2LC4xKTsgfQoKLyogc2Vhc29uIGxhZGRlciAqLwouc2Vhc29uLWxhZGRlciB7CiAgYmFja2dyb3VuZDogcmdiYSgxMywzNCw3MSwuNCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA3KTsKICBib3JkZXItcmFkaXVzOiAxMnB4OyBwYWRkaW5nOiAxcmVtIDEuMnJlbTsgbWFyZ2luLWJvdHRvbTogMXJlbTsKfQouc2Vhc29uLWxhZGRlciBoNCB7IGZvbnQtc2l6ZTouNjJyZW07IGxldHRlci1zcGFjaW5nOi4xNWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgbWFyZ2luLWJvdHRvbTouN3JlbTsgfQouc2wtcm93IHsKICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IC43cmVtOyBwYWRkaW5nOiAuNHJlbSAwOwogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wNSk7Cn0KLnNsLXJvdzpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQouc2wtaWNvbiB7IGZvbnQtc2l6ZTogMXJlbTsgd2lkdGg6IDIycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfQouc2wtbmFtZSB7IGZvbnQtc2l6ZTogLjc1cmVtOyBmb250LXdlaWdodDogNjAwOyBmbGV4OiAxOyB9Ci5zbC15b3UgIHsgZm9udC1zaXplOiAuNnJlbTsgY29sb3I6IHZhcigtLWdvbGQpOyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXItc3BhY2luZzogLjFlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQoKLyogc2hhcmUgc3RyaXAgKi8KLnNoYXJlLXN0cmlwIHsKICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IC43cmVtOwogIHBhZGRpbmc6IC44cmVtIDFyZW07IGJhY2tncm91bmQ6IHJnYmEoMjcsNTgsMTA3LC4zKTsKICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsLjE1KTsgYm9yZGVyLXJhZGl1czogMTBweDsgbWFyZ2luLWJvdHRvbTogLjhyZW07Cn0KLnNoYXJlLXN0cmlwLXRleHQgeyBmbGV4OiAxOyB9Ci5zaGFyZS1zdHJpcC10ZXh0IHN0cm9uZyB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IC43M3JlbTsgY29sb3I6IHZhcigtLWdvbGQyKTsgbWFyZ2luLWJvdHRvbTogLjFyZW07IH0KLnNoYXJlLXN0cmlwLXRleHQgcCB7IGZvbnQtc2l6ZTogLjY4cmVtOyBjb2xvcjogdmFyKC0tZ3JleS1taWQpOyBsaW5lLWhlaWdodDogMS40OyB9Ci5zaGFyZS1jb3B5LWJ0biB7CiAgcGFkZGluZzogLjQ1cmVtIC45cmVtOyBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ29sZCk7CiAgYm9yZGVyLXJhZGl1czogN3B4OyBjb2xvcjogdmFyKC0tZ29sZCk7IGZvbnQtc2l6ZTogLjY4cmVtOyBmb250LXdlaWdodDogNjAwOwogIGN1cnNvcjogcG9pbnRlcjsgbGV0dGVyLXNwYWNpbmc6IC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7IHRyYW5zaXRpb246IGFsbCAuMnM7Cn0KLnNoYXJlLWNvcHktYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyMDEsMTQ5LDI2LC4xNSk7IH0KCi5yZXRha2UtbGluayB7IGRpc3BsYXk6YmxvY2s7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6LjY2cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IGN1cnNvcjpwb2ludGVyOyBsZXR0ZXItc3BhY2luZzouMWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0KLnJldGFrZS1saW5rOmhvdmVyIHsgY29sb3I6dmFyKC0tZ29sZCk7IH0KCi8qIGhpZGRlbiAqLwouaGlkZGVuIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgo8IS0tIE5BViBCQUNLIC0tPgo8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjIwO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjY4MHB4O21hcmdpbjowIGF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOi45cmVtIDEuMnJlbSAuNHJlbTsiPgogIDxhIGhyZWY9Imh0dHBzOi8vdGhlc3VtbWl0LnNvdmVyZWlnbm1vbWVudHVtLmNvbS93ZWxjb21lIiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOi40cmVtO2ZvbnQtc2l6ZTouNjhyZW07Y29sb3I6IzcxODA5Njt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LWZhbWlseTpPdXRmaXQsc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDhlbTt0cmFuc2l0aW9uOmNvbG9yIC4yczsiPuKGkCBCYWNrIHRvIFdlbGNvbWU8L2E+CiAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTouNnJlbTtsZXR0ZXItc3BhY2luZzouMTZlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6IzJDN0E3Qjtmb250LWZhbWlseTpPdXRmaXQsc2Fucy1zZXJpZjsiPnRoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb208L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJiZyI+PC9kaXY+CjxkaXYgY2xhc3M9ImZsb2F0aWVzIiBpZD0iZmxvYXRpZXMiPjwvZGl2PgoKPGRpdiBjbGFzcz0id3JhcCI+CgogIDwhLS0g4pWQ4pWQIElOVFJPIFNDUkVFTiDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0iaW50cm8tc2NyZWVuIiBpZD0iaW50cm9TY3JlZW4iPgogICAgPGRpdiBjbGFzcz0iaW50cm8tYnJhbmQiPvCfkZEgVGhlIFNIRSBFLUJvc3MgU29sdXRpb25pc3QgfiBTaGUgRXZvbHZlcyBBZnJpY2E8L2Rpdj4KICAgIDxzcGFuIGNsYXNzPSJpbnRyby1jcm93biI+8J+RkTwvc3Bhbj4KICAgIDxoMT5USEU8YnI+PGVtPk1FIEJPU1M8L2VtPjxicj5Bc3Nlc3NtZW50PC9oMT4KICAgIDxwIGNsYXNzPSJpbnRyby10YWdsaW5lIj4iRXZlcnl0aGluZyB5b3UgbmVlZCB0byBrbm93IGFib3V0IHlvdXJzZWxmIGlzIGFscmVhZHkgbGl2aW5nIGluc2lkZSB5b3UgfiB3YWl0aW5nIGZvciB0aGUgcmlnaHQgcXVlc3Rpb25zIGFuZCB0aGUgcmlnaHQgc3BhY2UgdG8gc3VyZmFjZS4iPC9wPgoKICAgIDxkaXYgY2xhc3M9ImludHJvLWFjcm9ueW0iPgogICAgICA8ZGl2IGNsYXNzPSJhY3Itcm93Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLWxldHRlciI+VDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLXdvcmRzIj48c3Ryb25nPlRpbWVsZXNzIEhlcm9pbmUgRXh0cmFvcmRpbmFpcmU8L3N0cm9uZz4gfiB0aGUgd29tYW4gd2hvIGV4aXN0cyBiZWZvcmUgYW5kIGFmdGVyIGV2ZXJ5IHJvbGUgeW91IGhvbGQ8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Itcm93Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLWxldHRlciI+SDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLXdvcmRzIj5IZXIgfiB0aGUgcG9zc2Vzc2l2ZSB0aGF0IGJlbG9uZ3MgdG8gbm8gb25lIGVsc2U8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Itcm93Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLWxldHRlciI+RTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLXdvcmRzIj48c3Ryb25nPk15IEVzc2VuY2U8L3N0cm9uZz4gfiB0aGUgaXJyZWR1Y2libGUgY29yZSB0aGF0IGNhbm5vdCBiZSB0YWtlbiwgc29sZCBvciByZWJyYW5kZWQ8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Itcm93Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLWxldHRlciI+Qjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLXdvcmRzIj48c3Ryb25nPkJvbGRseTwvc3Ryb25nPiB+IHdpdGhvdXQgYXBvbG9neSwgd2l0aG91dCBwZXJtaXNzaW9uPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iYWNyLXJvdyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImFjci1sZXR0ZXIiPk88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImFjci13b3JkcyI+PHN0cm9uZz5PYnNlc3NlZDwvc3Ryb25nPiB+IHdpdGggaGVyc2VsZiBmaXJzdCwgYXMgdGhlIGZvdW5kYXRpb24gb2YgZXZlcnl0aGluZzwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImFjci1yb3ciPgogICAgICAgIDxzcGFuIGNsYXNzPSJhY3ItbGV0dGVyIj5TPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJhY3Itd29yZHMiPjxzdHJvbmc+U2VsZi1DZW50ZXJlZDwvc3Ryb25nPiB+IHRoZSBtb3N0IGdlbmVyb3VzIGFjdCBhIHdvbWFuIGNhbiBjb21taXQ8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Itcm93Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLWxldHRlciI+Uzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iYWNyLXdvcmRzIj48c3Ryb25nPlNvdmVyZWlnbnR5PC9zdHJvbmc+IH4gdGhlIHN0YXRlIG9mIGJlaW5nIHRoZSBnb3Zlcm5pbmcgYXV0aG9yaXR5IG9mIGhlciBvd24gbGlmZTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8cCBjbGFzcz0iaW50cm8tcGhpbG9zb3BoeSI+VGhpcyBhc3Nlc3NtZW50IGFza3MgeW91IHR3ZW50eSBxdWVzdGlvbnMgYmVmb3JlIGFza2luZyB5b3UgYSBzaW5nbGUgdGhpbmcgYWJvdXQgeW91ciBidXNpbmVzcy4gQmVjYXVzZSB0aGUgd29tYW4gYmVoaW5kIHRoZSBlbXBpcmUgbWF0dGVycyBtb3JlIHRoYW4gdGhlIGVtcGlyZSBpdHNlbGYuIFlvdSBhcmUgeW91ciBvd24gZmlyc3QgYXVkaWVuY2UuIFlvdXIgb3duIGZpcnN0IGN1c3RvbWVyLiBZb3VyIG93biBmaXJzdCBpbnZlc3RtZW50LjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJzZWFzb25zLXN0cmlwIj4KICAgICAgPGRpdiBjbGFzcz0ic2Vhc29uLXBpcCI+PHNwYW4+8J+MsTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tc2VlZCkiPlRoZSBTZWVkPC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWFzb24tcGlwIj48c3Bhbj7wn4y/PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS1yb290cykiPlRoZSBSb290czwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2Vhc29uLXBpcCI+PHNwYW4+8J+Mszwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tdHJ1bmspIj5UaGUgVHJ1bms8L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlYXNvbi1waXAiPjxzcGFuPvCfjLo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLWJsb29tKSI+VGhlIEJsb29tPC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWFzb24tcGlwIj48c3Bhbj7wn5GRPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS1zb3ZlcmVpZ24pIj5UaGUgU292ZXJlaWduPC9zcGFuPjwvZGl2PgogICAgPC9kaXY+CgogICAgPGJ1dHRvbiBjbGFzcz0iYmVnaW4tYnRuIiBvbmNsaWNrPSJzdGFydEFzc2Vzc21lbnQoKSI+QmVnaW4gTXkgQXNzZXNzbWVudCDwn5GRPC9idXR0b24+CgogICAgPHAgY2xhc3M9Im1pcnJvci1xdW90ZSI+IlNoZSB3YXMgbmV2ZXIgbG9zdC4gU2hlIHdhcyBzaW1wbHkgd2FpdGluZyBmb3Igc29tZW9uZSB0byBob2xkIHRoZSBtaXJyb3Igc3RpbGwgbG9uZyBlbm91Z2guIjxzcGFuPn4gVGhlIFNIRSBFLUJvc3MgU29sdXRpb25pc3Q8L3NwYW4+PC9wPgogIDwvZGl2PgoKICA8IS0tIOKVkOKVkCBQUk9HUkVTUyDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Mtd3JhcCBoaWRkZW4iIGlkPSJwcm9ncmVzc1dyYXAiPgogICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtdG9wIj4KICAgICAgPHNwYW4+VEhFIE1FIEJPU1MgQXNzZXNzbWVudDwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InAtY291bnQiIGlkPSJwQ291bnQiPlF1ZXN0aW9uIDEgb2YgMjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLXRyYWNrIj48ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsIiBpZD0icHJvZ3Jlc3NGaWxsIj48L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRpbS1pbmRpY2F0b3IiIGlkPSJkaW1JbmRpY2F0b3IiPgogICAgICA8ZGl2IGNsYXNzPSJkaW0tZG90IiBpZD0iZGQwIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZGltLWRvdCIgaWQ9ImRkMSI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRpbS1kb3QiIGlkPSJkZDIiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkaW0tZG90IiBpZD0iZGQzIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZGltLWRvdCIgaWQ9ImRkNCI+PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZAgUVVFU1RJT04gU1RBR0Ug4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9InEtc3RhZ2UgaGlkZGVuIiBpZD0icVN0YWdlIj4KICAgIDxkaXYgY2xhc3M9InEtY2FyZCIgaWQ9InFDYXJkIj4KICAgICAgPGRpdiBjbGFzcz0icS1kaW0tbGFiZWwiIGlkPSJxRGltTGFiZWwiPjwvZGl2PgogICAgICA8c3BhbiBjbGFzcz0icS1udW0iIGlkPSJxTnVtIj48L3NwYW4+CiAgICAgIDxwIGNsYXNzPSJxLXRleHQiIGlkPSJxVGV4dCI+PC9wPgogICAgICA8ZGl2IGNsYXNzPSJhbnN3ZXJzIiBpZD0iYW5zd2Vyc1dyYXAiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8YnV0dG9uIGNsYXNzPSJuZXh0LWJ0biIgaWQ9Im5leHRCdG4iIG9uY2xpY2s9Im5leHRRdWVzdGlvbigpIj5Db250aW51ZSDihpI8L2J1dHRvbj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZAgQ0FQVFVSRSBTQ1JFRU4g4pWQ4pWQIC0tPgogIDxkaXYgY2xhc3M9ImNhcHR1cmUtc2NyZWVuIGhpZGRlbiIgaWQ9ImNhcHR1cmVTY3JlZW4iPgogICAgPGgyPllvdXIgc2Vhc29uIGlzIHJlYWR5IPCfkZE8L2gyPgogICAgPHA+RW50ZXIgeW91ciBkZXRhaWxzIHRvIHJlY2VpdmUgeW91ciBmdWxsIE1FIEJPU1MgU2Vhc29uIHJlc3VsdCB+IGFuZCB0byBiZSBwbGFjZWQgb24gdGhlIHJpZ2h0IHBhdGggZm9yIHdoZXJlIHlvdSBhcmUgcmlnaHQgbm93LjwvcD4KICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNhcE5hbWUiIHBsYWNlaG9sZGVyPSJZb3VyIE5hbWUiIGF1dG9jb21wbGV0ZT0ibmFtZSI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iY2FwRW1haWwiIHBsYWNlaG9sZGVyPSJZb3VyIEVtYWlsIEFkZHJlc3MiIGF1dG9jb21wbGV0ZT0iZW1haWwiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZmllbGQiPjxpbnB1dCB0eXBlPSJ0ZWwiIGlkPSJjYXBQaG9uZSIgcGxhY2Vob2xkZXI9IllvdXIgV2hhdHNBcHAgKG9wdGlvbmFsKSIgYXV0b2NvbXBsZXRlPSJ0ZWwiPjwvZGl2PgogICAgPGJ1dHRvbiBjbGFzcz0icmV2ZWFsLWJ0biIgb25jbGljaz0ic2hvd1Jlc3VsdCgpIj5SZXZlYWwgTXkgTUUgQk9TUyBTZWFzb24g8J+RkTwvYnV0dG9uPgogICAgPHNwYW4gY2xhc3M9InNraXAtbGluayIgb25jbGljaz0ic2hvd1Jlc3VsdCgpIj5Ta2lwIGFuZCBzZWUgbXkgcmVzdWx0IOKGkjwvc3Bhbj4KICA8L2Rpdj4KCiAgPCEtLSDilZDilZAgUkVTVUxUIFNDUkVFTiDilZDilZAgLS0+CiAgPGRpdiBjbGFzcz0icmVzdWx0LXNjcmVlbiBoaWRkZW4iIGlkPSJyZXN1bHRTY3JlZW4iPgogICAgPGRpdiBjbGFzcz0icmVzdWx0LWhlcm8iIGlkPSJyZXN1bHRIZXJvIj4KICAgICAgPGRpdiBjbGFzcz0icmVzdWx0LXNlYXNvbi1iYWRnZSIgaWQ9InJlc3VsdEJhZGdlIj48L2Rpdj4KICAgICAgPHNwYW4gY2xhc3M9InJlc3VsdC1pY29uIiBpZD0icmVzdWx0SWNvbiI+PC9zcGFuPgogICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtc2Vhc29uLW5hbWUiIGlkPSJyZXN1bHROYW1lIj48L2Rpdj4KICAgICAgPHAgY2xhc3M9InJlc3VsdC1zZWFzb24tc3ViIiBpZD0icmVzdWx0U3ViIj48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImRpbS1iYXJzIiBpZD0iZGltQmFycyI+PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtYm9keSIgaWQ9InJlc3VsdEJvZHkiPjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InJlc3VsdC1jdGEiIGlkPSJyZXN1bHRDdGEiPjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlYXNvbi1sYWRkZXIiPgogICAgICA8aDQ+4pymIFRoZSBGaXZlIFNlYXNvbnMg4pymPC9oND4KICAgICAgPGRpdiBjbGFzcz0ic2wtcm93Ij48c3BhbiBjbGFzcz0ic2wtaWNvbiI+8J+MsTwvc3Bhbj48c3BhbiBjbGFzcz0ic2wtbmFtZSIgc3R5bGU9ImNvbG9yOnZhcigtLXNlZWQpIj5UaGUgU2VlZDwvc3Bhbj48c3BhbiBjbGFzcz0ic2wteW91IiBpZD0ic2wwIj48L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNsLXJvdyI+PHNwYW4gY2xhc3M9InNsLWljb24iPvCfjL88L3NwYW4+PHNwYW4gY2xhc3M9InNsLW5hbWUiIHN0eWxlPSJjb2xvcjp2YXIoLS1yb290cykiPlRoZSBSb290czwvc3Bhbj48c3BhbiBjbGFzcz0ic2wteW91IiBpZD0ic2wxIj48L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNsLXJvdyI+PHNwYW4gY2xhc3M9InNsLWljb24iPvCfjLM8L3NwYW4+PHNwYW4gY2xhc3M9InNsLW5hbWUiIHN0eWxlPSJjb2xvcjp2YXIoLS10cnVuaykiPlRoZSBUcnVuazwvc3Bhbj48c3BhbiBjbGFzcz0ic2wteW91IiBpZD0ic2wyIj48L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNsLXJvdyI+PHNwYW4gY2xhc3M9InNsLWljb24iPvCfjLo8L3NwYW4+PHNwYW4gY2xhc3M9InNsLW5hbWUiIHN0eWxlPSJjb2xvcjp2YXIoLS1ibG9vbSkiPlRoZSBCbG9vbTwvc3Bhbj48c3BhbiBjbGFzcz0ic2wteW91IiBpZD0ic2wzIj48L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNsLXJvdyI+PHNwYW4gY2xhc3M9InNsLWljb24iPvCfkZE8L3NwYW4+PHNwYW4gY2xhc3M9InNsLW5hbWUiIHN0eWxlPSJjb2xvcjp2YXIoLS1zb3ZlcmVpZ24pIj5UaGUgU292ZXJlaWduPC9zcGFuPjxzcGFuIGNsYXNzPSJzbC15b3UiIGlkPSJzbDQiPjwvc3Bhbj48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNoYXJlLXN0cmlwIj4KICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtc3RyaXAtdGV4dCI+CiAgICAgICAgPHN0cm9uZz5TaGFyZSB5b3VyIHNlYXNvbiDwn5GRPC9zdHJvbmc+CiAgICAgICAgPHA+SW52aXRlIGFub3RoZXIgd29tYW4gdG8gZGlzY292ZXIgaGVycyB+IGFuZCBoZXIgbmV4dCBzdGVwPC9wPgogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0ic2hhcmUtY29weS1idG4iIG9uY2xpY2s9ImNvcHlTaGFyZSgpIj5Db3B5IFJlc3VsdDwvYnV0dG9uPgogICAgPC9kaXY+CgogICAgPHNwYW4gY2xhc3M9InJldGFrZS1saW5rIiBvbmNsaWNrPSJyZXNldEFsbCgpIj7ihrogUmV0YWtlIHRoZSBhc3Nlc3NtZW50PC9zcGFuPgogIDwvZGl2PgoKPC9kaXY+PCEtLSAvd3JhcCAtLT4KCjxzY3JpcHQ+Ci8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBRVUVTVElPTlMgfiA1IERpbWVuc2lvbnMgw5cgNCBRdWVzdGlvbnMgPSAyMArilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KY29uc3QgRElNRU5TSU9OUyA9IFsKICB7IG5hbWU6J1RoZSBPcmRlciBvZiBBcnJpdmFsJywgbGFiZWw6J0RpbWVuc2lvbiAxIH4gVGhlIE9yZGVyIG9mIEFycml2YWwnLCBjb2xvcjonI0M5OTUxQScsIGJnOidyZ2JhKDIwMSwxNDksMjYsLjE1KScsIGJvcmRlcjoncmdiYSgyMDEsMTQ5LDI2LC4zKScgfSwKICB7IG5hbWU6J1RoZSBCbHVyJywgICAgICAgICAgICAgbGFiZWw6J0RpbWVuc2lvbiAyIH4gVGhlIEJsdXInLCAgICAgICAgICAgICBjb2xvcjonIzJDN0E3QicsIGJnOidyZ2JhKDQ0LDEyMiwxMjMsLjE1KScsIGJvcmRlcjoncmdiYSg0NCwxMjIsMTIzLC4zKScgfSwKICB7IG5hbWU6J015IEVzc2VuY2UnLCAgICAgICAgICBsYWJlbDonRGltZW5zaW9uIDMgfiBNeSBFc3NlbmNlJywgICAgICAgICAgICBjb2xvcjonIzJCNkNCMCcsIGJnOidyZ2JhKDQzLDEwOCwxNzYsLjE1KScsIGJvcmRlcjoncmdiYSg0MywxMDgsMTc2LC4zKScgfSwKICB7IG5hbWU6J1RoZSBMaW5lJywgICAgICAgICAgICBsYWJlbDonRGltZW5zaW9uIDQgfiBUaGUgTGluZScsICAgICAgICAgICAgICBjb2xvcjonIzZCNDZDMScsIGJnOidyZ2JhKDEwNyw3MCwxOTMsLjE1KScsIGJvcmRlcjoncmdiYSgxMDcsNzAsMTkzLC4zKScgfSwKICB7IG5hbWU6J1RoZSBSZXR1cm4nLCAgICAgICAgICBsYWJlbDonRGltZW5zaW9uIDUgfiBUaGUgUmV0dXJuJywgICAgICAgICAgICBjb2xvcjonIzRBOEM2RicsIGJnOidyZ2JhKDc0LDE0MCwxMTEsLjE1KScsIGJvcmRlcjoncmdiYSg3NCwxNDAsMTExLC4zKScgfSwKXTsKCmNvbnN0IFFVRVNUSU9OUyA9IFsKICAvLyBESU1FTlNJT04gMSB+IFRIRSBPUkRFUiBPRiBBUlJJVkFMICg0IHF1ZXN0aW9ucykKICB7CiAgICBkaW06IDAsCiAgICB0ZXh0OiAnV2hlbiB5b3UgdGhpbmsgYWJvdXQgd2hvIGFycml2ZWQgZmlyc3QgaW4geW91ciBsaWZlIH4gYmVmb3JlIHRpdGxlcywgcm9sZXMgb3IgcmV2ZW51ZSB+IHdoYXQgaXMgeW91ciByZWxhdGlvbnNoaXAgd2l0aCB0aGF0IG9yaWdpbmFsIHNlbGYgdG9kYXk/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnSSBhbSBub3Qgc3VyZSB3aG8gSSB3YXMgYmVmb3JlIHRoZSBidXNpbmVzcy4gSXQgaGFzIGJlY29tZSBteSBpZGVudGl0eS4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJIHJlbWVtYmVyIGhlciBidXQgSSByYXJlbHkgaGF2ZSB0aW1lIG9yIHNwYWNlIHRvIHJldHVybiB0byBoZXIuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnSSBhbSBhd2FyZSBvZiBoZXIgYW5kIEkgdHJ5IHRvIGNoZWNrIGluLCB0aG91Z2ggbm90IGNvbnNpc3RlbnRseS4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdJIGhhdmUgYSBjbGVhciBzZW5zZSBvZiB3aG8gSSBhbSBvdXRzaWRlIG15IHdvcmsgYW5kIEkgcHJvdGVjdCB0aGF0LicsIHNjb3JlOiAzIH0sCiAgICAgIHsgdGV4dDogJ015IG9yaWdpbmFsIHNlbGYgaXMgbXkgYW5jaG9yLiBCdXNpbmVzcyBpcyBvbmUgY2hhcHRlciwgbm90IG15IHdob2xlIHN0b3J5LicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKICB7CiAgICBkaW06IDAsCiAgICB0ZXh0OiAnSG93IGRvZXMgYnVzaW5lc3MgcmFuayBpbiB0aGUgb3JkZXIgb2Ygd2hhdCBkZWZpbmVzIHlvdSB+IGhvbmVzdGx5PycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0J1c2luZXNzIGlzIGV2ZXJ5dGhpbmcgcmlnaHQgbm93LiBJdCBjb25zdW1lcyBtb3N0IG9mIGhvdyBJIHNlZSBteXNlbGYuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnQnVzaW5lc3MgcmFua3MgdmVyeSBoaWdobHkgfiBwcm9iYWJseSBoaWdoZXIgdGhhbiBpdCBzaG91bGQuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnQnVzaW5lc3MgaXMgaW1wb3J0YW50IGJ1dCBJIGtub3cgaXQgaXMgb25lIHBhcnQgb2YgYSBsYXJnZXIgcGljdHVyZS4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdCdXNpbmVzcyBpcyBhIHNpZ25pZmljYW50IHBhcnQgb2YgbWUgYnV0IG5vdCBteSBmaXJzdCBvciBtb3N0IGltcG9ydGFudCBpZGVudGl0eS4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdCdXNpbmVzcyBhcnJpdmVkIGxhc3QgaW4gbXkgbGlmZSBzdG9yeSBhbmQgSSB0cmVhdCBpdCBhY2NvcmRpbmdseS4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAwLAogICAgdGV4dDogJ1lvdXIgcGFyZW50cywgeW91ciBjaGlsZGhvb2QsIHlvdXIgZWFybGllc3Qgc2Vuc2Ugb2Ygc2VsZiB+IGhvdyBjb25uZWN0ZWQgYXJlIHlvdSB0byB0aG9zZSBmb3VuZGF0aW9ucyByaWdodCBub3c/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnVmVyeSBkaXNjb25uZWN0ZWQuIExpZmUgaGFzIG1vdmVkIHNvIGZhc3QgSSByYXJlbHkgdGhpbmsgYWJvdXQgdGhvc2Ugcm9vdHMuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnU29tZXdoYXQgZGlzY29ubmVjdGVkLiBJIGtub3cgdGhleSBtYXR0ZXIgYnV0IEkgYW0gbm90IGFjdGl2ZWx5IGNvbm5lY3RlZC4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdNb2RlcmF0ZWx5IGNvbm5lY3RlZC4gSSB0aGluayBhYm91dCBteSByb290cyBzb21ldGltZXMgYW5kIGRyYXcgZnJvbSB0aGVtLicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ1dlbGwgY29ubmVjdGVkLiBNeSBoZXJpdGFnZSBhbmQgZWFybHkgZm91bmRhdGlvbnMgaW5mb3JtIGhvdyBJIG1vdmUuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnRGVlcGx5IGNvbm5lY3RlZC4gTXkgcm9vdHMgYXJlIG15IGRhaWx5IGFuY2hvciBhbmQgbXkgbW9zdCBpbXBvcnRhbnQgcmVzb3VyY2UuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAogIHsKICAgIGRpbTogMCwKICAgIHRleHQ6ICdJZiB5b3VyIGJ1c2luZXNzIGRpc2FwcGVhcmVkIHRvbW9ycm93IH4gd2hvIHdvdWxkIHlvdSBiZT8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdIb25lc3RseSwgSSBhbSBub3Qgc3VyZS4gVGhlIHF1ZXN0aW9uIHVuc2V0dGxlcyBtZS4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJIHdvdWxkIGJlIGxvc3QgZm9yIGEgd2hpbGUuIE15IGlkZW50aXR5IGlzIHZlcnkgdGllZCB0byB3aGF0IEkgZG8uJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnU2hha2VuLCBidXQgSSB3b3VsZCBmaW5kIG15IHdheSBiYWNrIHRvIG15c2VsZi4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdTYWQgYnV0IGludGFjdC4gSSBrbm93IHdobyBJIGFtIGJleW9uZCB3aGF0IEkgYnVpbGQuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnU3RpbGwgbXlzZWxmLiBUaGUgYnVzaW5lc3MgaXMgd2hhdCBJIGRvLCBub3Qgd2hvIEkgYW0uJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAoKICAvLyBESU1FTlNJT04gMiB+IFRIRSBCTFVSICg0IHF1ZXN0aW9ucykKICB7CiAgICBkaW06IDEsCiAgICB0ZXh0OiAnV2hpY2ggb2YgdGhlc2UgZGVmaW5pdGlvbnMgb2YgeW91cnNlbGYgZGlkIHlvdSBDSE9PU0UgfiB2ZXJzdXMgd2hpY2ggd2VyZSBnaXZlbiB0byB5b3UgYnkgY3VsdHVyZSwgZmFtaWx5IG9yIGV4cGVjdGF0aW9uPycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0hvbmVzdGx5LCBtb3N0IG9mIG15IGlkZW50aXR5IGZlZWxzIGFzc2lnbmVkIHJhdGhlciB0aGFuIGNob3Nlbi4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdTb21lIHdlcmUgY2hvc2VuIGJ1dCBJIGhhdmUgbm90IGV4YW1pbmVkIHdoaWNoIGlzIHdoaWNoIGluIGEgbG9uZyB0aW1lLicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ0kgaGF2ZSBzdGFydGVkIHRvIHNlcGFyYXRlIGNob3NlbiBmcm9tIGFzc2lnbmVkIGJ1dCB0aGUgd29yayBpcyBub3QgY29tcGxldGUuJywgc2NvcmU6IDIgfSwKICAgICAgeyB0ZXh0OiAnSSBoYXZlIGEgZ29vZCBzZW5zZSBvZiB3aGF0IEkgY2hvc2UgdmVyc3VzIHdoYXQgd2FzIHBsYWNlZCBvbiBtZS4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdJIGxpdmUgYWxtb3N0IGVudGlyZWx5IGZyb20gY2hvc2VuIGlkZW50aXR5LiBJIGhhdmUgZG9uZSB0aGUgd29yayBvZiBzZXBhcmF0aW9uLicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKICB7CiAgICBkaW06IDEsCiAgICB0ZXh0OiAnU29jaWFsIG1lZGlhIGFuZCBwZXJzb25hbCBicmFuZGluZyB+IGhvdyBtdWNoIHByZXNzdXJlIGRvIHlvdSBmZWVsIHRvIHNoYXJlIHlvdXIgcHJpdmF0ZSBzZWxmIGluIG9yZGVyIHRvIGJlIHNlZW4gYXMgY3JlZGlibGU/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnRW5vcm1vdXMgcHJlc3N1cmUuIEkgZmVlbCBJIG11c3QgYmUgb3Blbmx5IHZ1bG5lcmFibGUgdG8gYmUgdHJ1c3RlZC4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdTaWduaWZpY2FudCBwcmVzc3VyZS4gSSBzaGFyZSBtb3JlIHRoYW4gSSBhbSBjb21mb3J0YWJsZSB3aXRoLicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ1NvbWUgcHJlc3N1cmUuIEkgbWFuYWdlIGl0IGJ1dCBpdCByZW1haW5zIGEgdGVuc2lvbi4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdNaW5pbWFsIHByZXNzdXJlLiBJIGhhdmUgY2xlYXIgYm91bmRhcmllcyBhcm91bmQgd2hhdCBJIHNoYXJlIHB1YmxpY2x5LicsIHNjb3JlOiAzIH0sCiAgICAgIHsgdGV4dDogJ05vIHByZXNzdXJlLiBJIGtub3cgbXkgcmVzdWx0cyBzcGVhay4gTXkgcHJpdmF0ZSBsaWZlIGlzIG1pbmUuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAogIHsKICAgIGRpbTogMSwKICAgIHRleHQ6ICdUaGUgY3VsdHVyYWwgbmFycmF0aXZlcyBhcm91bmQgeW91IH4gZG93cnksIG1hcnJpYWdlLCBtb3RoZXJob29kLCBmYW1pbHkgb2JsaWdhdGlvbiB+IGhvdyBtdWNoIGRvIHRoZXkgZGVmaW5lIHlvdXIgc2Vuc2Ugb2Ygd2hvIHlvdSBhcmU/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnVGhleSBhcmUgcHJpbWFyeS4gVGhlc2UgbmFycmF0aXZlcyBsYXJnZWx5IHNoYXBlIG15IGlkZW50aXR5LicsIHNjb3JlOiAwIH0sCiAgICAgIHsgdGV4dDogJ1RoZXkgYXJlIHNpZ25pZmljYW50LiBJIGFtIHdvcmtpbmcgdG8gc2VwYXJhdGUgbXlzZWxmIGZyb20gc29tZSBvZiB0aGVtLicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ1RoZXkgaW5mbHVlbmNlIG1lIGJ1dCBJIGhhdmUgY2xhcml0eSBhYm91dCB3aGF0IEkgYWNjZXB0IGFuZCB3aGF0IEkgcmVqZWN0LicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ1RoZXkgaW5mb3JtIG15IGNvbnRleHQgYnV0IGRvIG5vdCBkZWZpbmUgbXkgY29yZSBpZGVudGl0eS4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdJIGhhdmUgZnVsbHkgc2VwYXJhdGVkIG15IGlkZW50aXR5IGZyb20gY3VsdHVyYWwgYXNzaWdubWVudC4gSSBhbSBzZWxmLWRlZmluZWQuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAogIHsKICAgIGRpbTogMSwKICAgIHRleHQ6ICdXaGVuIGlzIHRoZSBsYXN0IHRpbWUgeW91IGZlbHQgdHJ1bHksIGF1dGhlbnRpY2FsbHkgeW91cnNlbGYgfiBub3QgcGVyZm9ybWluZyBhbnkgcm9sZT8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdJIHN0cnVnZ2xlIHRvIHJlbWVtYmVyLiBJIGZlZWwgSSBhbSBhbHdheXMgcGVyZm9ybWluZyBzb21ldGhpbmcuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnT2NjYXNpb25hbGx5IH4gaW4gcXVpZXQgcHJpdmF0ZSBtb21lbnRzIHRoYXQgZmVlbCByYXJlIGFuZCBwcmVjaW91cy4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdSZWd1bGFybHkgaW4gc29tZSBhcmVhcyBvZiBteSBsaWZlIGJ1dCBub3QgY29uc2lzdGVudGx5IGFjcm9zcyBhbGwgb2YgdGhlbS4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdPZnRlbi4gSSBoYXZlIHNwYWNlcyBhbmQgcmVsYXRpb25zaGlwcyB3aGVyZSBJIGFtIGZ1bGx5IG15c2VsZi4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdEYWlseS4gSSBoYXZlIGJ1aWx0IGEgbGlmZSB3aGVyZSBwZXJmb3JtYW5jZSBpcyBvcHRpb25hbCBhbmQgc2VsZiBpcyB0aGUgZGVmYXVsdC4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCgogIC8vIERJTUVOU0lPTiAzIH4gTVkgRVNTRU5DRSAoNCBxdWVzdGlvbnMpCiAgewogICAgZGltOiAyLAogICAgdGV4dDogJ1doYXQgaXMgdGhlIE9ORSB0aGluZyB0aGF0IGhhcyByZW1haW5lZCBjb25zdGFudCBhY3Jvc3MgZXZlcnkgcm9sZSwgZXZlcnkgc2Vhc29uLCBldmVyeSBjaGFsbGVuZ2UgaW4geW91ciBsaWZlPycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0kgaG9uZXN0bHkgY2Fubm90IGlkZW50aWZ5IGl0LiBJIGZlZWwgZGlmZmVyZW50IGFjcm9zcyBkaWZmZXJlbnQgc2Vhc29ucy4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJIHNlbnNlIHNvbWV0aGluZyBjb25zdGFudCBidXQgSSBoYXZlIG5ldmVyIGFydGljdWxhdGVkIGl0IGNsZWFybHkuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnSSBoYXZlIGEgZ2VuZXJhbCBzZW5zZSBvZiBpdCBidXQgaXQgaXMgbm90IHlldCBhIGNsZWFyIGFuZCBuYW1lZCBrbm93aW5nLicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ0kga25vdyB3aGF0IGl0IGlzIGFuZCBpdCBndWlkZXMgaG93IEkgbWFrZSBzaWduaWZpY2FudCBkZWNpc2lvbnMuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnSSBrbm93IGl0IGRlZXBseS4gSXQgaXMgbXkgbm9ydGggc3RhciBhbmQgSSByZXR1cm4gdG8gaXQgZGVsaWJlcmF0ZWx5LicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKICB7CiAgICBkaW06IDIsCiAgICB0ZXh0OiAnV2hhdCBkbyB5b3UgcHJvdGVjdCBmaWVyY2VseSB+IHF1aWV0bHksIHVuYXBvbG9nZXRpY2FsbHkgfiBldmVuIHdoZW4gdGhlIHdvcmxkIGRvZXMgbm90IHVuZGVyc3RhbmQgd2h5PycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0kgc3RydWdnbGUgdG8gcHJvdGVjdCBhbnl0aGluZy4gSSB0ZW5kIHRvIGdpdmUgaXQgYWxsIGF3YXkuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnSSBrbm93IHdoYXQgSSB3YW50IHRvIHByb3RlY3QgYnV0IEkgYW0gbm90IGFsd2F5cyBzdWNjZXNzZnVsIGF0IGl0LicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ0kgcHJvdGVjdCBzb21lIHRoaW5ncyBidXQgSSBjb3VsZCBiZSBtb3JlIGRlbGliZXJhdGUgYWJvdXQgaXQuJywgc2NvcmU6IDIgfSwKICAgICAgeyB0ZXh0OiAnSSBwcm90ZWN0IG15IGNvcmUgdmFsdWVzLCBteSB0aW1lIGFuZCBteSBwcml2YXRlIHNlbGYgd2l0aCBpbnRlbnRpb24uJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnSSBhbSB1bmNvbXByb21pc2luZyBhYm91dCB3aGF0IEkgcHJvdGVjdC4gVGhpcyBpcyBub24tbmVnb3RpYWJsZSB0byBtZS4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAyLAogICAgdGV4dDogJ0lmIHlvdSBzdHJpcHBlZCBhd2F5IHlvdXIgYnVzaW5lc3MsIHlvdXIgdGl0bGVzIGFuZCB5b3VyIHB1YmxpYyByb2xlcyB+IGhvdyBjbGVhcmx5IGNhbiB5b3UgZGVzY3JpYmUgd2hvIHlvdSBhcmU/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnVmVyeSB1bmNsZWFybHkuIE15IGlkZW50aXR5IGlzIHZlcnkgdGllZCB0byBteSByb2xlcyBhbmQgYWNoaWV2ZW1lbnRzLicsIHNjb3JlOiAwIH0sCiAgICAgIHsgdGV4dDogJ1NvbWV3aGF0IHVuY2xlYXJseS4gSSBzZW5zZSBteXNlbGYgYmVuZWF0aCB0aGUgcm9sZXMgYnV0IGNhbm5vdCBkZXNjcmliZSBoZXIgd2VsbC4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdNb2RlcmF0ZWx5IGNsZWFybHkuIEkgY2FuIGRlc2NyaWJlIHBhcnRzIG9mIGhlciBidXQgdGhlIHBpY3R1cmUgaXMgbm90IGNvbXBsZXRlLicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ0NsZWFybHkuIEkgaGF2ZSBhIHN0cm9uZyBzZW5zZSBvZiBteSB2YWx1ZXMsIG15IHZvaWNlIGFuZCBteSBlc3NlbmNlLicsIHNjb3JlOiAzIH0sCiAgICAgIHsgdGV4dDogJ1ZlcnkgY2xlYXJseS4gTXkgaWRlbnRpdHkgaXMgcmljaCwgc3BlY2lmaWMgYW5kIGluZGVwZW5kZW50IG9mIHdoYXQgSSBidWlsZC4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAyLAogICAgdGV4dDogJ1lvdXIgdmFsdWVzIH4gdGhlIG9uZXMgeW91IGFjdHVhbGx5IGxpdmUgYnksIG5vdCB0aGUgb25lcyB5b3Ugc2F5IHlvdSBoYXZlIH4gaG93IGNvbnNpc3RlbnRseSBhcmUgeW91IGhvbm91cmluZyB0aGVtIHJpZ2h0IG5vdz8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdOb3QgY29uc2lzdGVudGx5LiBNeSBhY3Rpb25zIGFuZCBteSB2YWx1ZXMgZmVlbCBkaXNjb25uZWN0ZWQgYXQgdGhlIG1vbWVudC4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJbmNvbnNpc3RlbnRseS4gSSBob25vdXIgdGhlbSBpbiBzb21lIGFyZWFzIGJ1dCBjb21wcm9taXNlIHRoZW0gaW4gb3RoZXJzLicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ01vZGVyYXRlbHkuIEkgYW0gbW9yZSBhbGlnbmVkIHRoYW4gSSB1c2VkIHRvIGJlIGJ1dCBnYXBzIHJlbWFpbi4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdNb3N0bHkuIE15IHZhbHVlcyBndWlkZSBtb3N0IHNpZ25pZmljYW50IGRlY2lzaW9ucyBldmVuIHdoZW4gaXQgaXMgZGlmZmljdWx0LicsIHNjb3JlOiAzIH0sCiAgICAgIHsgdGV4dDogJ0NvbnNpc3RlbnRseS4gTXkgbGlmZSBpcyBsYXJnZWx5IGJ1aWx0IGFyb3VuZCBteSBhY3R1YWwgbGl2ZWQgdmFsdWVzLicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKCiAgLy8gRElNRU5TSU9OIDQgfiBUSEUgTElORSAoNCBxdWVzdGlvbnMpCiAgewogICAgZGltOiAzLAogICAgdGV4dDogJ0hvdyBjbGVhcmx5IGRyYXduIGlzIHlvdXIgbGluZSBiZXR3ZWVuIHlvdXIgcHJpdmF0ZSBzZWxmLCB5b3VyIHB1YmxpYyBwcmVzZW5jZSBhbmQgeW91ciBwcm9mZXNzaW9uYWwgaWRlbnRpdHk/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnVGhlcmUgaXMgbm8gY2xlYXIgbGluZS4gRXZlcnl0aGluZyBibGVlZHMgaW50byBldmVyeXRoaW5nLicsIHNjb3JlOiAwIH0sCiAgICAgIHsgdGV4dDogJ1RoZSBsaW5lIGV4aXN0cyBpbiB0aGVvcnkgYnV0IGNvbGxhcHNlcyB1bmRlciBwcmVzc3VyZSByZWd1bGFybHkuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnVGhlIGxpbmUgaXMgZHJhd24gYnV0IG1haW50YWluaW5nIGl0IGlzIGFuIG9uZ29pbmcgZWZmb3J0LicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ1RoZSBsaW5lIGlzIGNsZWFyIGFuZCBJIGVuZm9yY2UgaXQgd2l0aCBncm93aW5nIGNvbmZpZGVuY2UuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnVGhlIGxpbmUgaXMgc292ZXJlaWduLiBJIG1vdmUgYmV0d2VlbiB3b3JsZHMgd2l0aG91dCBsb3NpbmcgbXlzZWxmLicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKICB7CiAgICBkaW06IDMsCiAgICB0ZXh0OiAnV2hlbiB5b3UgY2xvc2UgeW91ciBsYXB0b3AgZm9yIHRoZSBkYXkgfiBkb2VzIHRoZSB3b3JrIGNvbWUgaG9tZSB3aXRoIHlvdSBtZW50YWxseSBhbmQgZW1vdGlvbmFsbHk/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnQWx3YXlzLiBJIGNhbm5vdCBzd2l0Y2ggb2ZmLiBUaGUgd29yayBmb2xsb3dzIG1lIGV2ZXJ5d2hlcmUuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnTW9zdCBvZiB0aGUgdGltZS4gUmVzdCBmZWVscyBsaWtlIGEgbHV4dXJ5IEkgcmFyZWx5IGFjY2Vzcy4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdTb21ldGltZXMuIEkgaGF2ZSBiZXR0ZXIgZGF5cyBhbmQgaGFyZGVyIGRheXMgd2l0aCB0aGlzLicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ0xlc3MgYW5kIGxlc3MuIEkgaGF2ZSBzeXN0ZW1zIGFuZCBwcmFjdGljZXMgdGhhdCBoZWxwIG1lIHRyYW5zaXRpb24uJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnUmFyZWx5LiBJIGdvIGhvbWUgdG8gbXlzZWxmIGRlbGliZXJhdGVseSBhbmQgdGhlIHdvcmsgd2FpdHMuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAogIHsKICAgIGRpbTogMywKICAgIHRleHQ6ICdIb3cgbXVjaCBvZiB5b3VyIHByaXZhdGUgbGlmZSB+IHlvdXIgYWN0dWFsIGhvbWUgc2VsZiB+IGlzIHZpc2libGUgdG8geW91ciBwcm9mZXNzaW9uYWwgYXVkaWVuY2U/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnQSBncmVhdCBkZWFsLiBJIGZlZWwgcHJlc3N1cmUgdG8gc2hhcmUgbXkgbGlmZSB0byBtYWludGFpbiBjb25uZWN0aW9uLicsIHNjb3JlOiAwIH0sCiAgICAgIHsgdGV4dDogJ01vcmUgdGhhbiBJIHdhbnQgdG8gc2hhcmUuIFRoZSBsaW5lcyBhcmUgYmx1cnJ5IGFuZCBJIGZlZWwgaXQuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnQSBtb2RlcmF0ZSBhbW91bnQuIEkgYW0gd29ya2luZyBvdXQgd2hhdCB0byBzaGFyZSBhbmQgd2hhdCB0byBwcm90ZWN0LicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ1ZlcnkgbGl0dGxlLiBJIHNoYXJlIHdoYXQgSSBjaG9vc2UgdG8gc2hhcmUgd2l0aCBmdWxsIGludGVudGlvbmFsaXR5LicsIHNjb3JlOiAzIH0sCiAgICAgIHsgdGV4dDogJ0FsbW9zdCBub3RoaW5nLiBNeSBwcm9mZXNzaW9uYWwgYXVkaWVuY2Uga25vd3MgbXkgd29yaywgbm90IG15IHByaXZhdGUgd29ybGQuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAogIHsKICAgIGRpbTogMywKICAgIHRleHQ6ICdUaGUgdGhyZWUgd29ybGRzIH4gcHJpdmF0ZSwgcHVibGljLCBwcm9mZXNzaW9uYWwgfiB3aGljaCBiZXN0IGRlc2NyaWJlcyB5b3UgcmlnaHQgbm93PycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0FsbCB0aHJlZSBhcmUgbWVyZ2VkLiBJIGNhbm5vdCB0ZWxsIHdoZXJlIG9uZSBlbmRzIGFuZCBhbm90aGVyIGJlZ2lucy4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdUd28gb2YgdGhlbSBhcmUgY2xlYXIgYnV0IG9uZSBrZWVwcyBibGVlZGluZyBpbnRvIHRoZSBvdGhlcnMuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnQWxsIHRocmVlIGFyZSBkaXN0aW5jdCBpbiBteSBtaW5kIGV2ZW4gaWYgbWFpbnRhaW5pbmcgdGhlIGJvdW5kYXJpZXMgaXMgd29yay4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdBbGwgdGhyZWUgYXJlIGRpc3RpbmN0IGFuZCBJIG5hdmlnYXRlIGJldHdlZW4gdGhlbSB3aXRoIHJlYXNvbmFibGUgZWFzZS4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdBbGwgdGhyZWUgYXJlIHNvdmVyZWlnbiBzcGFjZXMgYW5kIEkgaW5oYWJpdCBlYWNoIHdpdGggZnVsbCBpbnRlbnRpb25hbGl0eS4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCgogIC8vIERJTUVOU0lPTiA1IH4gVEhFIFJFVFVSTiAoNCBxdWVzdGlvbnMpCiAgewogICAgZGltOiA0LAogICAgdGV4dDogJ0hvdyBvZnRlbiBkbyB5b3UgZGVsaWJlcmF0ZWx5IHJldHVybiB0byB5b3Vyc2VsZiB+IG5vdCBpbiBhIGRlY2FkZSwgbm90IG9uIGhvbGlkYXksIGJ1dCB0b2RheSwgaW4gdGhpcyB3ZWVrPycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0FsbW9zdCBuZXZlci4gTGlmZSBtb3ZlcyB0b28gZmFzdCBhbmQgSSBhbSB0b28gdGlyZWQgZm9yIHRoYXQga2luZCBvZiBhdHRlbnRpb24uJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnT2NjYXNpb25hbGx5LiBUaGVyZSBhcmUgYnJpZWYgbW9tZW50cyBidXQgdGhleSBmZWVsIHNjYXJjZSBhbmQgYWNjaWRlbnRhbC4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdTb21ldGltZXMgaW50ZW50aW9uYWxseS4gSSBhbSBidWlsZGluZyB0aGUgaGFiaXQgYnV0IGl0IGlzIG5vdCB5ZXQgY29uc2lzdGVudC4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdSZWd1bGFybHkuIEkgaGF2ZSBwcmFjdGljZXMgdGhhdCBicmluZyBtZSBiYWNrIHRvIG15c2VsZiBldmVuIGluIGJ1c3kgc2Vhc29ucy4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdEYWlseS4gVGhlIHJldHVybiBpcyBidWlsdCBpbnRvIGhvdyBJIGxpdmUuIEl0IGlzIG5vdCBvcHRpb25hbC4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiA0LAogICAgdGV4dDogJ0RvIHlvdSBoYXZlICJ3ZWF0aGVyIHZhbmUiIHN5c3RlbXMgfiB3YXlzIG9mIG1lYXN1cmluZyB3aGF0IGlzIGhhcHBlbmluZyBpbiB5b3VyIGxpZmUgc28geW91IGNhbiByZXNwb25kIHJhdGhlciB0aGFuIGp1c3QgcmVhY3Q/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnTm8uIEkgb3BlcmF0ZSBpbiBjb25zdGFudCByZWFjdGlvbiBtb2RlLiBTeXN0ZW1zIGZlZWwgbGlrZSBhIGx1eHVyeS4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdTb21lIGluZm9ybWFsIG9uZXMuIE5vdGhpbmcgZGVsaWJlcmF0ZSBvciBjb25zaXN0ZW50bHkgdXNlZC4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdBIGZldyBpbnRlbnRpb25hbCBzeXN0ZW1zIHRoYXQgaGVscCBtZSBidXQgdGhleSBuZWVkIHN0cmVuZ3RoZW5pbmcuJywgc2NvcmU6IDIgfSwKICAgICAgeyB0ZXh0OiAnWWVzLiBJIGhhdmUgZXN0YWJsaXNoZWQgcmh5dGhtcyBhbmQgbWVhc3VyZXMgdGhhdCBoZWxwIG1lIHN0YXkgY2FsaWJyYXRlZC4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdZZXMuIE15IHN5c3RlbXMgYXJlIGRlc2lnbmVkIHNvIEkgY2FuIGdvIGhvbWUgdG8gbXlzZWxmIGFuZCByZXR1cm4gd2l0aCBhIHBsYW4uJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAogIHsKICAgIGRpbTogNCwKICAgIHRleHQ6ICdXaGVuIGxpZmUgZGVzdGFiaWxpc2VzIHlvdSB+IGNoYWxsZW5nZSwgbG9zcywgb3ZlcndoZWxtIH4gd2hhdCBpcyB5b3VyIHJlbGF0aW9uc2hpcCB3aXRoIHJlY292ZXJ5PycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0kgdGVuZCB0byBzdGF5IGRlc3RhYmlsaXNlZCBmb3IgYSBsb25nIHRpbWUuIFJlY292ZXJ5IGZlZWxzIG91dCBvZiByZWFjaC4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJIHJlY292ZXIgZXZlbnR1YWxseSBidXQgaXQgdGFrZXMgbG9uZ2VyIHRoYW4gSSB3b3VsZCBsaWtlLicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ0kgcmVjb3ZlciB3aXRoIGVmZm9ydC4gSSBoYXZlIHNvbWUgdG9vbHMgYnV0IG5vdCBhIHJlbGlhYmxlIHN5c3RlbS4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdJIHJlY292ZXIgd2l0aCByZWxhdGl2ZSBzdGVhZGluZXNzLiBJIGhhdmUgcHJhY3RpY2VzIHRoYXQgaGVscCBtZSByZXR1cm4uJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnSSByZXR1cm4gcXVpY2tseSBhbmQgd2l0aCBhIHBsYW4uIERlc3RhYmlsaXNhdGlvbiBpcyBhIHNpZ25hbCwgbm90IGEgc2VudGVuY2UuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAogIHsKICAgIGRpbTogNCwKICAgIHRleHQ6ICdIb3cgc292ZXJlaWduIGlzIHlvdXIgZGFpbHkgcmV0dXJuIHRvIHlvdXJzZWxmIH4gcmlnaHQgbm93LCBpbiB0aGlzIHNlYXNvbiBvZiB5b3VyIGxpZmU/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnTm90IGF0IGFsbCBzb3ZlcmVpZ24uIEkgZmVlbCBjYXB0dXJlZCBieSB0aGUgZGVtYW5kcyBhcm91bmQgbWUuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnRnJhZ2lsZS4gVGhlIGludGVudGlvbiBpcyB0aGVyZSBidXQgdGhlIHByYWN0aWNlIGNvbGxhcHNlcyB1bmRlciBwcmVzc3VyZS4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdHcm93aW5nLiBJIGFtIG1vcmUgaW50ZW50aW9uYWwgdGhhbiBJIHdhcyBhbmQgYnVpbGRpbmcgdG93YXJkIGNvbnNpc3RlbmN5LicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ0VzdGFibGlzaGVkLiBJIGhhdmUgcmVhbCBzb3ZlcmVpZ250eSBpbiBtb3N0IGFyZWFzIG9mIG15IHJldHVybi4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdEZWVwbHkgc292ZXJlaWduLiBUaGUgcmV0dXJuIGlzIHdobyBJIGFtLCBub3Qgc29tZXRoaW5nIEkgaGF2ZSB0byByZW1lbWJlciB0byBkby4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCl07CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgU0VBU09OIFJFU1VMVFMK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCmNvbnN0IFNFQVNPTlMgPSB7CiAgc2VlZDogewogICAga2V5OiAgICAgJ3NlZWQnLAogICAgaWNvbjogICAgJ/CfjLEnLAogICAgbmFtZTogICAgJ1RoZSBTZWVkJywKICAgIGNvbG9yOiAgICcjNEE4QzZGJywKICAgIGJnOiAgICAgICdsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDc0LDE0MCwxMTEsLjMpIDAlLCByZ2JhKDEzLDM0LDcxLC45KSAxMDAlKScsCiAgICBib3JkZXI6ICAncmdiYSg3NCwxNDAsMTExLC40KScsCiAgICBiYWRnZTogICAnWU9VUiBTRUFTT04gfiBUSEUgU0VFRCcsCiAgICBzdWI6ICAgICAnIkV2ZXJ5IHNvdmVyZWlnbiB0cmVlIHdhcyBvbmNlIGEgc2VlZCB0aGF0IGhhZCBub3QgeWV0IGRlY2lkZWQgdG8gZ3Jvdy4gWW91IGFyZSBkZWNpZGluZyByaWdodCBub3cuIFRoYXQgaXMgZXZlcnl0aGluZy4iJywKICAgIGRlc2NyaXB0aW9uOiAnWW91IGFyZSBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgb2YgeW91ciByZWxhdGlvbnNoaXAgd2l0aCB5b3Vyc2VsZiB+IGFuZCB0aGF0IGlzIGEgc2FjcmVkLCBwb3dlcmZ1bCBwbGFjZSB0byBiZS4gVGhlIFNlZWQgc2Vhc29uIGlzIG5vdCBhIGRlZmljaXQuIEl0IGlzIHBvdGVudGlhbCBpbiBpdHMgbW9zdCBjb25jZW50cmF0ZWQgZm9ybS4gWW91IGhhdmUgZXZlcnl0aGluZyB5b3UgbmVlZCBpbnNpZGUgeW91IH4gdGhlIHdpc2RvbSwgdGhlIGVzc2VuY2UsIHRoZSBzb3ZlcmVpZ24gc2VsZi4gVGhlIG1pcnJvciBpcyBuZXcuIFRoZSByZWZsZWN0aW9uIG1heSBiZSBzdXJwcmlzaW5nLiBUaGlzIGlzIHRoZSBtb3N0IGltcG9ydGFudCBzZWFzb24gb2YgYWxsIGJlY2F1c2UgdGhlIGRlY2lzaW9ucyB5b3UgbWFrZSBoZXJlIHNoYXBlIGV2ZXJ5IHJvb3QgdGhhdCBmb2xsb3dzLicsCiAgICBzdHJlbmd0aHM6IFsnWW91IGFyZSBzZWxmLWF3YXJlIGVub3VnaCB0byB0YWtlIHRoaXMgYXNzZXNzbWVudCB+IHRoYXQgaXMgdGhlIGZpcnN0IGFjdCBvZiBzb3ZlcmVpZ250eScsICdUaGUgU2VlZCBzZWFzb24gaXMgd2hlcmUgdGhlIG1vc3QgcHJvZm91bmQgdHJhbnNmb3JtYXRpb24gYmVnaW5zIH4gbm90IGF0IHRoZSB0b3AnLCAnWW91IGhhdmUgZXZlcnkgcmVzb3VyY2UgaW5zaWRlIHlvdS4gVGhlIHdvcmsgaXMgZXhjYXZhdGlvbiwgbm90IGNvbnN0cnVjdGlvbiddLAogICAgbmV4dFN0ZXA6ICdCZWdpbiB3aXRoIHRoZSBNRSBCT1NTIEd1aWRlIH4geW91ciBmaXJzdCBob25lc3QgY29udmVyc2F0aW9uIHdpdGggeW91cnNlbGYuIFRoZW4gbW92ZSB0byB0aGUgU292ZXJlaWduIFNXT1RWVFMgdG8gc3VydmV5IHlvdXIgdGVycmFpbiB3aXRoIHRydXRoLicsCiAgICByb3V0ZTogeyBwcmltYXJ5OiB7IHRleHQ6ICfwn5GRIERvd25sb2FkIFlvdXIgTUUgQk9TUyBHdWlkZScsIHVybDogJ2h0dHBzOi8vaGVsbG8uaGFuZHNoYWtlLmFmcmljYS9BUi9tZWJvc3Mtc2VlZCcgfSwgc2Vjb25kYXJ5OiB7IHRleHQ6ICdCZWdpbiB0aGUgU292ZXJlaWduIFNXT1RWVFMnLCB1cmw6ICdodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vdm9ydGV4JyB9LCB0ZXJ0aWFyeTogeyB0ZXh0OiAn4oaSIENvbnRpbnVlIH4gWW91ciBWb3J0ZXggQWx0aXR1ZGUgQXNzZXNzbWVudCcsIHVybDogJ2h0dHBzOi8vdGhlc3VtbWl0LnNvdmVyZWlnbm1vbWVudHVtLmNvbS92b3J0ZXgnIH0gfQogIH0sCiAgcm9vdHM6IHsKICAgIGtleTogICAgICdyb290cycsCiAgICBpY29uOiAgICAn8J+MvycsCiAgICBuYW1lOiAgICAnVGhlIFJvb3RzJywKICAgIGNvbG9yOiAgICcjMkM3QTdCJywKICAgIGJnOiAgICAgICdsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDQ0LDEyMiwxMjMsLjMpIDAlLCByZ2JhKDEzLDM0LDcxLC45KSAxMDAlKScsCiAgICBib3JkZXI6ICAncmdiYSg0NCwxMjIsMTIzLC40KScsCiAgICBiYWRnZTogICAnWU9VUiBTRUFTT04gfiBUSEUgUk9PVFMnLAogICAgc3ViOiAgICAgJyJZb3Uga25vdyB3aG8geW91IGFyZS4gVGhlIHdvcmxkIGtlZXBzIGNhbGxpbmcgeW91IGF3YXkuIFRoZSB3b3JrIG5vdyBpcyBub3QgdG8gZmluZCB5b3Vyc2VsZiB+IGl0IGlzIHRvIGJ1aWxkIHRoZSB3YWxscyB0aGF0IGtlZXAgdGhlIHdvcmxkIGZyb20gdGFraW5nIHlvdS4iJywKICAgIGRlc2NyaXB0aW9uOiAnWW91IGhhdmUgYSBzdHJvbmcgc2Vuc2Ugb2Ygc2VsZiB+IGJ1dCBsaWZlIGtlZXBzIHB1bGxpbmcgeW91IGZyb20gaXQuIFRoZSBSb290cyBzZWFzb24gaXMgb25lIG9mIHRoZSBtb3N0IGNvbW1vbiBhbmQgbW9zdCB1bmRlcmVzdGltYXRlZCBwbGFjZXMgdG8gYmUuIFlvdSBrbm93IHdoYXQgbWF0dGVycy4gWW91IHVuZGVyc3RhbmQgdGhlIGxpbmUgYmV0d2VlbiBwcml2YXRlIGFuZCBwcm9mZXNzaW9uYWwuIEJ1dCB0aGUgc3lzdGVtcyB0byBwcm90ZWN0IHRoYXQga25vd2luZyBhcmUgbm90IHlldCBmdWxseSBpbiBwbGFjZS4gVGhlIHJldHVybiBpcyByZWFsIH4gYnV0IGl0IGlzIG5vdCB5ZXQgY29uc2lzdGVudC4nLAogICAgc3RyZW5ndGhzOiBbJ1lvdSBrbm93IHlvdXJzZWxmIHdlbGwgZW5vdWdoIHRvIGZlZWwgaXQgd2hlbiB5b3UgYXJlIGJlaW5nIHB1bGxlZCBhd2F5JywgJ1lvdXIgYXdhcmVuZXNzIGlzIHlvdXIgZ3JlYXRlc3QgYXNzZXQgfiB1c2UgaXQgdG8gYnVpbGQgc3lzdGVtcyBub3QganVzdCBpbnRlbnRpb25zJywgJ1RoZSBSb290cyBzZWFzb24gcHJvZHVjZXMgdGhlIG1vc3QgcmVzaWxpZW50IHNvdmVyZWlnbnMgd2hlbiBpdHMgbGVzc29ucyBhcmUgaG9ub3VyZWQnXSwKICAgIG5leHRTdGVwOiAnQnVpbGQgeW91ciB3ZWF0aGVyIHZhbmUgc3lzdGVtcyB+IHRoZSBkYWlseSBwcmFjdGljZXMgdGhhdCBtYWtlIHRoZSByZXR1cm4gcmVsaWFibGUuIFRoZSBOYWhsYS1OYWxhIFBlcnNvbmFsIEVtcGF0aHkgTWFwIGlzIHlvdXIgbmV4dCB0b29sLicsCiAgICByb3V0ZTogeyBwcmltYXJ5OiB7IHRleHQ6ICfwn5GRIEV4cGxvcmUgdGhlIE5haGxhLU5hbGEgTWV0aG9kJywgdXJsOiAnaHR0cHM6Ly9zaGVlYm9zc3NvbHV0aW9uaXN0LmNvbScgfSwgc2Vjb25kYXJ5OiB7IHRleHQ6ICdKb2luIFNoZSBFdm9sdmVzIEFmcmljYSBDb21tdW5pdHknLCB1cmw6ICdodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vaW52aXRhdGlvbicgfSwgdGVydGlhcnk6IHsgdGV4dDogJ+KGkiBDb250aW51ZSB+IFlvdXIgVm9ydGV4IEFsdGl0dWRlIEFzc2Vzc21lbnQnLCB1cmw6ICdodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vdm9ydGV4JyB9IH0KICB9LAogIHRydW5rOiB7CiAgICBrZXk6ICAgICAndHJ1bmsnLAogICAgaWNvbjogICAgJ/CfjLMnLAogICAgbmFtZTogICAgJ1RoZSBUcnVuaycsCiAgICBjb2xvcjogICAnIzJCNkNCMCcsCiAgICBiZzogICAgICAnbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSg0MywxMDgsMTc2LC4zKSAwJSwgcmdiYSgxMywzNCw3MSwuOSkgMTAwJSknLAogICAgYm9yZGVyOiAgJ3JnYmEoNDMsMTA4LDE3NiwuNCknLAogICAgYmFkZ2U6ICAgJ1lPVVIgU0VBU09OIH4gVEhFIFRSVU5LJywKICAgIHN1YjogICAgICciWW91IGJlbmQgaW4gdGhlIHN0b3JtIGJ1dCB5b3UgZG8gbm90IGJyZWFrLiBUaGF0IGlzIG5vdCBzbWFsbC4gVGhhdCBpcyBldmVyeXRoaW5nLiBOb3cgfiBsZXQgdXMgbWFrZSB0aGUgcm9vdCBzeXN0ZW0gYXMgc3Ryb25nIGFzIHRoZSB0cmVlIGl0IGhvbGRzLiInLAogICAgZGVzY3JpcHRpb246ICdZb3UgaGF2ZSBhIHN0cm9uZyBjZW50cmUuIFlvdSBrbm93IHdobyB5b3UgYXJlLCB5b3UgaG9ub3VyIHlvdXIgdmFsdWVzIG1vc3Qgb2YgdGhlIHRpbWUsIGFuZCB5b3UgaGF2ZSBhIHJlYWwgc2Vuc2Ugb2Ygd2hlcmUgdGhlIGxpbmUgYmVsb25ncy4gVGhlIFRydW5rIHNlYXNvbiBpcyB3aGVyZSBtb3N0IGNhcGFibGUsIHNlbGYtYXdhcmUgd29tZW4gb3BlcmF0ZSB+IGFuZCBpdCBpcyBhIGdlbnVpbmVseSBwb3dlcmZ1bCBwbGFjZS4gQnV0IHRoZXJlIGFyZSBzdGlsbCBnYXBzLiBUaGUgbGluZSBibHVycyB1bmRlciBwcmVzc3VyZS4gVGhlIHJldHVybiBpcyBwcmFjdGljZWQgYnV0IG5vdCB5ZXQgc292ZXJlaWduLiBZb3UgYXJlIGJ1aWxkaW5nIHRvd2FyZCB0aGUgQmxvb20gfiBhbmQgdGhlIGRpc3RhbmNlIGlzIHNob3J0ZXIgdGhhbiB5b3UgdGhpbmsuJywKICAgIHN0cmVuZ3RoczogWydZb3VyIGZvdW5kYXRpb24gaXMgcmVhbCB+IHlvdSBoYXZlIGRvbmUgdGhlIGZvdW5kYXRpb25hbCB3b3JrIGFuZCBpdCBzaG93cycsICdZb3UgbW92ZSB0aHJvdWdoIGNoYWxsZW5nZSB3aXRob3V0IGxvc2luZyB5b3Vyc2VsZiBmb3IgbG9uZycsICdZb3UgYXJlIHBvc2l0aW9uZWQgdG8gbW92ZSBpbnRvIEJsb29tIGFsdGl0dWRlIHdpdGggdGFyZ2V0ZWQsIGludGVudGlvbmFsIHdvcmsnXSwKICAgIG5leHRTdGVwOiAnRGVlcGVuIHlvdXIgc3lzdGVtIG9mIHJldHVybi4gVGFrZSB0aGUgU292ZXJlaWduIExpZmVjeWNsZSBGcmFtZXdvcmsgYW5kIGVuZ2FnZSB3aXRoIFN0YWdlIDMgfiBTb3ZlcmVpZ24gSW50ZW50aW9uLiBCdWlsZCB5b3VyIDM2MMKwIExlZ2FjeSBCbHVlcHJpbnQuJywKICAgIHJvdXRlOiB7IHByaW1hcnk6IHsgdGV4dDogJ/CfkZEgQWNjZXNzIHRoZSBTb3ZlcmVpZ24gTGlmZWN5Y2xlJywgdXJsOiAnaHR0cHM6Ly9zaGVlYm9zc3NvbHV0aW9uaXN0LmNvbScgfSwgc2Vjb25kYXJ5OiB7IHRleHQ6ICdBY2Nlc3MgWW91ciBGcmVlIFdlYmluYXIgU2VyaWVzJywgdXJsOiAnaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL2ludml0YXRpb24nIH0sIHRlcnRpYXJ5OiB7IHRleHQ6ICfihpIgQ29udGludWUgfiBZb3VyIFZvcnRleCBBbHRpdHVkZSBBc3Nlc3NtZW50JywgdXJsOiAnaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL3ZvcnRleCcgfSB9CiAgfSwKICBibG9vbTogewogICAga2V5OiAgICAgJ2Jsb29tJywKICAgIGljb246ICAgICfwn4y6JywKICAgIG5hbWU6ICAgICdUaGUgQmxvb20nLAogICAgY29sb3I6ICAgJyM2QjQ2QzEnLAogICAgYmc6ICAgICAgJ2xpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMTA3LDcwLDE5MywuMykgMCUsIHJnYmEoMTMsMzQsNzEsLjkpIDEwMCUpJywKICAgIGJvcmRlcjogICdyZ2JhKDEwNyw3MCwxOTMsLjQpJywKICAgIGJhZGdlOiAgICdZT1VSIFNFQVNPTiB+IFRIRSBCTE9PTScsCiAgICBzdWI6ICAgICAnIlRoZSBNRSBCT1NTIGFuZCB0aGUgU0hFIEUtQm9zcyBjb2V4aXN0IGluIHlvdSB3aXRoIGdyYWNlLiBZb3UgaGF2ZSBkb25lIHdoYXQgbW9zdCBuZXZlciBkby4gTm93IH4gYnVpbGQgdGhlIGluZnJhc3RydWN0dXJlIHRoYXQgbWFrZXMgaXQgcGVybWFuZW50LiInLAogICAgZGVzY3JpcHRpb246ICdZb3UgbGl2ZSBpbiB5b3VyIGR1YWxpdHkgd2l0aCBncmFjZS4gVGhlIE1FIEJPU1MgYW5kIHRoZSBTSEUgRS1Cb3NzIGFyZSBkaXN0aW5jdCwgcHJvdGVjdGVkIGFuZCBjb2V4aXN0aW5nIHdpdGhpbiB5b3UuIFlvdSBoYXZlIGRyYXduIHRoZSBsaW5lLiBZb3UgaG9ub3VyIGl0IGNvbnNpc3RlbnRseS4gWW91IGdvIGhvbWUgdG8geW91cnNlbGYgfiBhbmQgeW91IHJldHVybiB0byB5b3VyIHdvcmsgd2l0aCBhIHBsYW4uIFRoZSBCbG9vbSBzZWFzb24gaXMgcmVtYXJrYWJsZSBiZWNhdXNlIG1vc3Qgd29tZW4gbmV2ZXIgcmVhY2ggaXQuIFlvdSBhcmUgaGVyZS4gVGhlIHdvcmsgbm93IGlzIG1ha2luZyBpdCBzdHJ1Y3R1cmFsLCBzY2FsYWJsZSBhbmQgbGVnYWN5LXJlYWR5LicsCiAgICBzdHJlbmd0aHM6IFsnWW91IGFyZSBsaXZpbmcgcHJvb2YgdGhhdCB0aGUgZHVhbGl0eSBpcyBwb3NzaWJsZSB+IHlvdXIgcHJlc2VuY2UgaGVyZSBtYXR0ZXJzJywgJ1lvdXIgc3lzdGVtcyBvZiByZXR1cm4gYXJlIGVzdGFibGlzaGVkIGFuZCB3b3JraW5nJywgJ1lvdSBhcmUgcG9zaXRpb25lZCB0byBtZW50b3Igb3RoZXJzIHRocm91Z2ggd2hhdCB5b3UgaGF2ZSBtYXN0ZXJlZCB+IHRoYXQgaXMgdGhlIGJlZ2lubmluZyBvZiBsZWdhY3knXSwKICAgIG5leHRTdGVwOiAnRW50ZXIgdGhlIEhFUiBXb21hbml0eSBNYXN0ZXJtaW5kIHdoZXJlIEJsb29tIHNlYXNvbiBzb3ZlcmVpZ25zIGJ1aWxkIHRvZ2V0aGVyLiBZb3VyIG5leHQgc3RhZ2UgaXMgU292ZXJlaWduIExlZ2FjeS4nLAogICAgcm91dGU6IHsgcHJpbWFyeTogeyB0ZXh0OiAn8J+RkSBKb2luIHRoZSBIRVIgV29tYW5pdHkgTWFzdGVybWluZCcsIHVybDogJ2h0dHBzOi8vdGhlc3VtbWl0LnNvdmVyZWlnbm1vbWVudHVtLmNvbS9pbnZpdGF0aW9uJyB9LCBzZWNvbmRhcnk6IHsgdGV4dDogJ0hhdmUgWW91ciBTdG9yeSBEb2N1bWVudGVkIH4gU2hlIEV2b2x2ZXMgQWZyaWNhJywgdXJsOiAnaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL2ludml0YXRpb24nIH0sIHRlcnRpYXJ5OiB7IHRleHQ6ICfihpIgQ29udGludWUgfiBZb3VyIFZvcnRleCBBbHRpdHVkZSBBc3Nlc3NtZW50JywgdXJsOiAnaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL3ZvcnRleCcgfSB9CiAgfSwKICBzb3ZlcmVpZ246IHsKICAgIGtleTogICAgICdzb3ZlcmVpZ24nLAogICAgaWNvbjogICAgJ/CfkZEnLAogICAgbmFtZTogICAgJ1RoZSBTb3ZlcmVpZ24nLAogICAgY29sb3I6ICAgJyNDOTk1MUEnLAogICAgYmc6ICAgICAgJ2xpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMjAxLDE0OSwyNiwuMikgMCUsIHJnYmEoMTMsMzQsNzEsLjkyKSAxMDAlKScsCiAgICBib3JkZXI6ICAncmdiYSgyMDEsMTQ5LDI2LC41KScsCiAgICBiYWRnZTogICAnWU9VUiBTRUFTT04gfiBUSEUgU09WRVJFSUdOJywKICAgIHN1YjogICAgICciWW91IGJ1aWx0IHRoZSBlbXBpcmUgYW5kIGtlcHQgeW91ciBzb3VsLiBZb3UgY3JlYXRlZCB0aGUgcGxhdGZvcm1zIGFuZCBrZXB0IHlvdXIgcHJpdmFjeS4gWW91IGltcGFjdGVkIHRob3VzYW5kcyBhbmQga2VwdCB5b3VyIGxpZmUuIFRoYXQgaXMgbm90IGEgY29udHJhZGljdGlvbiB+IHRoYXQgaXMgdGhlIHdob2xlIHBvaW50LiInLAogICAgZGVzY3JpcHRpb246ICdZb3UgYXJlIGhvbWUgaW4geW91cnNlbGYuIFRoZSBtaXJyb3IgaXMgYWx3YXlzIHRoZXJlLiBUaGUgbGVucyBpcyBjbGVhci4gWW91IG1vdmUgdGhyb3VnaCBldmVyeSBzZWFzb24gfiBwcml2YXRlLCBwdWJsaWMsIHByb2Zlc3Npb25hbCB+IHdpdGhvdXQgbG9zaW5nIHRoZSB0aHJlYWQgYmFjayB0byB3aG8geW91IGFyZS4gVGhlIHJldHVybiBpcyBub3Qgc29tZXRoaW5nIHlvdSByZW1lbWJlciB0byBkby4gSXQgaXMgd2hvIHlvdSBhcmUuIFRoZSBTb3ZlcmVpZ24gc2Vhc29uIGlzIHdoZXJlIGxlZ2FjeSBiZWNvbWVzIHRoZSBwcmltYXJ5IHdvcmsgfiBiZWNhdXNlIHRoZSBzZWxmIGlzIGZ1bGx5IGVzdGFibGlzaGVkIGFuZCB0aGUgZW1waXJlIGhhcyBmaXJtIGZvdW5kYXRpb25zLicsCiAgICBzdHJlbmd0aHM6IFsnWW91IGFyZSBsaXZpbmcgcHJvb2Ygb2YgdGhlIE1FIEJPU1MgcGhpbG9zb3BoeSB+IHlvdXIgZXhpc3RlbmNlIGluIHRoaXMgc2Vhc29uIGlzIHRoZSB0ZXN0aW1vbnknLCAnWW91ciBzb3ZlcmVpZ250eSBpcyBzdHJ1Y3R1cmFsIH4gaXQgaXMgYnVpbHQgaW50byB5b3VyIHN5c3RlbXMsIG5vdCBkZXBlbmRlbnQgb24geW91ciB3aWxscG93ZXInLCAnWW91ciBwcmltYXJ5IHdvcmsgbm93IGlzIFNvdmVyZWlnbiBMZWdhY3kgfiBQYXkgSXQgRm9yd2FyZCB+IGV4dGVuZGluZyB5b3VyIGhhbmQgdG8gdGhlIG5leHQgd29tYW4nXSwKICAgIG5leHRTdGVwOiAnQSBkaXJlY3QgY29uc3VsdGF0aW9uIHdpdGggdGhlIEZvdW5kZXIuIFlvdXIgc3RvcnkgYmVsb25ncyBpbiB0aGUgU2hlIEV2b2x2ZXMgQWZyaWNhIGFyY2hpdmUgfiBhbmQgeW91ciB3aXNkb20gYmVsb25ncyBpbiB0aGUgbmV4dCB3b21hblwncyBoYW5kcy4nLAogICAgcm91dGU6IHsgcHJpbWFyeTogeyB0ZXh0OiAn8J+RkSBCb29rIGEgRm91bmRlciBDb25zdWx0YXRpb24nLCB1cmw6ICdodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vaW52aXRhdGlvbicgfSwgc2Vjb25kYXJ5OiB7IHRleHQ6ICdIYXZlIFlvdXIgU3RvcnkgRmVhdHVyZWQgfiBTaGUgRXZvbHZlcyBBZnJpY2EnLCB1cmw6ICdodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vaW52aXRhdGlvbicgfSwgdGVydGlhcnk6IHsgdGV4dDogJ+KGkiBDb250aW51ZSB+IFlvdXIgVm9ydGV4IEFsdGl0dWRlIEFzc2Vzc21lbnQnLCB1cmw6ICdodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vdm9ydGV4JyB9IH0KICB9Cn07Cgpjb25zdCBTRUFTT05fS0VZUyA9IFsnc2VlZCcsJ3Jvb3RzJywndHJ1bmsnLCdibG9vbScsJ3NvdmVyZWlnbiddOwpjb25zdCBESU1fTkFNRVMgPSBbJ09yZGVyIG9mIEFycml2YWwnLCdUaGUgQmx1cicsJ015IEVzc2VuY2UnLCdUaGUgTGluZScsJ1RoZSBSZXR1cm4nXTsKCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBTVEFURQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KbGV0IGN1cnJlbnRRID0gMDsKbGV0IGFuc3dlcnMgID0gbmV3IEFycmF5KFFVRVNUSU9OUy5sZW5ndGgpLmZpbGwobnVsbCk7CmxldCBmaW5hbFNlYXNvbiA9IG51bGw7CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgSEVMUEVSUwrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KZnVuY3Rpb24gc2hvdyhpZCl7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsgfQpmdW5jdGlvbiBoaWRlKGlkKXsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyB9CmZ1bmN0aW9uIHNjcm9sbDJ0b3AoKXsgd2luZG93LnNjcm9sbFRvKHt0b3A6MCxiZWhhdmlvcjonc21vb3RoJ30pOyB9CgpmdW5jdGlvbiBnZXRTZWFzb24odG90YWwpewogIGNvbnN0IG1heCA9IFFVRVNUSU9OUy5sZW5ndGggKiA0OwogIGNvbnN0IHBjdCA9IHRvdGFsIC8gbWF4OwogIGlmKHBjdCA8IDAuMikgIHJldHVybiAnc2VlZCc7CiAgaWYocGN0IDwgMC40KSAgcmV0dXJuICdyb290cyc7CiAgaWYocGN0IDwgMC42KSAgcmV0dXJuICd0cnVuayc7CiAgaWYocGN0IDwgMC44KSAgcmV0dXJuICdibG9vbSc7CiAgcmV0dXJuICdzb3ZlcmVpZ24nOwp9CgpmdW5jdGlvbiBnZXREaW1TY29yZXMoKXsKICAvLyA0IHF1ZXN0aW9ucyBwZXIgZGltZW5zaW9uLCBtYXggMTYgcGVyIGRpbWVuc2lvbgogIHJldHVybiBbMCwxLDIsMyw0XS5tYXAoZD0+ewogICAgY29uc3Qgc3RhcnQgPSBkKjQ7CiAgICBjb25zdCBzdW0gPSBhbnN3ZXJzLnNsaWNlKHN0YXJ0LHN0YXJ0KzQpLnJlZHVjZSgoYSxiKT0+YSsoYnx8MCksMCk7CiAgICByZXR1cm4gTWF0aC5yb3VuZCgoc3VtLzE2KSoxMDApOwogIH0pOwp9CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgRkxPQVRJRVMK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCihmdW5jdGlvbigpewogIGNvbnN0IHdyYXA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aWVzJyk7CiAgY29uc3Qgc3ltcz1bJ/CfkZEnLCfinKYnLCfil4YnLCfimaYnLCfil4gnXTsKICBmb3IobGV0IGk9MDtpPDE4O2krKyl7CiAgICBjb25zdCBlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgZWwuY2xhc3NOYW1lPSdmbG9hdGllJzsKICAgIGVsLnRleHRDb250ZW50PXN5bXNbaSVzeW1zLmxlbmd0aF07CiAgICBjb25zdCBzPTgrTWF0aC5yYW5kb20oKSoxNDsKICAgIGVsLnN0eWxlLmNzc1RleHQ9YGxlZnQ6JHtNYXRoLnJhbmRvbSgpKjEwMH0lO2ZvbnQtc2l6ZToke3N9cHg7YW5pbWF0aW9uLWR1cmF0aW9uOiR7MTYrTWF0aC5yYW5kb20oKSoyNH1zO2FuaW1hdGlvbi1kZWxheToke01hdGgucmFuZG9tKCkqMjR9cztjb2xvcjpyZ2JhKDIwMSwxNDksMjYsJHsuMDgrTWF0aC5yYW5kb20oKSowLjE4fSk7YDsKICAgIHdyYXAuYXBwZW5kQ2hpbGQoZWwpOwogIH0KfSkoKTsKCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBBU1NFU1NNRU5UIEZMT1cK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCmZ1bmN0aW9uIHN0YXJ0QXNzZXNzbWVudCgpewogIGhpZGUoJ2ludHJvU2NyZWVuJyk7CiAgc2hvdygncHJvZ3Jlc3NXcmFwJyk7CiAgc2hvdygncVN0YWdlJyk7CiAgcmVuZGVyUXVlc3Rpb24oKTsKICBzY3JvbGwydG9wKCk7Cn0KCmZ1bmN0aW9uIHJlbmRlclF1ZXN0aW9uKCl7CiAgY29uc3QgcSAgICA9IFFVRVNUSU9OU1tjdXJyZW50UV07CiAgY29uc3QgZGltICA9IERJTUVOU0lPTlNbcS5kaW1dOwogIGNvbnN0IGNhcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncUNhcmQnKTsKCiAgLy8gYW5pbWF0ZQogIGNhcmQuc3R5bGUuYW5pbWF0aW9uPSdub25lJzsgY2FyZC5vZmZzZXRIZWlnaHQ7IGNhcmQuc3R5bGUuYW5pbWF0aW9uPScnOwoKICAvLyBkaW0gbGFiZWwKICBjb25zdCBsYmwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncURpbUxhYmVsJyk7CiAgbGJsLnRleHRDb250ZW50ID0gZGltLmxhYmVsOwogIGxibC5zdHlsZS5iYWNrZ3JvdW5kID0gZGltLmJnOwogIGxibC5zdHlsZS5ib3JkZXIgPSBgMXB4IHNvbGlkICR7ZGltLmJvcmRlcn1gOwogIGxibC5zdHlsZS5jb2xvciA9IGRpbS5jb2xvcjsKCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3FOdW0nKS50ZXh0Q29udGVudCAgPSBgUXVlc3Rpb24gJHtjdXJyZW50USsxfSBvZiAke1FVRVNUSU9OUy5sZW5ndGh9YDsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncVRleHQnKS50ZXh0Q29udGVudCA9IHEudGV4dDsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncENvdW50JykudGV4dENvbnRlbnQ9IGBRdWVzdGlvbiAke2N1cnJlbnRRKzF9IG9mICR7UVVFU1RJT05TLmxlbmd0aH1gOwoKICAvLyBwcm9ncmVzcyBiYXIKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ3Jlc3NGaWxsJykuc3R5bGUud2lkdGggPSAoY3VycmVudFEvUVVFU1RJT05TLmxlbmd0aCoxMDApKyclJzsKCiAgLy8gZGltZW5zaW9uIGRvdHMKICBbMCwxLDIsMyw0XS5mb3JFYWNoKGk9PnsKICAgIGNvbnN0IGRvdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZCcraSk7CiAgICBkb3QuY2xhc3NOYW1lPSdkaW0tZG90JzsKICAgIGNvbnN0IGRpbVN0YXJ0ID0gaSo0LCBkaW1FbmQgPSBkaW1TdGFydCszOwogICAgaWYoY3VycmVudFEgPiBkaW1FbmQpIGRvdC5jbGFzc0xpc3QuYWRkKCdjb21wbGV0ZScpOwogICAgZWxzZSBpZihjdXJyZW50USA+PSBkaW1TdGFydCAmJiBjdXJyZW50USA8PSBkaW1FbmQpIGRvdC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICB9KTsKCiAgLy8gYW5zd2VycwogIGNvbnN0IHdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5zd2Vyc1dyYXAnKTsKICB3cmFwLmlubmVySFRNTD0nJzsKICBjb25zdCBsZXR0ZXJzPVsnQScsJ0InLCdDJywnRCcsJ0UnXTsKICBxLmFuc3dlcnMuZm9yRWFjaCgoYW5zLGkpPT57CiAgICBjb25zdCBidG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICBidG4uY2xhc3NOYW1lPSdhbnMtYnRuJysoYW5zd2Vyc1tjdXJyZW50UV09PT1hbnMuc2NvcmU/JyBzZWxlY3RlZCc6JycpOwogICAgYnRuLmlubmVySFRNTD1gPHNwYW4gY2xhc3M9ImFucy1sdHIiPiR7bGV0dGVyc1tpXX08L3NwYW4+PHNwYW4gY2xhc3M9ImFucy10ZXh0Ij4ke2Fucy50ZXh0fTwvc3Bhbj5gOwogICAgYnRuLm9uY2xpY2s9KCk9PnNlbGVjdEFuc3dlcihpLGFucy5zY29yZSxidG4pOwogICAgd3JhcC5hcHBlbmRDaGlsZChidG4pOwogIH0pOwoKICAvLyBuZXh0IGJ1dHRvbgogIGNvbnN0IG5iPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXh0QnRuJyk7CiAgbmIudGV4dENvbnRlbnQ9Y3VycmVudFE8UVVFU1RJT05TLmxlbmd0aC0xPydDb250aW51ZSDihpInOidSZXZlYWwgTXkgU2Vhc29uIPCfkZEnOwogIG5iLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScsIGFuc3dlcnNbY3VycmVudFFdIT09bnVsbCk7Cn0KCmZ1bmN0aW9uIHNlbGVjdEFuc3dlcihpZHgsc2NvcmUsYnRuKXsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYW5zLWJ0bicpLmZvckVhY2goYj0+Yi5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpKTsKICBidG4uY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTsKICBhbnN3ZXJzW2N1cnJlbnRRXT1zY29yZTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV4dEJ0bicpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwp9CgpmdW5jdGlvbiBuZXh0UXVlc3Rpb24oKXsKICBpZihhbnN3ZXJzW2N1cnJlbnRRXT09PW51bGwpIHJldHVybjsKICBpZihjdXJyZW50UTxRVUVTVElPTlMubGVuZ3RoLTEpewogICAgY3VycmVudFErKzsKICAgIHJlbmRlclF1ZXN0aW9uKCk7CiAgICBzY3JvbGwydG9wKCk7CiAgfSBlbHNlIHsKICAgIGhpZGUoJ3FTdGFnZScpOyBoaWRlKCdwcm9ncmVzc1dyYXAnKTsKICAgIHNob3coJ2NhcHR1cmVTY3JlZW4nKTsKICAgIHNjcm9sbDJ0b3AoKTsKICB9Cn0KCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBSRVNVTFQK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCmZ1bmN0aW9uIHNob3dSZXN1bHQoKXsKICBoaWRlKCdjYXB0dXJlU2NyZWVuJyk7CiAgY29uc3QgdG90YWwgID0gYW5zd2Vycy5yZWR1Y2UoKGEsYik9PmErKGJ8fDApLDApOwogIGNvbnN0IHNLZXkgICA9IGdldFNlYXNvbih0b3RhbCk7CiAgY29uc3Qgc2Vhc29uID0gU0VBU09OU1tzS2V5XTsKICBjb25zdCBkaW1QY3QgPSBnZXREaW1TY29yZXMoKTsKICBmaW5hbFNlYXNvbiAgPSB7c0tleSxzZWFzb24sdG90YWx9OwoKICAvLyBoZXJvCiAgY29uc3QgaGVybz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0SGVybycpOwogIGhlcm8uc3R5bGUuYmFja2dyb3VuZD1zZWFzb24uYmc7CiAgaGVyby5zdHlsZS5ib3JkZXI9YDFweCBzb2xpZCAke3NlYXNvbi5ib3JkZXJ9YDsKCiAgY29uc3QgYmFkZ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdEJhZGdlJyk7CiAgYmFkZ2UudGV4dENvbnRlbnQ9c2Vhc29uLmJhZGdlOwogIGJhZGdlLnN0eWxlLmJhY2tncm91bmQ9YCR7c2Vhc29uLmNvbG9yfTIyYDsKICBiYWRnZS5zdHlsZS5ib3JkZXI9YDFweCBzb2xpZCAke3NlYXNvbi5jb2xvcn01NWA7CiAgYmFkZ2Uuc3R5bGUuY29sb3I9c2Vhc29uLmNvbG9yOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0SWNvbicpLnRleHRDb250ZW50PXNlYXNvbi5pY29uOwogIGNvbnN0IG5hbWVFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0TmFtZScpOwogIG5hbWVFbC50ZXh0Q29udGVudD1zZWFzb24ubmFtZTsKICBuYW1lRWwuc3R5bGUuY29sb3I9c2Vhc29uLmNvbG9yOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRTdWInKS50ZXh0Q29udGVudD1zZWFzb24uc3ViOwoKICAvLyBkaW0gYmFycwogIGNvbnN0IGJhcnM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpbUJhcnMnKTsKICBiYXJzLmlubmVySFRNTD0nJzsKICBESU1fTkFNRVMuZm9yRWFjaCgobmFtZSxpKT0+ewogICAgY29uc3QgY2FyZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgY2FyZC5jbGFzc05hbWU9J2RpbS1iYXItY2FyZCc7CiAgICBjYXJkLmlubmVySFRNTD1gPHNwYW4gY2xhc3M9ImRiYy1uYW1lIj4ke25hbWV9PC9zcGFuPjxzcGFuIGNsYXNzPSJkYmMtc2NvcmUiIHN0eWxlPSJjb2xvcjoke3NlYXNvbi5jb2xvcn0iPiR7ZGltUGN0W2ldfSU8L3NwYW4+PGRpdiBjbGFzcz0iZGJjLXRyYWNrIj48ZGl2IGNsYXNzPSJkYmMtZmlsbCIgc3R5bGU9ImJhY2tncm91bmQ6JHtzZWFzb24uY29sb3J9IiBkYXRhLXc9IiR7ZGltUGN0W2ldfSUiPjwvZGl2PjwvZGl2PmA7CiAgICBiYXJzLmFwcGVuZENoaWxkKGNhcmQpOwogIH0pOwogIHNldFRpbWVvdXQoKCk9PnsgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmRiYy1maWxsJykuZm9yRWFjaChiPT5iLnN0eWxlLndpZHRoPWIuZGF0YXNldC53KTsgfSwxNTApOwoKICAvLyBib2R5CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdEJvZHknKS5pbm5lckhUTUw9YAogICAgPGgzPldoYXQgVGhpcyBTZWFzb24gTWVhbnMgRm9yIFlvdTwvaDM+CiAgICA8cD4ke3NlYXNvbi5kZXNjcmlwdGlvbn08L3A+CiAgICA8aDM+WW91ciBTdHJlbmd0aHMgUmlnaHQgTm93PC9oMz4KICAgIDx1bD4ke3NlYXNvbi5zdHJlbmd0aHMubWFwKHM9PmA8bGk+JHtzfTwvbGk+YCkuam9pbignJyl9PC91bD4KICAgIDxicj4KICAgIDxwIHN0eWxlPSJmb250LXNpemU6Ljc4cmVtO2NvbG9yOnZhcigtLWdvbGQyKTtmb250LXN0eWxlOml0YWxpYztmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZiI+8J+RkSBZb3VyIE5leHQgU3RlcDogJHtzZWFzb24ubmV4dFN0ZXB9PC9wPgogIGA7CgogIC8vIENUQXMKICBjb25zdCByPXNlYXNvbi5yb3V0ZTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Q3RhJykuaW5uZXJIVE1MPWAKICAgIDxhIGhyZWY9IiR7ci5wcmltYXJ5LnVybH0iIGNsYXNzPSJyLWJ0biByLXByaW1hcnkiIHN0eWxlPSJiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsJHtzZWFzb24uY29sb3J9LCR7c2Vhc29uLmNvbG9yfTk5KSI+JHtyLnByaW1hcnkudGV4dH08L2E+CiAgICA8YSBocmVmPSIke3Iuc2Vjb25kYXJ5LnVybH0iIGNsYXNzPSJyLWJ0biByLXNlY29uZGFyeSI+JHtyLnNlY29uZGFyeS50ZXh0fTwvYT4KICAgIDxhIGhyZWY9IiR7ci50ZXJ0aWFyeS51cmx9IiBjbGFzcz0ici1idG4gci1zZWNvbmRhcnkiIHN0eWxlPSJib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpIj7ihpIgJHtyLnRlcnRpYXJ5LnRleHR9PC9hPgogIGA7CgogIC8vIHNlYXNvbiBsYWRkZXIgaW5kaWNhdG9yCiAgY29uc3QgaWR4PVNFQVNPTl9LRVlTLmluZGV4T2Yoc0tleSk7CiAgU0VBU09OX0tFWVMuZm9yRWFjaCgoXyxpKT0+eyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2wnK2kpLnRleHRDb250ZW50PWk9PT1pZHg/J+KGkCBZb3UnOicnOyB9KTsKCiAgc2hvdygncmVzdWx0U2NyZWVuJyk7CiAgc2Nyb2xsMnRvcCgpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzc0ZpbGwnKS5zdHlsZS53aWR0aD0nMTAwJSc7Cn0KCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBTSEFSRSArIFJFU0VUCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwpmdW5jdGlvbiBjb3B5U2hhcmUoKXsKICBpZighZmluYWxTZWFzb24pIHJldHVybjsKICBjb25zdCB7c2Vhc29uLHNLZXl9ID0gZmluYWxTZWFzb247CiAgY29uc3QgdGV4dD1gSSBqdXN0IGRpc2NvdmVyZWQgbXkgTUUgQk9TUyBTZWFzb24gfiBJIGFtICR7c2Vhc29uLm5hbWV9ICR7c2Vhc29uLmljb259XG5cbiR7c2Vhc29uLnN1Yi5yZXBsYWNlKC8iL2csJycpfVxuXG5EaXNjb3ZlciB5b3VyIHNlYXNvbiB+IFRoZSBNRSBCT1NTIEFzc2Vzc21lbnQgYnkgVGhlIFNIRSBFLUJvc3MgU29sdXRpb25pc3Q6XG50aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tXG5cbvCfkZEgU2hlIEV2b2x2ZXMgQWZyaWNhIH4gVm9pY2VzLiBWaXNpb25zLiBWaWN0b3JpZXMuYDsKICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS50aGVuKCgpPT57CiAgICBjb25zdCBidG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNoYXJlLWNvcHktYnRuJyk7CiAgICBidG4udGV4dENvbnRlbnQ9J0NvcGllZCEg4pyTJzsKICAgIHNldFRpbWVvdXQoKCk9PmJ0bi50ZXh0Q29udGVudD0nQ29weSBSZXN1bHQnLDI1MDApOwogIH0pOwp9CgpmdW5jdGlvbiByZXNldEFsbCgpewogIGN1cnJlbnRRPTA7IGFuc3dlcnM9bmV3IEFycmF5KFFVRVNUSU9OUy5sZW5ndGgpLmZpbGwobnVsbCk7IGZpbmFsU2Vhc29uPW51bGw7CiAgaGlkZSgncmVzdWx0U2NyZWVuJyk7IGhpZGUoJ3FTdGFnZScpOyBoaWRlKCdwcm9ncmVzc1dyYXAnKTsgaGlkZSgnY2FwdHVyZVNjcmVlbicpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzc0ZpbGwnKS5zdHlsZS53aWR0aD0nMCUnOwogIHNob3coJ2ludHJvU2NyZWVuJyk7IHNjcm9sbDJ0b3AoKTsKfQo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
← Back to Welcome
thesummit.sovereignmomentum.com
👑 The SHE E-Boss Solutionist ~ She Evolves Africa
👑
THE
ME BOSS
Assessment
"Everything you need to know about yourself is already living inside you ~ waiting for the right questions and the right space to surface."
T
Timeless Heroine Extraordinaire ~ the woman who exists before and after every role you hold
H
Her ~ the possessive that belongs to no one else
E
My Essence ~ the irreducible core that cannot be taken, sold or rebranded
B
Boldly ~ without apology, without permission
O
Obsessed ~ with herself first, as the foundation of everything
S
Self-Centered ~ the most generous act a woman can commit
S
Sovereignty ~ the state of being the governing authority of her own life
This assessment asks you twenty questions before asking you a single thing about your business. Because the woman behind the empire matters more than the empire itself. You are your own first audience. Your own first customer. Your own first investment.
🌱The Seed
🌿The Roots
🌳The Trunk
🌺The Bloom
👑The Sovereign
"She was never lost. She was simply waiting for someone to hold the mirror still long enough."~ The SHE E-Boss Solutionist
THE ME BOSS Assessment
Question 1 of 20
Your season is ready 👑
Enter your details to receive your full ME BOSS Season result ~ and to be placed on the right path for where you are right now.
Skip and see my result →✦ The Five Seasons ✦
🌱The Seed
🌿The Roots
🌳The Trunk
🌺The Bloom
👑The Sovereign
Share your season 👑
Invite another woman to discover hers ~ and her next step