<script>document.write(decodeURIComponent(escape(atob("PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InB0LUJSIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KPHRpdGxlPkxpdmVDb2luIHwgQm90IGRlIGVjb25vbWlhIGRvIEdvTGl2ZTwvdGl0bGU+CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJMaXZlQ29pbiDDqSBvIGJvdCBkZSBlY29ub21pYSBkbyBHb0xpdmUuIEdhbmhlIExDLCB0cmFiYWxoZSwgYXBvc3RlLCBwYWd1ZSBhbWlnb3MgZSBjb21wcmUgaXRlbnMgbmEgbG9qYS4iIC8+CjxzdHlsZT4KICA6cm9vdCB7CiAgICAtLWxhcmFuamE6ICNmOTczMTY7CiAgICAtLWxhcmFuamEtZXNjdXJvOiAjYzI0MTBjOwogICAgLS1sYXJhbmphLWNsYXJvOiAjZmRiYTc0OwogICAgLS1iZzogI2Y5NzMxNjsKICAgIC0tcGFpbmVsOiAjMmIyZDMxOwogICAgLS1wYWluZWwtZXNjdXJvOiAjMWUxZjIyOwogICAgLS1wYWluZWwtY2xhcm86ICMzMTMzMzg7CiAgICAtLXRleHRvOiAjZjJmM2Y1OwogICAgLS1tdXRlZDogI2I1YmFjMTsKICAgIC0tYm9yZGE6ICMzZjQxNDc7CiAgfQogICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KICBodG1sIHsgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0KICBib2R5IHsKICAgIGZvbnQtZmFtaWx5OiAiZ2cgc2FucyIsICJTZWdvZSBVSSIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0byk7CiAgICBsaW5lLWhlaWdodDogMS41NTsKICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogIH0KICBhIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQogIGNvZGUgewogICAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCAiQ291cmllciBOZXciLCBtb25vc3BhY2U7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYWluZWwtZXNjdXJvKTsKICAgIGNvbG9yOiB2YXIoLS1sYXJhbmphLWNsYXJvKTsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBmb250LXNpemU6IDAuOWVtOwogIH0KCiAgLyogQmFycmEgc3VwZXJpb3IgKi8KICAudG9wYmFyIHsKICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICB0b3A6IDA7CiAgICB6LWluZGV4OiAxMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgcGFkZGluZzogMTJweCA2JTsKICAgIGJhY2tncm91bmQ6IHZhcigtLXBhaW5lbC1lc2N1cm8pOwogICAgYm94LXNoYWRvdzogMCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMik7CiAgfQogIC5icmFuZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxLjE1cmVtOyB9CiAgLmNvaW4gewogICAgZGlzcGxheTogaW5saW5lLWdyaWQ7CiAgICBwbGFjZS1pdGVtczogY2VudGVyOwogICAgd2lkdGg6IDM0cHg7CiAgICBoZWlnaHQ6IDM0cHg7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1sYXJhbmphKTsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgIGZvbnQtc2l6ZTogMC44cmVtOwogIH0KICAuY29pbi5iaWcgeyB3aWR0aDogODhweDsgaGVpZ2h0OiA4OHB4OyBmb250LXNpemU6IDEuNnJlbTsgbWFyZ2luOiAwIGF1dG8gMTZweDsgfQogIC5jb2luLnNtYWxsIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgZm9udC1zaXplOiAwLjZyZW07IH0KICAjbWVudSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNnB4OyB9CiAgI21lbnUgYSB7CiAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGNvbG9yOiB2YXIoLS1tdXRlZCk7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KICAjbWVudSBhOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tcGFpbmVsKTsgY29sb3I6IHZhcigtLXRleHRvKTsgfQogIC5tZW51LWJ0biB7CiAgICBkaXNwbGF5OiBub25lOwogICAgYmFja2dyb3VuZDogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0byk7CiAgICBmb250LXNpemU6IDEuNXJlbTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICB9CgogIC8qIEluw61jaW8gKi8KICAuaGVybyB7CiAgICBtYXgtd2lkdGg6IDEwMDBweDsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgcGFkZGluZzogNzBweCA2JSA0MHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogIH0KICAuaGVybyBoMSB7IGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNXZ3LCAzLjJyZW0pOyBmb250LXdlaWdodDogODAwOyBsaW5lLWhlaWdodDogMS4xNTsgbWFyZ2luLWJvdHRvbTogMTZweDsgY29sb3I6ICNmZmY7IH0KICAuaGVybyBwLmxlYWQgeyBmb250LXNpemU6IDEuMXJlbTsgY29sb3I6ICNmZmY3ZWQ7IG1heC13aWR0aDogNjIwcHg7IG1hcmdpbjogMCBhdXRvOyB9CiAgLmJ0bnMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEycHg7IG1hcmdpbi10b3A6IDI4cHg7IH0KICAuYnRuIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDEycHggMjRweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwogIH0KICAuYnRuLnByaW1hcnkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1wYWluZWwpOyBjb2xvcjogdmFyKC0tdGV4dG8pOyB9CiAgLmJ0bi5wcmltYXJ5OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tcGFpbmVsLWNsYXJvKTsgfQogIC5idG4ub3V0bGluZSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogI2ZmZjsgYm9yZGVyOiAycHggc29saWQgI2ZmZjsgfQogIC5idG4ub3V0bGluZTpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7IH0KCiAgLyogQmxvY29zICovCiAgbWFpbiB7IHBhZGRpbmc6IDAgNiUgNjBweDsgbWF4LXdpZHRoOiAxMTAwcHg7IG1hcmdpbjogMCBhdXRvOyB9CiAgLmJsb2NvIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLXBhaW5lbCk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBwYWRkaW5nOiAyOHB4OwogICAgbWFyZ2luLXRvcDogMjRweDsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICB9CiAgLmJsb2NvIGgyIHsgZm9udC1zaXplOiAxLjRyZW07IG1hcmdpbi1ib3R0b206IDZweDsgfQogIC5ibG9jbyA+IHAuc3ViIHsgY29sb3I6IHZhcigtLW11dGVkKTsgbWFyZ2luLWJvdHRvbTogMjBweDsgfQogIC5ibG9jbyBoMyB7CiAgICBmb250LXNpemU6IDAuOHJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtOwogICAgY29sb3I6IHZhcigtLW11dGVkKTsKICAgIG1hcmdpbjogMjJweCAwIDEwcHg7CiAgfQogIC5ibG9jbyBoMzpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXRvcDogMDsgfQoKICAvKiBQYXNzb3MgKi8KICAucGFzc29zIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjBweCwgMWZyKSk7IGdhcDogMTJweDsgfQogIC5wYXNzbyB7IGJhY2tncm91bmQ6IHZhcigtLXBhaW5lbC1lc2N1cm8pOyBib3JkZXItcmFkaXVzOiA2cHg7IHBhZGRpbmc6IDE4cHg7IH0KICAucGFzc28gaDMgeyBmb250LXNpemU6IDFyZW07IHRleHQtdHJhbnNmb3JtOiBub25lOyBsZXR0ZXItc3BhY2luZzogMDsgY29sb3I6IHZhcigtLXRleHRvKTsgbWFyZ2luOiAwIDAgNnB4OyB9CiAgLnBhc3NvIC5udW0gewogICAgZGlzcGxheTogaW5saW5lLWdyaWQ7CiAgICBwbGFjZS1pdGVtczogY2VudGVyOwogICAgd2lkdGg6IDMwcHg7CiAgICBoZWlnaHQ6IDMwcHg7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1sYXJhbmphKTsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgfQogIC5wYXNzbyBwIHsgY29sb3I6IHZhcigtLW11dGVkKTsgZm9udC1zaXplOiAwLjk1cmVtOyB9CgogIC8qIFNlcnZpZG9yICovCiAgLnNlcnZpZG9yIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgLnNlcnZpZG9yIC5ub21lIHsgZm9udC1zaXplOiAxLjNyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IG1hcmdpbi1ib3R0b206IDRweDsgfQogIC5zZXJ2aWRvciBwIHsgY29sb3I6IHZhcigtLW11dGVkKTsgfQogIC5zZXJ2aWRvciAuYnRucyB7IG1hcmdpbi10b3A6IDIwcHg7IH0KICAubm90YSB7IGZvbnQtc2l6ZTogMC45cmVtOyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBtYXJnaW4tdG9wOiAxOHB4OyB9CgogIC8qIENvbWFuZG9zICovCiAgLmJ1c2NhIHsKICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogMTJweCAxNHB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdmFyKC0tcGFpbmVsLWVzY3Vybyk7CiAgICBjb2xvcjogdmFyKC0tdGV4dG8pOwogICAgZm9udC1zaXplOiAxcmVtOwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBvdXRsaW5lOiBub25lOwogIH0KICAuYnVzY2E6Zm9jdXMgeyBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tbGFyYW5qYSk7IH0KICAuY21kcyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI1MHB4LCAxZnIpKTsgZ2FwOiAxMHB4OyB9CiAgLmNtZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogNHB4OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIHBhZGRpbmc6IDE0cHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYWluZWwtZXNjdXJvKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0byk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7CiAgfQogIC5jbWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1wYWluZWwtY2xhcm8pOyB9CiAgLmNtZCBzcGFuIHsgY29sb3I6IHZhcigtLW11dGVkKTsgZm9udC1zaXplOiAwLjlyZW07IH0KICAudmF6aW8geyBjb2xvcjogdmFyKC0tbXV0ZWQpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6IDE0cHg7IH0KICAuYXZpc28gewogICAgcG9zaXRpb246IGZpeGVkOwogICAgYm90dG9tOiAyMnB4OwogICAgbGVmdDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMTIwcHgpOwogICAgYmFja2dyb3VuZDogdmFyKC0tbGFyYW5qYSk7CiAgICBjb2xvcjogI2ZmZjsKICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7CiAgICB6LWluZGV4OiAyMDsKICAgIG1heC13aWR0aDogOTAlOwogIH0KICAuYXZpc28uc2hvdyB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApOyB9CgogIC8qIExvamEgKi8KICAubG9qYSB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjMwcHgsIDFmcikpOyBnYXA6IDEycHg7IH0KICAuaXRlbSB7IGJhY2tncm91bmQ6IHZhcigtLXBhaW5lbC1lc2N1cm8pOyBib3JkZXItcmFkaXVzOiA2cHg7IHBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIC5pdGVtIGgzIHsgZm9udC1zaXplOiAxLjFyZW07IHRleHQtdHJhbnNmb3JtOiBub25lOyBsZXR0ZXItc3BhY2luZzogMDsgY29sb3I6IHZhcigtLXRleHRvKTsgbWFyZ2luOiAwOyB9CiAgLml0ZW0gLnByZWNvIHsgY29sb3I6IHZhcigtLWxhcmFuamEtY2xhcm8pOyBmb250LXdlaWdodDogODAwOyBmb250LXNpemU6IDEuM3JlbTsgbWFyZ2luOiA2cHggMCAxMHB4OyB9CiAgLml0ZW0gcCB7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IGZvbnQtc2l6ZTogMC45NXJlbTsgfQoKICAvKiBEw7p2aWRhcyAqLwogIGRldGFpbHMgeyBiYWNrZ3JvdW5kOiB2YXIoLS1wYWluZWwtZXNjdXJvKTsgYm9yZGVyLXJhZGl1czogNnB4OyBwYWRkaW5nOiAxNHB4IDE4cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KICBzdW1tYXJ5IHsgZm9udC13ZWlnaHQ6IDcwMDsgY3Vyc29yOiBwb2ludGVyOyBsaXN0LXN0eWxlOiBub25lOyB9CiAgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7IGRpc3BsYXk6IG5vbmU7IH0KICBzdW1tYXJ5OjphZnRlciB7IGNvbnRlbnQ6ICIrIjsgZmxvYXQ6IHJpZ2h0OyBjb2xvcjogdmFyKC0tbGFyYW5qYSk7IGZvbnQtc2l6ZTogMS4zcmVtOyBsaW5lLWhlaWdodDogMTsgfQogIGRldGFpbHNbb3Blbl0gc3VtbWFyeTo6YWZ0ZXIgeyBjb250ZW50OiAi4oiSIjsgfQogIGRldGFpbHMgcCB7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IG1hcmdpbi10b3A6IDhweDsgfQoKICAvKiBSb2RhcMOpICovCiAgZm9vdGVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLXBhaW5lbC1lc2N1cm8pOwogICAgY29sb3I6IHZhcigtLW11dGVkKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDI0cHggNiU7CiAgICBmb250LXNpemU6IDAuOXJlbTsKICB9CiAgZm9vdGVyIC5icmFuZCB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBtYXJnaW4tYm90dG9tOiA4cHg7IGNvbG9yOiB2YXIoLS10ZXh0byk7IH0KICBmb290ZXIgbmF2IHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxNnB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgZm9vdGVyIG5hdiBhOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHRvKTsgfQoKICAvKiBDZWx1bGFyICovCiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7CiAgICAubWVudS1idG4geyBkaXNwbGF5OiBibG9jazsgfQogICAgI21lbnUgewogICAgICBkaXNwbGF5OiBub25lOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMTAwJTsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMDsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFpbmVsLWVzY3Vybyk7CiAgICB9CiAgICAjbWVudS5hYmVydG8geyBkaXNwbGF5OiBmbGV4OyB9CiAgICAjbWVudSBhIHsgcGFkZGluZzogMTRweCA2JTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRhKTsgYm9yZGVyLXJhZGl1czogMDsgfQogIH0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxoZWFkZXIgY2xhc3M9InRvcGJhciI+CiAgPGEgaHJlZj0iI2luaWNpbyIgY2xhc3M9ImJyYW5kIj48c3BhbiBjbGFzcz0iY29pbiBzbWFsbCI+TEM8L3NwYW4+IExpdmVDb2luPC9hPgogIDxidXR0b24gY2xhc3M9Im1lbnUtYnRuIiBpZD0ibWVudUJ0biIgYXJpYS1sYWJlbD0iQWJyaXIgbWVudSI+4piwPC9idXR0b24+CiAgPG5hdiBpZD0ibWVudSI+CiAgICA8YSBocmVmPSIjc2Vydmlkb3IiPlNlcnZpZG9yPC9hPgogICAgPGEgaHJlZj0iI2NvbW8iPkNvbW8gY29tZcOnYXI8L2E+CiAgICA8YSBocmVmPSIjY29tYW5kb3MiPkNvbWFuZG9zPC9hPgogICAgPGEgaHJlZj0iI2xvamEiPkxvamE8L2E+CiAgICA8YSBocmVmPSIjZHV2aWRhcyI+RMO6dmlkYXM8L2E+CiAgPC9uYXY+CjwvaGVhZGVyPgoKPHNlY3Rpb24gY2xhc3M9Imhlcm8iIGlkPSJpbmljaW8iPgogIDxoMT5HYW5oZSwgZ3VhcmRlIGUgZ2FzdGUgTGl2ZUNvaW48L2gxPgogIDxwIGNsYXNzPSJsZWFkIj5SZWNvbXBlbnNhIGRpw6FyaWEsIHRyYWJhbGhvLCBhcG9zdGFzLCB0cmFuc2ZlcsOqbmNpYXMgZW50cmUgYW1pZ29zIGUgdW1hIGxvamEgY29tIGl0ZW5zIHF1ZSBhdW1lbnRhbSBzZXVzIGdhbmhvcy4gVHVkbyBwb3IgY29tYW5kb3Mgbm8gY2hhdC48L3A+CiAgPGRpdiBjbGFzcz0iYnRucyI+CiAgICA8YSBocmVmPSJodHRwczovL2dvbGl2ZS5uZW10dWRvLm1lL2ludml0ZS9pS05CbVRPbSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGNsYXNzPSJidG4gcHJpbWFyeSI+RW50cmFyIG5vIHNlcnZpZG9yIG9maWNpYWw8L2E+CiAgICA8YSBocmVmPSIjY29tYW5kb3MiIGNsYXNzPSJidG4gb3V0bGluZSI+VmVyIGNvbWFuZG9zPC9hPgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8bWFpbj4KICA8c2VjdGlvbiBjbGFzcz0iYmxvY28gc2Vydmlkb3IiIGlkPSJzZXJ2aWRvciI+CiAgICA8ZGl2IGNsYXNzPSJjb2luIGJpZyI+TEM8L2Rpdj4KICAgIDxwIGNsYXNzPSJub21lIj5Qcm90ZWN0aW9uU2VydmVyPC9wPgogICAgPHA+U2Vydmlkb3Igb2ZpY2lhbCBkbyBHb0xpdmUsIG9uZGUgbyBib3QgTGl2ZUNvaW4gZXN0w6EgYXRpdm8uPC9wPgogICAgPGRpdiBjbGFzcz0iYnRucyI+CiAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ29saXZlLm5lbXR1ZG8ubWUvaW52aXRlL2lLTkJtVE9tIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgY2xhc3M9ImJ0biBwcmltYXJ5Ij5FbnRyYXIgYWdvcmE8L2E+CiAgICA8L2Rpdj4KICAgIDxwIGNsYXNzPSJub3RhIj5RdWVyIG8gYm90IG5vIHNldSBwcsOzcHJpbyBzZXJ2aWRvcj8gTyBkb25vIGRvIHNlcnZpZG9yIGFicmUgbyBsaW5rIGRlIGFkacOnw6NvIGUgZXNjb2xoZSBvIGdydXBvLjwvcD4KICAgIDxkaXYgY2xhc3M9ImJ0bnMiPgogICAgICA8YSBocmVmPSJodHRwczovL2dvbGl2ZS5uZW10dWRvLm1lL2JvdHMvNGYwMjkxNjEtMDE3OS00NmIyLTg5N2QtMWFlYmE0MjNjM2I3L2FkZD9wZXJtaXNzaW9ucz0xIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgY2xhc3M9ImJ0biBvdXRsaW5lIj5BZGljaW9uYXIgbyBib3QgYW8gbWV1IHNlcnZpZG9yPC9hPgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8c2VjdGlvbiBjbGFzcz0iYmxvY28iIGlkPSJjb21vIj4KICAgIDxoMj5Db21vIGNvbWXDp2FyPC9oMj4KICAgIDxwIGNsYXNzPSJzdWIiPkRvIHByaW1laXJvIGNvbWFuZG8gYXTDqSBvIHByaW1laXJvIHNhbGRvLCBsZXZhIG1lbm9zIGRlIHVtIG1pbnV0by48L3A+CiAgICA8ZGl2IGNsYXNzPSJwYXNzb3MiPgogICAgICA8ZGl2IGNsYXNzPSJwYXNzbyI+CiAgICAgICAgPHNwYW4gY2xhc3M9Im51bSI+MTwvc3Bhbj4KICAgICAgICA8aDM+RW50cmUgbm8gc2Vydmlkb3I8L2gzPgogICAgICAgIDxwPlVzZSBvIGJvdMOjbyAiRW50cmFyIGFnb3JhIiBwYXJhIGVudHJhciBubyBQcm90ZWN0aW9uU2VydmVyLjwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InBhc3NvIj4KICAgICAgICA8c3BhbiBjbGFzcz0ibnVtIj4yPC9zcGFuPgogICAgICAgIDxoMz5QZWd1ZSBzZXUgZGFpbHk8L2gzPgogICAgICAgIDxwPkRpZ2l0ZSA8Y29kZT4hZGFpbHk8L2NvZGU+IHVtYSB2ZXogcG9yIGRpYS4gRGlhcyBzZWd1aWRvcyBhdW1lbnRhbSBvIGLDtG51cy48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJwYXNzbyI+CiAgICAgICAgPHNwYW4gY2xhc3M9Im51bSI+Mzwvc3Bhbj4KICAgICAgICA8aDM+R2FzdGUgZSBhcHJvdmVpdGU8L2gzPgogICAgICAgIDxwPkNvbXByZSBpdGVucyBuYSBsb2phLCBhcG9zdGUgb3UgcGFndWUgYW1pZ29zIGNvbSA8Y29kZT4hcGFnYXI8L2NvZGU+LjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogIDxzZWN0aW9uIGNsYXNzPSJibG9jbyIgaWQ9ImNvbWFuZG9zIj4KICAgIDxoMj5Db21hbmRvczwvaDI+CiAgICA8cCBjbGFzcz0ic3ViIj5DbGlxdWUgZW0gdW0gY29tYW5kbyBwYXJhIGNvcGlhci4gVG9kb3MgY29tZcOnYW0gY29tIDxjb2RlPiE8L2NvZGU+LjwvcD4KICAgIDxpbnB1dCB0eXBlPSJzZWFyY2giIGlkPSJidXNjYSIgY2xhc3M9ImJ1c2NhIiBwbGFjZWhvbGRlcj0iQnVzY2FyIGNvbWFuZG8uLi4iIGFyaWEtbGFiZWw9IkJ1c2NhciBjb21hbmRvIiAvPgoKICAgIDxoMz5FY29ub21pYTwvaDM+CiAgICA8ZGl2IGNsYXNzPSJjbWRzIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIXNhbGRvIiBkYXRhLWRlc2M9Ik1vc3RyYSBzdWEgY2FydGVpcmEsIGJhbmNvIGUgdG90YWwuIEFjZWl0YSBAcGVzc29hLiI+CiAgICAgICAgPGNvZGU+IXNhbGRvIFtAcGVzc29hXTwvY29kZT48c3Bhbj5DYXJ0ZWlyYSwgYmFuY28gZSB0b3RhbDwvc3Bhbj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIWRhaWx5IiBkYXRhLWRlc2M9IlJlY29tcGVuc2EgZGnDoXJpYS4gRGlhcyBzZWd1aWRvcyBhdW1lbnRhbSBvIGLDtG51cy4iPgogICAgICAgIDxjb2RlPiFkYWlseTwvY29kZT48c3Bhbj5SZWNvbXBlbnNhIGRpw6FyaWEgY29tIGLDtG51cyBwb3IgZGlhcyBzZWd1aWRvczwvc3Bhbj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIXRyYWJhbGhhciIgZGF0YS1kZXNjPSJHYW5oYSBMQyBhIGNhZGEgMzAgbWludXRvcy4iPgogICAgICAgIDxjb2RlPiF0cmFiYWxoYXI8L2NvZGU+PHNwYW4+R2FuaGEgTEMgYSBjYWRhIDMwIG1pbnV0b3M8L3NwYW4+PC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9ImNtZCIgZGF0YS1jbWQ9IiFwYWdhciBAcGVzc29hIDEwMCIgZGF0YS1kZXNjPSJUcmFuc2ZlcmUgTEMgcGFyYSBvdXRyYSBwZXNzb2EuIj4KICAgICAgICA8Y29kZT4hcGFnYXIgQHBlc3NvYSAmbHQ7dmFsb3ImZ3Q7PC9jb2RlPjxzcGFuPlRyYW5zZmVyZSBMQyBwYXJhIHVtIGFtaWdvPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJjbWQiIGRhdGEtY21kPSIhZGVwb3NpdGFyIGFsbCIgZGF0YS1kZXNjPSJHdWFyZGEgZGluaGVpcm8gbm8gYmFuY28uIj4KICAgICAgICA8Y29kZT4hZGVwb3NpdGFyICZsdDt2YWxvcnxhbGwmZ3Q7PC9jb2RlPjxzcGFuPkd1YXJkYSBkaW5oZWlybyBubyBiYW5jbzwvc3Bhbj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIXNhY2FyIGFsbCIgZGF0YS1kZXNjPSJUaXJhIGRpbmhlaXJvIGRvIGJhbmNvLiI+CiAgICAgICAgPGNvZGU+IXNhY2FyICZsdDt2YWxvcnxhbGwmZ3Q7PC9jb2RlPjxzcGFuPlRpcmEgZGluaGVpcm8gZG8gYmFuY288L3NwYW4+PC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9ImNtZCIgZGF0YS1jbWQ9IiFhcG9zdGFyIDEwMCIgZGF0YS1kZXNjPSJBcG9zdGEgTEMuIE8gbcOheGltbyBwb3IgYXBvc3RhIMOpIDEwLjAwMCBMQy4iPgogICAgICAgIDxjb2RlPiFhcG9zdGFyICZsdDt2YWxvcnxhbGwmZ3Q7PC9jb2RlPjxzcGFuPkFwb3N0YSBkZSBhdMOpIDEwLjAwMCBMQzwvc3Bhbj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIXJhbmsiIGRhdGEtZGVzYz0iVG9wIDEwIGNvbSBtYWlzIExDIG5vIHRvdGFsLiI+CiAgICAgICAgPGNvZGU+IXJhbms8L2NvZGU+PHNwYW4+VG9wIDEwIGNvbSBtYWlzIExDIG5vIHRvdGFsPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJjbWQiIGRhdGEtY21kPSIhcmFua2ZpeG8iIGRhdGEtZGVzYz0iQ3JpYSB1bSByYW5raW5nIHF1ZSBzZSBhdHVhbGl6YSBzb3ppbmhvIG5lc3RlIGNhbmFsLiI+CiAgICAgICAgPGNvZGU+IXJhbmtmaXhvPC9jb2RlPjxzcGFuPlJhbmtpbmcgcXVlIHNlIGF0dWFsaXphIHNvemluaG8gbm8gY2FuYWw8L3NwYW4+PC9idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8aDM+TG9qYTwvaDM+CiAgICA8ZGl2IGNsYXNzPSJjbWRzIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIWxvamEiIGRhdGEtZGVzYz0iTW9zdHJhIG9zIGl0ZW5zIMOgIHZlbmRhLiI+CiAgICAgICAgPGNvZGU+IWxvamE8L2NvZGU+PHNwYW4+SXRlbnMgw6AgdmVuZGE8L3NwYW4+PC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9ImNtZCIgZGF0YS1jbWQ9IiFjb21wcmFyIGFtdWxldG8iIGRhdGEtZGVzYz0iQ29tcHJhIHVtIGl0ZW0gZGEgbG9qYS4iPgogICAgICAgIDxjb2RlPiFjb21wcmFyICZsdDtpdGVtJmd0OzwvY29kZT48c3Bhbj5Db21wcmEgdW0gaXRlbSBkYSBsb2phPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJjbWQiIGRhdGEtY21kPSIhaW52ZW50YXJpbyIgZGF0YS1kZXNjPSJNb3N0cmEgb3MgaXRlbnMgcXVlIHZvY8OqIHRlbS4iPgogICAgICAgIDxjb2RlPiFpbnZlbnRhcmlvPC9jb2RlPjxzcGFuPlNldXMgaXRlbnM8L3NwYW4+PC9idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8aDM+RGl2ZXJzw6NvIGUgdXRpbGlkYWRlczwvaDM+CiAgICA8ZGl2IGNsYXNzPSJjbWRzIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIWRhZG8gMjAiIGRhdGEtZGVzYz0iUm9sYSB1bSBkYWRvLiBFc2NvbGhhIG8gbsO6bWVybyBkZSBsYWRvcy4iPgogICAgICAgIDxjb2RlPiFkYWRvIFtsYWRvc108L2NvZGU+PHNwYW4+Um9sYSB1bSBkYWRvPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJjbWQiIGRhdGEtY21kPSIhbW9lZGEiIGRhdGEtZGVzYz0iQ2FyYSBvdSBjb3JvYS4iPgogICAgICAgIDxjb2RlPiFtb2VkYTwvY29kZT48c3Bhbj5DYXJhIG91IGNvcm9hPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJjbWQiIGRhdGEtY21kPSIhbGVtYnJhciAxMCBiZWJlciDDoWd1YSIgZGF0YS1kZXNjPSJMZW1icmEgdm9jw6ogZGVwb2lzIGRlIGFsZ3VucyBtaW51dG9zLiI+CiAgICAgICAgPGNvZGU+IWxlbWJyYXIgJmx0O21pbiZndDsgJmx0O3RleHRvJmd0OzwvY29kZT48c3Bhbj5MZW1icmV0ZSBlbSBhbGd1bnMgbWludXRvczwvc3Bhbj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY21kIiBkYXRhLWNtZD0iIXBpbmciIGRhdGEtZGVzYz0iVGVzdGEgc2UgbyBib3QgZXN0w6Egb25saW5lLiI+CiAgICAgICAgPGNvZGU+IXBpbmc8L2NvZGU+PHNwYW4+VGVzdGEgc2UgbyBib3QgZXN0w6Egb25saW5lPC9zcGFuPjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJjbWQiIGRhdGEtY21kPSIhYWp1ZGEiIGRhdGEtZGVzYz0iTW9zdHJhIGEgbGlzdGEgZGUgY29tYW5kb3Mgbm8gY2hhdC4iPgogICAgICAgIDxjb2RlPiFhanVkYTwvY29kZT48c3Bhbj5MaXN0YSBkZSBjb21hbmRvcyBubyBjaGF0PC9zcGFuPjwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8cCBjbGFzcz0idmF6aW8iIGlkPSJzZW1SZXN1bHRhZG8iIGhpZGRlbj5OZW5odW0gY29tYW5kbyBlbmNvbnRyYWRvLjwvcD4KICA8L3NlY3Rpb24+CgogIDxzZWN0aW9uIGNsYXNzPSJibG9jbyIgaWQ9ImxvamEiPgogICAgPGgyPkxvamE8L2gyPgogICAgPHAgY2xhc3M9InN1YiI+SXRlbnMgcXVlIGF1bWVudGFtIHNldXMgZ2FuaG9zLiBDb21wcmUgY29tIDxjb2RlPiFjb21wcmFyICZsdDtpdGVtJmd0OzwvY29kZT4uPC9wPgogICAgPGRpdiBjbGFzcz0ibG9qYSI+CiAgICAgIDxkaXYgY2xhc3M9Iml0ZW0iPgogICAgICAgIDxoMz5BbXVsZXRvPC9oMz4KICAgICAgICA8cCBjbGFzcz0icHJlY28iPjEuMDAwIExDPC9wPgogICAgICAgIDxwPisyNSUgZGUgZ2FuaG8gbm8gPGNvZGU+IXRyYWJhbGhhcjwvY29kZT48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICA8aDM+UMOhPC9oMz4KICAgICAgICA8cCBjbGFzcz0icHJlY28iPjIuNTAwIExDPC9wPgogICAgICAgIDxwPis1MCUgZGUgZ2FuaG8gbm8gPGNvZGU+IXRyYWJhbGhhcjwvY29kZT48L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpdGVtIj4KICAgICAgICA8aDM+VklQPC9oMz4KICAgICAgICA8cCBjbGFzcz0icHJlY28iPjUuMDAwIExDPC9wPgogICAgICAgIDxwPkRvYnJhIGEgcmVjb21wZW5zYSBkbyA8Y29kZT4hZGFpbHk8L2NvZGU+PC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPHNlY3Rpb24gY2xhc3M9ImJsb2NvIiBpZD0iZHV2aWRhcyI+CiAgICA8aDI+RMO6dmlkYXM8L2gyPgogICAgPHAgY2xhc3M9InN1YiI+UmVzcG9zdGFzIHLDoXBpZGFzIHNvYnJlIG8gYm90LjwvcD4KICAgIDxkZXRhaWxzPgogICAgICA8c3VtbWFyeT5PIGJvdCBlbnRyYSBzb3ppbmhvIG5vIHNlcnZpZG9yPzwvc3VtbWFyeT4KICAgICAgPHA+TsOjby4gUXVlbSBhZG1pbmlzdHJhIG8gZ3J1cG8gcHJlY2lzYSBhZGljaW9uYXIgbyBib3QgcGVsbyBsaW5rIGRlIGFkacOnw6NvLjwvcD4KICAgIDwvZGV0YWlscz4KICAgIDxkZXRhaWxzPgogICAgICA8c3VtbWFyeT5Qb3NzbyB1c2FyIG8gYm90IGVtIG1haXMgZGUgdW0gZ3J1cG8/PC9zdW1tYXJ5PgogICAgICA8cD5TaW0uIE8gc2FsZG8gZGUgY2FkYSBwZXNzb2Egw6kgbyBtZXNtbyBlbSB0b2RvcyBvcyBncnVwb3Mgb25kZSBvIGJvdCBlc3RpdmVyLjwvcD4KICAgIDwvZGV0YWlscz4KICAgIDxkZXRhaWxzPgogICAgICA8c3VtbWFyeT5Db21vIG8gYm90IHNhYmUgbyBtZXUgQD88L3N1bW1hcnk+CiAgICAgIDxwPkVsZSByZWdpc3RyYSBzZXUgQCBxdWFuZG8gdm9jw6ogZmFsYSBubyBncnVwby4gRGVwb2lzIGRpc3NvLCBhZG1pbnMgY29uc2VndWVtIHRlIGVuY29udHJhciBwZWxvIEAuPC9wPgogICAgPC9kZXRhaWxzPgogICAgPGRldGFpbHM+CiAgICAgIDxzdW1tYXJ5PkTDoSBwYXJhIHBlcmRlciBMaXZlQ29pbj88L3N1bW1hcnk+CiAgICAgIDxwPlNpbSwgbmFzIGFwb3N0YXMgZSBlbSB0cmFuc2ZlcsOqbmNpYXMgZXJyYWRhcy4gQXBvc3RlIHPDsyBvIHF1ZSB2b2PDqiBwb2RlIHBlcmRlci48L3A+CiAgICA8L2RldGFpbHM+CiAgPC9zZWN0aW9uPgo8L21haW4+Cgo8Zm9vdGVyPgogIDxkaXYgY2xhc3M9ImJyYW5kIj48c3BhbiBjbGFzcz0iY29pbiBzbWFsbCI+TEM8L3NwYW4+IExpdmVDb2luPC9kaXY+CiAgPG5hdj4KICAgIDxhIGhyZWY9IiNzZXJ2aWRvciI+U2Vydmlkb3I8L2E+CiAgICA8YSBocmVmPSIjY29tYW5kb3MiPkNvbWFuZG9zPC9hPgogICAgPGEgaHJlZj0iI2xvamEiPkxvamE8L2E+CiAgICA8YSBocmVmPSIjZHV2aWRhcyI+RMO6dmlkYXM8L2E+CiAgICA8YSBocmVmPSJodHRwczovL2dvbGl2ZS5uZW10dWRvLm1lLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPkdvTGl2ZTwvYT4KICA8L25hdj4KICA8cD5Cb3QgZGUgZWNvbm9taWEgZG8gR29MaXZlIMK3IMKpIDxzcGFuIGlkPSJhbm8iPjwvc3Bhbj4gTGl2ZUNvaW48L3A+CjwvZm9vdGVyPgoKPGRpdiBjbGFzcz0iYXZpc28iIGlkPSJhdmlzbyIgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9kaXY+Cgo8c2NyaXB0PgogIC8vIE1lbnUgbm8gY2VsdWxhcgogIHZhciBtZW51QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnVCdG4iKTsKICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtZW51Iik7CiAgbWVudUJ0bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgIHZhciBhYmVydG8gPSBtZW51LmNsYXNzTGlzdC50b2dnbGUoImFiZXJ0byIpOwogICAgbWVudUJ0bi50ZXh0Q29udGVudCA9IGFiZXJ0byA/ICLinJUiIDogIuKYsCI7CiAgfSk7CiAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCJhIikuZm9yRWFjaChmdW5jdGlvbiAobGluaykgewogICAgbGluay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgICAgbWVudS5jbGFzc0xpc3QucmVtb3ZlKCJhYmVydG8iKTsKICAgICAgbWVudUJ0bi50ZXh0Q29udGVudCA9ICLimLAiOwogICAgfSk7CiAgfSk7CgogIC8vIEJ1c2NhIGRlIGNvbWFuZG9zCiAgdmFyIGJ1c2NhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1c2NhIik7CiAgdmFyIGNtZHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY21kIikpOwogIHZhciBzZW1SZXN1bHRhZG8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VtUmVzdWx0YWRvIik7CiAgYnVzY2EuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBmdW5jdGlvbiAoKSB7CiAgICB2YXIgdGVybW8gPSBidXNjYS52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTsKICAgIHZhciB2aXNpdmVpcyA9IDA7CiAgICBjbWRzLmZvckVhY2goZnVuY3Rpb24gKGJ0bikgewogICAgICB2YXIgdGV4dG8gPSAoYnRuLmRhdGFzZXQuY21kICsgIiAiICsgYnRuLnRleHRDb250ZW50KS50b0xvd2VyQ2FzZSgpOwogICAgICB2YXIgbW9zdHJhID0gdGV4dG8uaW5kZXhPZih0ZXJtbykgIT09IC0xOwogICAgICBidG4uaGlkZGVuID0gIW1vc3RyYTsKICAgICAgaWYgKG1vc3RyYSkgdmlzaXZlaXMrKzsKICAgIH0pOwogICAgc2VtUmVzdWx0YWRvLmhpZGRlbiA9IHZpc2l2ZWlzID4gMDsKICB9KTsKCiAgLy8gQ2xpcXVlIGNvcGlhIG8gY29tYW5kbyBlIG1vc3RyYSB1bSBhdmlzbwogIHZhciBhdmlzbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdmlzbyIpOwogIHZhciBhdmlzb1RpbWVyOwogIGZ1bmN0aW9uIG1vc3RyYXJBdmlzbyh0ZXh0bykgewogICAgYXZpc28udGV4dENvbnRlbnQgPSB0ZXh0bzsKICAgIGF2aXNvLmNsYXNzTGlzdC5hZGQoInNob3ciKTsKICAgIGNsZWFyVGltZW91dChhdmlzb1RpbWVyKTsKICAgIGF2aXNvVGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgYXZpc28uY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpOyB9LCAyNTAwKTsKICB9CiAgY21kcy5mb3JFYWNoKGZ1bmN0aW9uIChidG4pIHsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIGNvbWFuZG8gPSBidG4uZGF0YXNldC5jbWQ7CiAgICAgIHZhciBjb3BpYXIgPSBuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0CiAgICAgICAgPyBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjb21hbmRvKQogICAgICAgIDogUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJzZW0gY2xpcGJvYXJkIikpOwogICAgICBjb3BpYXIudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgbW9zdHJhckF2aXNvKCJDb3BpYWRvOiAiICsgY29tYW5kbyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICBtb3N0cmFyQXZpc28oYnRuLmRhdGFzZXQuZGVzYyk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIC8vIEFubyBubyByb2RhcMOpCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFubyIpLnRleHRDb250ZW50ID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+"))));</script>